chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

詳解Kubernetes中的Pod調(diào)度親和性

馬哥Linux運維 ? 來源:博客園 ? 2025-06-07 13:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

在 Kubernetes(K8s)中,Pod 調(diào)度親和性(Affinity)是一種高級調(diào)度策略,用于控制 Pod 與節(jié)點(Node)或其他 Pod 之間的關聯(lián)(親和)或反關聯(lián)(反親和)關系。通過親和性規(guī)則,管理員可以更精細地控制 Pod 的調(diào)度行為,滿足業(yè)務的拓撲約束、資源局部性、高可用等需求。

親和性主要有兩類

? 節(jié)點親和性

? Pod親和性

回到頂部

節(jié)點親和性

節(jié)點親和性是 Kubernetes 中控制 Pod 調(diào)度到特定節(jié)點的核心機制,它比傳統(tǒng)的 nodeSelector 更具靈活性,支持更復雜的匹配規(guī)則和優(yōu)先級策略。

節(jié)點親和性通過nodeAffinity字段定義,包含requiredDuringSchedulingIgnoredDuringExecution(硬性)和preferredDuringSchedulingIgnoredDuringExecution(軟性)兩種規(guī)則。

節(jié)點親和性的作用

精準匹配節(jié)點標簽

節(jié)點親和性通過定義 標簽匹配規(guī)則(如節(jié)點必須包含 / 不包含某個標簽、標簽值在指定范圍內(nèi)等),將 Pod 調(diào)度到符合條件的節(jié)點。

? 硬性規(guī)則(requiredDuringScheduling):強制 Pod 只能調(diào)度到滿足條件的節(jié)點,否則保持 Pending 狀態(tài)。
例:將數(shù)據(jù)庫 Pod 強制調(diào)度到標記為 role=database 且 storage=ssd 的節(jié)點。

? 軟性規(guī)則(preferredDuringScheduling):優(yōu)先調(diào)度到滿足條件的節(jié)點,若不滿足則嘗試其他節(jié)點(通過權重配置優(yōu)先級)。
例:優(yōu)先將 Web 服務 Pod 調(diào)度到 region=east 的節(jié)點(權重 100),其次調(diào)度到 zone=az1 的節(jié)點(權重 70)。

精細化控制

替代簡單的 nodeSelector,支持復雜邏輯(如 “節(jié)點必須包含 A 標簽且不包含 B 標簽”)。

靈活容錯

軟性規(guī)則允許調(diào)度器在條件不滿足時 “退而求其次”,避免 Pod 長時間處于 Pending。

資源利用率優(yōu)化

通過標簽分層(如環(huán)境、硬件、地域),實現(xiàn)集群資源的合理分配與負載均衡。

節(jié)點親和性實戰(zhàn)-硬性規(guī)則匹配

必須滿足條件才能調(diào)度,否則 Pod 將處于 Pending 狀態(tài)。調(diào)度成功后,即使節(jié)點標簽變更導致規(guī)則不再滿足,Pod 也不會被驅(qū)逐。

將 Pod 調(diào)度到同時滿足以下條件的節(jié)點:

? 標簽 env=prod

? 標簽 disk-type=ssd

? 標簽 cpu-cores > 2

示例:
給node01節(jié)點打上標簽

|   |   |
| --- | --- |
|   | [root@master ~]# kubectl label node node01env=prod disk-type=ssd cpu-cores=3 |
|   | node/node01 labeled |
|   |   |
|   |# 查看標簽 |
|   | [root@master ~]# kubectl describe node node01 | grep Labels -A 5 |
|   | Labels:       beta.kubernetes.io/arch=amd64 |
|   | beta.kubernetes.io/os=linux |
|   | cpu-cores=3 |
|   | disk-type=ssd |
|   |env=prod |
|   | kubernetes.io/arch=amd64 |

創(chuàng)建Pod

|  |  |
|---|---|
|  |[root@master~/affinity]# cat affinity-deploy.yaml |
|  |apiVersion:apps/v1|
|  |kind:Deployment|
|  |metadata:|
|  |name:nginx-affinity|
|  |spec:|
|  |replicas:5|
|  |selector:|
|  |matchLabels:|
|  |app:nginx|
|  |template:|
|  |metadata:|
|  |labels:|
|  |app:nginx|
|  |spec:|
|  |affinity:|
|  |# 節(jié)點親和性 |
|  |nodeAffinity:|
|  |# 指定硬性規(guī)則 |
|  |requiredDuringSchedulingIgnoredDuringExecution:|
|  |# 匹配規(guī)則 |
|  |nodeSelectorTerms:|
|  |-matchExpressions:|
|  |-key:env|
|  |operator:In|
|  |values:["prod"]|
|  |-key:disk-type|
|  |operator:In|
|  |values:["ssd"]|
|  |-key:cpu-cores|
|  |operator:Gt|
|  |values:["2"] # 注意:values 是字符串列表,內(nèi)部會轉(zhuǎn)為數(shù)字比較 |
|  |containers:|
|  |-name:nginx|
|  |image:nginx|
|  |#創(chuàng)建 |
|  |[root@master~/affinity]# kubectl apply -f affinity-deploy.yaml |
|  |deployment.apps/nginx-affinitycreated|

查看Pod調(diào)度到哪個節(jié)點上了?
發(fā)現(xiàn)Pod全部調(diào)度到node01節(jié)點上

|  |  |
|--- | --- |
|  |[root@master~/affinity]# kubectlgetpo-o wide|
|  |NAME               READY  STATUS  RESTARTS  AGE  IP        NODE   NOMINATED NODE  READINESS GATES|
|  |nginx-affinity-556d5d5987-5bnjm 1/1  Running 0    94s 100.117.144.175 node01      |
|  |nginx-affinity-556d5d5987-bvmvh 1/1  Running 0    94s 100.117.144.173 node01      |
|  |nginx-affinity-556d5d5987-d7tkg 1/1  Running 0    94s 100.117.144.174 node01      |
|  |nginx-affinity-556d5d5987-frkkm 1/1  Running 0    94s 100.117.144.172 node01      |
|  |nginx-affinity-556d5d5987-ttlcr 1/1  Running 0    94s 100.117.144.176 node01      |

如果標簽不匹配,Pod會出現(xiàn)什么情況呢?

|   |   |
| --- | --- |
|   |# 將node01節(jié)點上的標簽刪除一個 |
|   | [root@master ~/affinity]# kubectl label node node01 cpu-cores- |
|   | node/node01 unlabeled |
|   |# 查看標簽 |
|   | [root@master ~/affinity]# kubectl describe node node01 | grep Labels -A 5 |
|   | Labels:       beta.kubernetes.io/arch=amd64 |
|   | beta.kubernetes.io/os=linux |
|   | disk-type=ssd |
|   |env=prod |
|   | kubernetes.io/arch=amd64 |
|   | kubernetes.io/hostname=node01 |
|   |   |
|   |# 刪除Pod讓其重建 |
|   | [root@master ~/affinity]# kubectl get po | awk'{print $1}'| xargs kubectl delete po |
|   | pod"nginx-affinity-556d5d5987-5bnjm"deleted |
|   | pod"nginx-affinity-556d5d5987-bvmvh"deleted |
|   | pod"nginx-affinity-556d5d5987-d7tkg"deleted |
|   | pod"nginx-affinity-556d5d5987-frkkm"deleted |
|   | pod"nginx-affinity-556d5d5987-ttlcr"deleted |

查看Pod,發(fā)現(xiàn)狀態(tài)都是Pending狀態(tài)

|   |   |
| --- | --- |
|   | [root@master ~/affinity]# kubectl get po |
|   | NAME               READY  STATUS  RESTARTS  AGE |
|   | nginx-affinity-556d5d5987-44qmc  0/1   Pending  0     27s |
|   | nginx-affinity-556d5d5987-4qtth  0/1   Pending  0     27s |
|   | nginx-affinity-556d5d5987-4tws5  0/1   Pending  0     27s |
|   | nginx-affinity-556d5d5987-bgm7n  0/1   Pending  0     27s |
|   | nginx-affinity-556d5d5987-kh555  0/1   Pending  0     27s |

查看一下詳細信息,發(fā)現(xiàn)是標簽不匹配

|   |   |
| --- | --- |
|   |   |
|   | [root@master ~/affinity]# kubectl describe po nginx-affinity-556d5d5987-44qmc |
|   | Name:       nginx-affinity-556d5d5987-44qmc |
|   |   |
|   | Events: |
|   | Type   Reason      Age From       Message |
|   | ----   ------      ---- ----        ------- |
|   | Warning FailedScheduling 71s  default-scheduler 0/3nodes are available:1node(s) had untolerated taint {node-role.kubernetes.io/control-plane: },2node(s) didn'tmatchPod'snode affinity/selector. preemption:0/3nodes are available:3Preemption is not helpfulforscheduling.. |
|   | Warning FailedScheduling 70s  default-scheduler 0/3nodes are available:1node(s) had untolerated taint {node-role.kubernetes.io/control-plane: },2node(s) didn'tmatchPod'snode affinity/selector. preemption:0/3nodes are available:3Preemption is not helpfulforscheduling.. |

總結一下,節(jié)點親和性可以更加細膩指定Pod調(diào)度到某一個節(jié)點上,如果指定的標簽不匹配,那么Pod會處于Pending狀態(tài)

節(jié)點親和性實戰(zhàn)-軟性規(guī)則匹配

軟性規(guī)則匹配優(yōu)先滿足條件,但不強制。調(diào)度器會為每個滿足條件的節(jié)點打分,選擇分數(shù)最高的節(jié)點。

評分機制

當存在多個滿足軟性規(guī)則的節(jié)點時,調(diào)度器會計算每個節(jié)點的得分:

? 基礎分:所有節(jié)點初始分為 0。

? 權重疊加:對每個 preferredDuringSchedulingIgnoredDuringExecution 規(guī)則:

? 若節(jié)點滿足規(guī)則,得分為 weight 值。

? 若不滿足,得分為 0。

? 總分計算:節(jié)點最終得分是所有匹配規(guī)則的 weight 之和。

示例:
優(yōu)先調(diào)度到以下節(jié)點:

? 首選 region=east 的節(jié)點(權重 100)

? 其次 disk-type=ssd 的節(jié)點(權重 70)

給node01節(jié)點打上region=east標簽

|   |   |
| --- | --- |
|   | [root@master ~/affinity]# kubectl label node node01 region=east |
|   | node/node01 labeled |

給node02節(jié)點打上disk-type=ssd標簽

|   |   |
| --- | --- |
|   | [root@master ~/affinity]# kubectl label node node02 disk-type=ssd |
|   | node/node02 labeled |

創(chuàng)建deploy

|  |  |
|---|---|
|  |[root@master~/affinity]# cat affinity-deploy.yaml |
|  |apiVersion:apps/v1|
|  |kind:Deployment|
|  |metadata:|
|  |name:nginx-affinity|
|  |spec:|
|  |replicas:10|
|  |selector:|
|  |matchLabels:|
|  |app:nginx|
|  |template:|
|  |metadata:|
|  |labels:|
|  |app:nginx|
|  |spec:|
|  |affinity:|
|  |# 節(jié)點親和性 |
|  |nodeAffinity:|
|  |# 指定軟性匹配規(guī)則 |
|  |preferredDuringSchedulingIgnoredDuringExecution:|
|  |# 權重范圍 1-100,值越高優(yōu)先級越高 |
|  |-weight:100|
|  |preference:|
|  |matchExpressions:|
|  |-key:region|
|  |operator:In|
|  |values:["east"]|
|  |-weight:70|
|  |preference:|
|  |matchExpressions:|
|  |-key:disk-type|
|  |operator:In|
|  |values:["ssd"]|
|  |containers:|
|  |-name:nginx|
|  |image:nginx|
|  |[root@master~/affinity]# kubectl apply -f affinity-deploy.yaml |
|  |deployment.apps/nginx-affinitycreated|

查看Pod調(diào)度到哪一個節(jié)點上

發(fā)現(xiàn)調(diào)度到node01節(jié)點上的Pod居多,因為node01的權重是100,而node02節(jié)點上略少,權重為70

|   |   |
| --- | --- |
|   |[root@master ~/affinity]# kubectl get po -o wide |
|   | NAME               READY  STATUS  RESTARTS  AGE  IP        NODE   NOMINATED NODE  READINESS GATES |
|   | nginx-affinity-65587946bd-84mv5 1/1  Running 0    30s 100.117.144.180 node01         |
|   | nginx-affinity-65587946bd-8lfwl 1/1  Running 0    30s 100.117.144.183 node01         |
|   | nginx-affinity-65587946bd-9fnhb 1/1  Running 0    30s 100.117.144.179 node01         |
|   | nginx-affinity-65587946bd-9rqt9 1/1  Running 0    30s 100.117.144.177 node01         |
|   | nginx-affinity-65587946bd-gsq4c 1/1  Running 0    30s 100.117.144.182 node01         |
|   | nginx-affinity-65587946bd-pf845 1/1  Running 0    30s 100.95.185.238  node02         |
|   | nginx-affinity-65587946bd-pvwps 1/1  Running 0    30s 100.95.185.237  node02         |
|   | nginx-affinity-65587946bd-qhhh7 1/1  Running 0    30s 100.95.185.239  node02         |
|   | nginx-affinity-65587946bd-tn54h 1/1  Running 0    30s 100.117.144.178 node01         |
|   | nginx-affinity-65587946bd-x64qs 1/1  Running 0    30s 100.117.144.181 node01         |

節(jié)點親和性-混合使用硬性和軟性規(guī)則

示例:

|  |  |
|---|---|
|  |apiVersion:v1|
|  |kind:Pod|
|  |metadata:|
|  |name:mixed-affinity-pod|
|  |spec:|
|  |affinity:|
|  |nodeAffinity:|
|  |# 硬性限制 |
|  |requiredDuringSchedulingIgnoredDuringExecution:|
|  |nodeSelectorTerms:|
|  |-matchExpressions:|
|  |-key:env|
|  |operator:In|
|  |values:["prod"]|
|  |# 軟性限制 |
|  |preferredDuringSchedulingIgnoredDuringExecution:|
|  |-weight:80|
|  |preference:|
|  |matchExpressions:|
|  |-key:gpu|
|  |operator:Exists|
|  |containers:|
|  |-name:nginx|
|  |image:nginx|

回到頂部

Pod親和性

Pod 親和性(Pod Affinity)是 Kubernetes 中控制 Pod 調(diào)度的重要機制,其核心作用是根據(jù)其他 Pod 的位置(如節(jié)點、命名空間等)來影響當前 Pod 的調(diào)度決策,實現(xiàn) Pod 之間的協(xié)同部署或反親和(互斥部署)。這一機制通過標簽匹配規(guī)則,將相關 Pod 「吸引」到同一區(qū)域(如節(jié)點、機架、可用區(qū)等)或「排斥」到不同區(qū)域,從而優(yōu)化資源利用、提升服務性能或增強系統(tǒng)穩(wěn)定性。

Pod親和性的分類

Pod親和性分為間親和性和反親和性。

親和性是當?shù)谝粋€Pod調(diào)度到一個特定的拓撲域中時,后續(xù)的所有的Pod都會往該拓撲域調(diào)度。

拓撲域理解為親和性規(guī)則作用的「區(qū)域范圍」,通常為節(jié)點標簽(如 kubernetes.io/hostname 表示節(jié)點,kubernetes.io/zone 表示可用區(qū))。

反親和性是保證一個拓撲域中最多只能有且僅有一個相同的pod,多余的pod處于pending狀態(tài)

Pod間親和性實戰(zhàn)

Pod 間親和性可以用于將相關 Pod 調(diào)度到同一拓撲層級(如同一節(jié)點或同一可用區(qū)),從而減少網(wǎng)絡延遲,提高性能。例如:

? 將前端和后端服務部署在同一節(jié)點或同一可用區(qū):減少服務間通信的網(wǎng)絡延遲。

? 將依賴的服務部署在同一節(jié)點:提高服務間的通信效率。

Pod 間親和性也分為硬性限制和軟性限制,通過requiredDuringSchedulingIgnoredDuringExecution(硬性)和preferredDuringSchedulingIgnoredDuringExecution(軟性)來指定。

硬性限制實戰(zhàn)

示例:

|  |  |
|---|---|
|  |# 定義deploy |
|  |[root@master~/affinity]# cat affinity-deploy.yaml |
|  |apiVersion:apps/v1|
|  |kind:Deployment|
|  |metadata:|
|  |name:nginx-affinity|
|  |spec:|
|  |replicas:10|
|  |selector:|
|  |matchLabels:|
|  |app:nginx|
|  |template:|
|  |metadata:|
|  |labels:|
|  |app:nginx|
|  |spec:|
|  |affinity:|
|  |# Pod親和性 |
|  |podAffinity:|
|  |# 指定硬性匹配規(guī)則 |
|  |requiredDuringSchedulingIgnoredDuringExecution:|
|  |-labelSelector:|
|  |# 這里指定Pod的標簽,而不是節(jié)點的標簽 |
|  |matchExpressions:|
|  |-key:app|
|  |operator:In|
|  |values:["nginx"]|
|  |# 添加 topologyKey,topologyKey 決定了 Pod 親和性或反親和性規(guī)則在集群中的作用范圍。 |
|  |# 這里指定節(jié)點標簽的key |
|  |topologyKey:"kubernetes.io/hostname"|
|  |containers:|
|  |-name:nginx|
|  |image:nginx|
|  |  |
|  |[root@master~/affinity]# kubectl apply -f affinity-deploy.yaml |
|  |deployment.apps/nginx-affinitycreated|

配置說明:
labelSelector:標簽選擇器,在這里是選擇Pod的標簽,而不是選擇節(jié)點的標簽,因為Pod親和性是Pod級別的調(diào)度
topologyKey:該字段是Pod親和性中一個很重要的字段,它的作用是定義 Pod 親和性或反親和性規(guī)則的作用范圍,即在什么級別的拓撲結構中應用這些規(guī)則。這里指定的節(jié)點標簽的key

查看Pod的調(diào)度,發(fā)現(xiàn)Pod都在node02節(jié)點上

|   |   |
| --- | --- |
|   |[root@master ~/affinity]# kubectl get po -o wide |
|   | NAME               READY  STATUS  RESTARTS  AGE  IP        NODE   NOMINATED NODE  READINESS GATES |
|   | nginx-affinity-7f74fbb7c-2r9lm 1/1  Running 0    76s 100.95.185.249 node02         |
|   | nginx-affinity-7f74fbb7c-55bfw 1/1  Running 0    76s 100.95.185.241 node02         |
|   | nginx-affinity-7f74fbb7c-9h5qq 1/1  Running 0    76s 100.95.185.248 node02         |
|   | nginx-affinity-7f74fbb7c-bq9m9 1/1  Running 0    76s 100.95.185.245 node02         |
|   | nginx-affinity-7f74fbb7c-cdxpg 1/1  Running 0    76s 100.95.185.240 node02         |
|   | nginx-affinity-7f74fbb7c-j7vbf 1/1  Running 0    76s 100.95.185.242 node02         |
|   | nginx-affinity-7f74fbb7c-rnqfs 1/1  Running 0    76s 100.95.185.243 node02         |
|   | nginx-affinity-7f74fbb7c-sscsx 1/1  Running 0    76s 100.95.185.244 node02         |
|   | nginx-affinity-7f74fbb7c-v7jf2 1/1  Running 0    76s 100.95.185.246 node02         |
|   | nginx-affinity-7f74fbb7c-w249m 1/1  Running 0    76s 100.95.185.247 node02         |

軟性限制實戰(zhàn)(略,生產(chǎn)環(huán)境中使用的不多)

Pod反親和性

Pod 反親和性(podAntiAffinity)是 Kubernetes 中的一種調(diào)度策略,與 Pod 親和性(podAffinity)相對。它用于控制 Pod 的調(diào)度位置,確保滿足特定條件的 Pod 不會被調(diào)度到同一拓撲層級(如同一節(jié)點、同一可用區(qū)或同一區(qū)域)上。Pod 反親和性主要用于實現(xiàn)高可用性和資源隔離等目標。

Pod 反親和性也分為硬性限制和軟性限制,通過requiredDuringSchedulingIgnoredDuringExecution(硬性)和preferredDuringSchedulingIgnoredDuringExecution(軟性)來指定。

Pod反親和性作用

? 高可用性:

? 通過將多個副本 Pod 分布到不同的故障域(如不同的節(jié)點或可用區(qū)),確保系統(tǒng)的容錯能力。例如,將多個副本 Pod 調(diào)度到不同的節(jié)點或可用區(qū),避免單點故障導致所有副本同時不可用。

? 資源隔離:

? 通過將某些 Pod 分布到不同的節(jié)點或可用區(qū),避免它們相互競爭資源。例如,將不同租戶的 Pod 分布到不同的節(jié)點或可用區(qū),實現(xiàn)資源隔離。

? 性能優(yōu)化:

? 通過將 Pod 分布到不同的節(jié)點或可用區(qū),減少單個節(jié)點的負載壓力,提高整體性能。

硬限制實戰(zhàn)

|  |  |
|---|---|
|  |# 創(chuàng)建deploy |
|  |[root@master~/affinity]# cat affinity-deploy.yaml |
|  |apiVersion:apps/v1|
|  |kind:Deployment|
|  |metadata:|
|  |name:nginx-affinity|
|  |spec:|
|  |replicas:10|
|  |selector:|
|  |matchLabels:|
|  |app:nginx|
|  |template:|
|  |metadata:|
|  |labels:|
|  |app:nginx|
|  |spec:|
|  |affinity:|
|  |# Pod反親和性 |
|  |podAntiAffinity:|
|  |# 指定性匹配規(guī)則 |
|  |requiredDuringSchedulingIgnoredDuringExecution:|
|  |-labelSelector:|
|  |# 這里指定Pod的標簽,而不是節(jié)點的標簽 |
|  |matchExpressions:|
|  |-key:app|
|  |operator:In|
|  |values:["nginx"]|
|  |# # 添加 topologyKey |
|  |topologyKey:"kubernetes.io/hostname"|
|  |containers:|
|  |-name:nginx|
|  |image:nginx|
|  |[root@master~/affinity]# kubectl apply -f affinity-deploy.yaml |
|  |deployment.apps/nginx-affinitycreated|

查看一下Pod

發(fā)現(xiàn)只有兩個Pod處于Running狀態(tài),為什么呢?
因為反親和性是在每個拓撲域中調(diào)度一個Pod,當Pod的數(shù)量多余拓撲域時,那么剩余的Pod則無法完成調(diào)度,所以處于了Pending狀態(tài)

|   |   |
| --- | --- |
|   |[root@master ~/affinity]# kubectl get po -o wide |
|   | NAME               READY  STATUS  RESTARTS  AGE  IP        NODE   NOMINATED NODE  READINESS GATES |
|   | nginx-affinity-675c568f99-5brpf 1/1  Running 0    5s 100.117.144.184 node01         |
|   | nginx-affinity-675c568f99-68z9q 0/1  Pending 0    5s                 |
|   | nginx-affinity-675c568f99-7vbqb 0/1  Pending 0    5s                 |
|   | nginx-affinity-675c568f99-8tqps 0/1  Pending 0    5s                 |
|   | nginx-affinity-675c568f99-96cs2 0/1  Pending 0    5s                 |
|   | nginx-affinity-675c568f99-prpg4 0/1  Pending 0    5s                 |
|   | nginx-affinity-675c568f99-qsp8b 1/1  Running 0    5s 100.95.185.250  node02         |
|   | nginx-affinity-675c568f99-tf9qv 0/1  Pending 0    5s                 |
|   | nginx-affinity-675c568f99-x7k8p 0/1  Pending 0    5s                 |
|   | nginx-affinity-675c568f99-xbfn2 0/1  Pending 0    5s                 |

回到頂部

Pod反親和性和DaemonSet的區(qū)別

Pod反親和性和DaemonSet感覺很類似,在不考慮污點的情況下,會在每一個節(jié)點上都會創(chuàng)建一個Pod,但是也有一些區(qū)別

DaemonSet可以閱讀這篇文章:K8s新手系列之DaemonSet資源

特性 Pod 反親和性 DaemonSet
定義 調(diào)度策略,控制 Pod 的調(diào)度位置 控制器,確保每個節(jié)點上運行一個 Pod 的副本
用途 高可用性、資源隔離、性能優(yōu)化 運行集群級別的守護進程,如日志收集、監(jiān)控代理
調(diào)度方式 根據(jù)labelSelector和topologyKey調(diào)度 Pod 自動在每個節(jié)點上運行一個 Pod 的副本
配置方式 在 Pod 的spec.affinity.podAntiAffinity中配置 使用 DaemonSet 資源對象配置
適用場景 多副本應用,需要跨節(jié)點或可用區(qū)分布 集群級別的守護進程,每個節(jié)點都需要運行一個副本
調(diào)度器角色 調(diào)度器根據(jù)規(guī)則調(diào)度 Pod DaemonSet 控制器自動管理 Pod 的生命周期
Pod 數(shù)量 根據(jù)副本數(shù)和調(diào)度規(guī)則動態(tài)調(diào)整 每個節(jié)點上運行一個 Pod,數(shù)量與節(jié)點數(shù)量一致

鏈接:https://www.cnblogs.com/huangSir-devops/p/18859120

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 節(jié)點
    +關注

    關注

    0

    文章

    230

    瀏覽量

    25656
  • kubernetes
    +關注

    關注

    0

    文章

    273

    瀏覽量

    9530
  • 字段
    +關注

    關注

    0

    文章

    15

    瀏覽量

    1812

原文標題:5分鐘掌握Kubernetes Pod親和性(Affinity):核心概念與實戰(zhàn)配置指南

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Kubernetes的Device Plugin設計解讀

    設計解讀最近在調(diào)研Kubernetes的GPU調(diào)度和運行機制,發(fā)現(xiàn)傳統(tǒng)的alpha.kubernetes.io/nvidia-gpu即將在1.11版本中下線,和GPU相關的調(diào)度和部署的
    發(fā)表于 03-12 16:23

    Kubernetes Ingress 高可靠部署最佳實踐

    摘要: 在Kubernetes集群,Ingress作為集群流量接入層,Ingress的高可靠顯得尤為重要,今天我們主要探討如何部署一套高性能高可靠的Ingress接入層。簡介
    發(fā)表于 04-17 14:35

    阿里云容器Kubernetes監(jiān)控(二) - 使用Grafana展現(xiàn)Pod監(jiān)控數(shù)據(jù)

    kubernetes承擔的責任遠不止監(jiān)控數(shù)據(jù)的采集,還包括控制臺的監(jiān)控接口、HPA的POD彈性伸縮等都依賴于Heapster的功能。簡介在kubernetes的監(jiān)控方案
    發(fā)表于 05-10 15:28

    從零開始入門 K8s| 阿里技術專家詳解 K8s 核心概念

    臺節(jié)點上去。Kubernetes調(diào)度器是執(zhí)行這項能力的組件,它會觀察正在被調(diào)度的這個容器的大小、規(guī)格。比如說它所需要的 CPU以及它所需要的 memory,然后在集群找一臺相對比
    發(fā)表于 09-20 14:52

    從零開始入門 K8s| 詳解 Pod 及容器設計模式

    一、為什么需要 Pod容器的基本概念我們知道 PodKubernetes 項目里面一個非常重要的概念,也是非常重要的一個原子調(diào)度單位,但是為什么我們會需要這樣一個概念呢?在使用容
    發(fā)表于 09-20 15:12

    深入研究Kubernetes調(diào)度

    “本文從 Pod 和節(jié)點的配置開始,介紹了 Kubernetes Scheduler 框架、擴展點、API 以及可能發(fā)生的與資源相關的瓶頸,并展示了性能調(diào)整設置,涵蓋了 Kubernetes
    的頭像 發(fā)表于 08-23 10:39 ?2028次閱讀

    容器進程調(diào)度時是該優(yōu)先考慮CPU資源還是內(nèi)存資源

    當然實際 k8s 的調(diào)度策略不是這么簡單的,系統(tǒng)默認的 kube-scheduler 調(diào)度器外還有直接指定Node主機名、節(jié)點親和性Pod
    的頭像 發(fā)表于 08-16 18:20 ?2284次閱讀

    KubernetesPod簡易理解

    PodKubernetes中非常重要的概念,也是Kubernetes管理的基本單位。正如其名,Pod像一個豌豆莢,可以容納多個container,擁有相同的IP地址。
    的頭像 發(fā)表于 02-15 10:44 ?2202次閱讀

    Kubernetes Pod如何獨立工作

    在學習 Kubernetes 網(wǎng)絡模型的過程,了解各種網(wǎng)絡組件的作用以及如何交互非常重要。本文就介紹了各種網(wǎng)絡組件在 Kubernetes 集群是如何交互的,以及如何幫助每個
    的頭像 發(fā)表于 05-16 14:29 ?1275次閱讀
    <b class='flag-5'>Kubernetes</b> <b class='flag-5'>Pod</b>如何獨立工作

    Kubernetes Pod如何獲取IP地址呢?

    Kubernetes 網(wǎng)絡模型的核心要求之一是每個 Pod 都擁有自己的 IP 地址并可以使用該 IP 地址進行通信。很多人剛開始使用 Kubernetes 時,還不清楚如何為每個 Pod
    的頭像 發(fā)表于 07-21 10:00 ?1593次閱讀
    <b class='flag-5'>Kubernetes</b> <b class='flag-5'>Pod</b>如何獲取IP地址呢?

    Linux之CPU調(diào)度策略和CPU親和性

    一、調(diào)度策略 調(diào)度進程 單個 CPU一次只能執(zhí)行一個進程,雖然 Linux 系統(tǒng)通過使用多任務同時處理多個進程,但當多個進程同時運行在一個CPU 上時,它通過交錯執(zhí)行這些進程。 內(nèi)核使用進程調(diào)度器來
    的頭像 發(fā)表于 12-05 16:38 ?2057次閱讀
    Linux之CPU<b class='flag-5'>調(diào)度</b>策略和CPU<b class='flag-5'>親和性</b>

    Kubernetes Pod常用管理命令詳解

    Kubernetes Pod常用管理命令詳解
    的頭像 發(fā)表于 02-17 14:06 ?1625次閱讀
    <b class='flag-5'>Kubernetes</b> <b class='flag-5'>Pod</b>常用管理命令<b class='flag-5'>詳解</b>

    多核服務器的CPU親和性配置與負載均衡優(yōu)化

    某大廠的資深架構師小王最近遇到了一個頭疼的問題:新采購的雙路AMD EPYC 7763(128核心)服務器,在高并發(fā)場景下的性能表現(xiàn)竟然還不如之前的32核服務器。經(jīng)過深入排查,發(fā)現(xiàn)問題出在CPU親和性配置上。通過正確的配置,最終性能提升了300%!
    的頭像 發(fā)表于 08-27 14:45 ?1018次閱讀

    Kubernetes Pod調(diào)度策略原理與落地指南

    Pod調(diào)度Kubernetes的核心機制之一,決定了Pod最終運行在哪個節(jié)點上。默認調(diào)度器kube-scheduler通過一系列預選(Fi
    的頭像 發(fā)表于 02-27 11:08 ?285次閱讀

    Kubernetes Pod啟動失敗的各種場景及其排障方法

    Kubernetes 日常運維,Pod 起不來是最常見的故障形態(tài)之一。很多運維工程師看到 Pod 狀態(tài)不是 Running 時,第一反應是盯著 kubectl get
    的頭像 發(fā)表于 04-13 13:53 ?76次閱讀