五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

k8s中pod親和性和反親和性的使用

2023-01-10 23:56 作者:運(yùn)維實(shí)戰(zhàn)課程  | 我要投稿

1.親和性調(diào)度作用和分類- pod親和性和節(jié)點(diǎn)nodeAffinity親和性通用

親和度可以分成軟策略和硬策略兩種方式

軟策略:盡量滿足條件,滿足條件最好,不滿足也無所謂,若沒有滿足調(diào)度要求的節(jié)點(diǎn)的話,pod會忽略這條規(guī)則,繼續(xù)完成調(diào)度過程

硬策略: 必須滿足條件,比較強(qiáng)硬,如果沒有滿足條件的節(jié)點(diǎn)的話,就不斷重試直到滿足條件為止。

2.親和性和反親和性的兩種策略的配置寫法-pod親和性和節(jié)點(diǎn)nodeAffinity親和性通用

對于親和性和反親和性都有這兩種規(guī)則可以設(shè)置:

軟策略:preferredDuringSchedulingIgnoredDuringExecution

硬策略:requiredDuringSchedulingIgnoredDuringExecution

3.pod親和性和反親和性的概念

pod親和性和反親和性都是處理pod與pod之間的關(guān)系。

pod親和性: ?主要是想把pod和某個依賴的pod放在一起。

pod親和性主要解決pod可以和哪些pod部署在同一個拓?fù)溆蛑械膯栴}(其中拓?fù)溆蛴弥鳈C(jī)標(biāo)簽實(shí)現(xiàn),可以是單個主機(jī),也可以是多個主機(jī)組成的 cluster等等)

例如:一個pod在一個節(jié)點(diǎn)上了,那么我這個pod也得在這個節(jié)點(diǎn)上。

注意:是以pod的標(biāo)簽進(jìn)行標(biāo)記的,將pod標(biāo)簽一樣的幾個pod部署到同一個節(jié)點(diǎn)上,pod1的標(biāo)簽是app=love,部署在node1節(jié)點(diǎn),pod2的標(biāo)簽也是app=love,可以通過配置pod親和性,讓pod2也部署在node1,和pod1放到一起。

pod反親和性:主要想把?pod和某個pod分開。

pod反親和性主要是解決pod不能和哪些pod部署在同一個拓?fù)溆蛑械膯栴},它們都是處理的pod與pod 之間的關(guān)系。

例如:你這個pod在節(jié)點(diǎn)上了,那么我就不想和你待在同一個節(jié)點(diǎn)上

注意:是以pod的標(biāo)簽進(jìn)行標(biāo)記的,將pod標(biāo)簽一樣的幾個pod不要部署到同一個節(jié)點(diǎn)上,pod1的標(biāo)簽是app=love,部署在node1節(jié)點(diǎn),pod2的標(biāo)簽也是app=love,可以通過配置pod反親和性,不讓pod2部署在node1,不要和pod1放到一起。

4.pod親和性的案例實(shí)戰(zhàn)

1).準(zhǔn)備k8s集群

[root@k8s-m1 ~]# kubectl get node

NAME???? STATUS?? ROLES????????????????? AGE?? VERSION

k8s-m1?? Ready??? control-plane,master?? 23h?? v1.22.10

k8s-m2?? Ready??? control-plane,master?? 23h?? v1.22.10

k8s-m3?? Ready??? control-plane,master?? 23h?? v1.22.10

k8s-n1?? Ready??? worker???????????????? 23h?? v1.22.10

k8s-n2?? Ready??? worker???????????????? 23h?? v1.22.10

[root@k8s-m1 ~]# kubectl get cs

Warning: v1 ComponentStatus is deprecated in v1.19+

NAME???????????????? STATUS?? ?MESSAGE???????????? ERROR

scheduler??????????? Healthy?? ok?????????????????

controller-manager?? Healthy?? ok?????????????????

etcd-0?????????????? Healthy?? {"health":"true"}??

etcd-1?????????????? Healthy?? {"health":"true"}??

etcd-2?????????????? Healthy?? {"health":"true"}??

2).先部署一個標(biāo)簽為app=love的pod1的nginx(應(yīng)用nginx版本nginx:1.19.5)

[root@k8s-m1 ~]# vim nginx.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

? name: dev-nginx-deployment

spec:

? replicas: 1

? selector:

??? matchLabels:

????? app: love

? template:

??? metadata:

????? labels:

??????? app: love

??? spec:

????? containers:

????? - name: nginx

??????? image: nginx:1.19.5

[root@k8s-m1 ~]# kubectl apply -f nginx.yaml

?[root@k8s-m1 ~]# kubectl get pod -o wide --show-labels?? #查看部署的pod1部署在k8s-n1上

NAME??????????????????????????????????? READY?? STATUS??? RESTARTS?? AGE?? IP???????????? NODE???? NOMINATED NODE?? READINESS GATES?? LABELS

dev-nginx-deployment-7cdc5f7758-wgnbb?? 1/1???? Running?? 0????????? 8s??? 10.233.71.25?? k8s-n1?? <none>?????????? <none>??????????? app=love,pod-template-hash=7cdc5f7758

3).再使用pod親和性部署另一個pod2(標(biāo)簽也是app=love,nginx版本為nginx:1.20),和pod1部署到一起

[root@k8s-m1 ~]# vim nginx2.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

? name: nginx2-affinity-deployment

spec:

? replicas: 3

? selector:

??? matchLabels:

????? app: love2???????????? #pod2的標(biāo)簽,和pod1的標(biāo)簽沒關(guān)系

? template:

??? metadata:

????? labels:

??????? app: love2??????????? #pod2的標(biāo)簽,和pod1的標(biāo)簽沒關(guān)系

??? spec:

????? containers:

????? - name: nginx

??????? image: nginx:1.20

??????? ports:

??????? - containerPort: 80

????????? name: nginxweb

????? affinity:

??????? podAffinity:

????????? requiredDuringSchedulingIgnoredDuringExecution:? # 硬策略,以硬策略為例,軟策略類似

????????? - labelSelector:

????????????? matchExpressions:

????????????? - key: app??????????? #規(guī)則: 匹配和pod1的標(biāo)簽的規(guī)則時

??????????????? operator: In

??????????????? values:

??????????????? - love

??????????? topologyKey: kubernetes.io/hostname

[root@k8s-m1 ~]# kubectl apply -f nginx2.yaml?? #用pod親和性部署pod2,和pod1部署到一起

[root@k8s-m1 ~]# kubectl get pod -o wide --show-labels?? #查看部署后的結(jié)果,會和pod1部署到一起,部署到同一個節(jié)點(diǎn)上

NAME???????????????????????????????????? ?????READY?? STATUS??? RESTARTS?? AGE?? IP???????????? NODE???? NOMINATED NODE?? READINESS GATES?? LABELS

dev-nginx-deployment-7cdc5f7758-wgnbb???????? 1/1???? Running?? 0????????? 27m?? 10.233.71.25?? k8s-n1?? <none>?????????? <none>??????????? app=love,pod-template-hash=7cdc5f7758

nginx2-affinity-deployment-57b4b64d74-gbw8n?? 1/1???? Running?? 0????????? 18s?? 10.233.71.30?? k8s-n1?? <none>?????????? <none>??????????? app=love2,pod-template-hash=57b4b64d74

nginx2-affinity-deployment-57b4b64d74-rdjb7?? 1/1???? Running?? 0????????? 18s?? 10.233.71.31?? k8s-n1?? <none>?????????? <none>??????????? app=love2,pod-template-hash=57b4b64d74

nginx2-affinity-deployment-57b4b64d74-rmprr?? 1/1???? Running?? 0????????? 18s?? 10.233.71.32?? k8s-n1?? <none>?????????? <none>??????????? app=love2,pod-template-hash=57b4b64d74

加了pod親和性配置后,會發(fā)現(xiàn)后面部署的pod2的3個副本都會部署到和pod1標(biāo)簽一致的node節(jié)點(diǎn),即: k8s-n1上

如果不加pod親和性配置,就會按原來的調(diào)度策略,k8s-n1和k8s-n2節(jié)點(diǎn)上都會部署。

4). 再使用pod反親和性部署另一個pod2(標(biāo)簽也是app=love,nginx版本為nginx:1.20) ,不和pod1部署到一起

[root@k8s-m1 ~]# vim nginx2.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

? name: nginx2-affinity-deployment

spec:

? replicas: 3

? selector:

??? matchLabels:

????? app: love2????? #pod2的標(biāo)簽,和pod1的標(biāo)簽沒關(guān)系

? template:

??? metadata:

????? labels:

??????? app: love2??? #pod2的標(biāo)簽,和pod1的標(biāo)簽沒關(guān)系

??? spec:

????? containers:

????? - name: nginx

??????? image: nginx:1.20

??????? ports:

??????? - containerPort: 80

????????? name: nginxweb

????? affinity:

??????? podAntiAffinity:

????????? requiredDuringSchedulingIgnoredDuringExecution:? # 硬策略,以硬策略為例,軟策略類似

????????? - labelSelector:

????????????? matchExpressions:

????????????? - key: app?????????? #規(guī)則: 匹配和pod1的標(biāo)簽的規(guī)則時

??????????????? operator: In

??????????????? values:

??????????????? - love

??????????? topologyKey: kubernetes.io/hostname

?[root@k8s-m1 ~]# kubectl apply -f nginx2.yaml?????????? #用pod反親和性部署pod2,不和pod1部署到一起

[root@k8s-m1 ~]# kubectl get pod -o wide --show-labels? #查看部署后的結(jié)果,不會和pod1部署到一起,不會在同一節(jié)點(diǎn)上

NAME???????????????????????????????????????? READY?? STATUS??? RESTARTS?? AGE?? IP???????????? NODE???? NOMINATED NODE?? READINESS GATES?? LABELS

dev-nginx-deployment-7cdc5f7758-wgnbb??????? 1/1???? Running?? 0????????? 23m?? 10.233.71.25?? k8s-n1?? <none>?????????? <none>??????????? app=love,pod-template-hash=7cdc5f7758

nginx2-affinity-deployment-684568686-hf4tm?? 1/1???? Running?? 0????????? 14s?? 10.233.81.22?? k8s-n2?? <none>?????????? <none>??????????? app=love2,pod-template-hash=684568686

nginx2-affinity-deployment-684568686-tqvp7?? 1/1???? Running?? 0????????? 14s?? 10.233.81.24?? k8s-n2?? <none>?????????? <none>??????????? app=love2,pod-template-hash=684568686

nginx2-affinity-deployment-684568686-zhhq2?? 1/1???? Running?? 0????????? 14s?? 10.233.81.23?? k8s-n2?? <none>?????????? <none>??????????? app=love2,pod-template-hash=684568686

加了pod反親和性配置后,會發(fā)現(xiàn)后面部署的pod2的3個副本都不會部署到和pod1標(biāo)簽一致的node節(jié)點(diǎn),即不會部署在 k8s-n1上,而是會部署在k8s-n2上


參考連接: https://www.cnblogs.com/lnlvinso/p/13599102.html

?

k8s中pod親和性和反親和性的使用的評論 (共 條)

分享到微博請遵守國家法律
武强县| 汤原县| 郸城县| 平利县| 曲阳县| 霸州市| 文化| 贵定县| 香港 | 南皮县| 南木林县| 甘孜| 民丰县| 班玛县| 通渭县| 榆中县| 罗甸县| 明溪县| 渝北区| 乐陵市| 苏尼特右旗| 乐安县| 甘肃省| 长岭县| 博湖县| 舒城县| 将乐县| 宝丰县| 宝坻区| 潼南县| 高淳县| 香河县| 九台市| 若尔盖县| 广饶县| 蒙城县| 调兵山市| 临海市| 林西县| 西林县| 马边|