k8s控制deamonset中pod數(shù)量的方法
DaemonSet 是 Kubernetes 中的一種控制器,用于確保集群中的每個(gè)節(jié)點(diǎn)(或特定標(biāo)簽選擇器匹配的節(jié)點(diǎn))運(yùn)行一個(gè) Pod 的副本。DaemonSet 通常用于運(yùn)行集群守護(hù)進(jìn)程,如日志收集、監(jiān)控代理、存儲(chǔ)卷插件等。以下是如何控制 DaemonSet 中 Pod 數(shù)量的方法:
1.使用節(jié)點(diǎn)選擇器(Node Selector)
通過在 DaemonSet 的 spec 中設(shè)置 nodeSelector,可以指定哪些節(jié)點(diǎn)上運(yùn)行 Pod。例如,如果你想在帶有特定標(biāo)簽的節(jié)點(diǎn)上運(yùn)行 Pod,可以這樣做:
apiVersion: apps/v1 kind: DaemonSet metadata: name: example-daemonset spec: selector: matchLabels: app: example template: metadata: labels: app: example spec: nodeSelector: key: value containers:
- name: example-container
image: example-image
在這個(gè)例子中,只有帶有 key=value 標(biāo)簽的節(jié)點(diǎn)會(huì)運(yùn)行 Pod。
2. 使用節(jié)點(diǎn)親和性(Node Affinity)
節(jié)點(diǎn)親和性提供了更細(xì)粒度的控制,可以使用 nodeAffinity 來指定 Pod 應(yīng)該調(diào)度到哪些節(jié)點(diǎn)上。例如:
apiVersion: apps/v1 kind: DaemonSet metadata: name: example-daemonset spec: selector: matchLabels: app: example template: metadata: labels: app: example spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: key operator: In values: - value containers: - name: example-container image: example-image
在這個(gè)例子中,只有滿足 key In [value] 條件的節(jié)點(diǎn)會(huì)運(yùn)行 Pod。
3. 使用容忍度(Tolerations)
如果某些節(jié)點(diǎn)上有污點(diǎn)(Taints),可以通過設(shè)置容忍度(Tolerations)來允許 Pod 調(diào)度到這些節(jié)點(diǎn)上。例如:
apiVersion: apps/v1 kind: DaemonSet metadata: name: example-daemonset spec: selector: matchLabels: app: example template: metadata: labels: app: example spec: tolerations: - key: key operator: Equal value: value effect: NoSchedule containers: - name: example-container image: example-image
在這個(gè)例子中,Pod 會(huì)容忍帶有 key=value 污點(diǎn)的節(jié)點(diǎn)。
4. 更新策略(Update Strategy)
DaemonSet 支持滾動(dòng)更新,可以通過設(shè)置 updateStrategy 來控制更新過程中的 Pod 數(shù)量。例如:
apiVersion: apps/v1 kind: DaemonSet metadata: name: example-daemonset spec: selector: matchLabels: app: example template: metadata: labels: app: example spec: containers: - name: example-container image: example-image updateStrategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 0
在這個(gè)例子中,maxUnavailable 設(shè)置為 1,表示在更新過程中最多有一個(gè) Pod 不可用;maxSurge 設(shè)置為 0,表示在更新過程中不會(huì)創(chuàng)建額外的 Pod。
通過以上方法,你可以靈活地控制 DaemonSet 中 Pod 的數(shù)量和調(diào)度策略。
到此這篇關(guān)于k8s控制deamonset中pod數(shù)量的方法的文章就介紹到這了,更多相關(guān)k8s deamonset中pod數(shù)量內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
K8s環(huán)境內(nèi)部的服務(wù)如何注冊(cè)到外部
文章主要討論了在K8s環(huán)境外部部署服務(wù)時(shí)如何與部署在K8s內(nèi)部的服務(wù)進(jìn)行服務(wù)注冊(cè),提出了使用LoadBalancer、Kong和NodePort三種方式,并詳細(xì)介紹了每種方式的實(shí)現(xiàn)步驟和注意事項(xiàng)2026-02-02
2022最新青龍面板對(duì)接機(jī)器人的詳細(xì)過程(傻妞對(duì)接onebot(oicq)協(xié)議實(shí)現(xiàn)機(jī)器人功能)
這篇文章主要介紹了2022最新青龍面板對(duì)接機(jī)器人的詳細(xì)過程(傻妞對(duì)接onebot(oicq)協(xié)議實(shí)現(xiàn)機(jī)器人功能),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
使用kubeadm部署kubernetes1.27.1版本教程
文章概述了K8s集群搭建的準(zhǔn)備與兩種部署方式:kubeadm(快速)和二進(jìn)制(手動(dòng)),涵蓋單master配置、硬件要求、網(wǎng)絡(luò)設(shè)置及初始化流程,適用于測(cè)試環(huán)境,提供參考經(jīng)驗(yàn)2025-08-08
帶你學(xué)會(huì)k8s?更高級(jí)的對(duì)象Deployment
這篇文章主要為大家介紹了k8s還有更高級(jí)的"對(duì)象"Deployment使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Kubernetes?權(quán)限管理認(rèn)證鑒權(quán)詳解
這篇文章主要為大家介紹了Kubernetes?權(quán)限管理認(rèn)證鑒權(quán)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

