当前位置:  首页>> 技术小册>> Kubernets合辑5-Pod控制器

pod亲和性和节点亲和性类似,也非为硬亲和软亲和
● 案例一(硬亲和)

  1. [root@maxiaoke local-k8s-yaml]# kubectl label node centos-7-55 cpu=slow # 此时三个节点都存在cpu标签,仅centos-7-55为cpu=slow其它为high
  2. [root@maxiaoke local-k8s-yaml]# kubectl get pod -l app=nginx -o wide # 为了效果明显,建nginx-deploy减少为1个副本,当前在cnetos-7-56上
  3. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  4. nginx-deploy-cfbbb7cbd-jb4xz 1/1 Running 0 13m 172.16.5.40 centos-7-56 <none> <none>
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: slb-deploy
  5. spec:
  6. replicas: 5
  7. selector:
  8. matchLabels:
  9. app: slb
  10. template:
  11. metadata:
  12. labels:
  13. app: slb
  14. spec:
  15. containers:
  16. - name: slb-demo
  17. image: linuxmaxiaoke/nginx:v1.0.1
  18. affinity:
  19. podAffinity:
  20. requiredDuringSchedulingIgnoredDuringExecution:
  21. # centos-7-54和centos-7-56都满足
  22. - labelSelector:
  23. matchLabels:
  24. app: nginx
  25. namespaces: [default]
  26. topologyKey: cpu
  1. [root@maxiaoke local-k8s-yaml]# kubectl get pod -l app=slb -o wide # centos-7-55不满足 cpu=high,所以不会调度
  2. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  3. slb-deploy-7d9b6c47d-drjls 1/1 Running 0 4m19s 172.16.3.165 centos-7-54 <none> <none>
  4. slb-deploy-7d9b6c47d-dsw7t 1/1 Running 0 4m19s 172.16.5.43 centos-7-56 <none> <none>
  5. slb-deploy-7d9b6c47d-fn6k2 1/1 Running 0 4m19s 172.16.5.44 centos-7-56 <none> <none>
  6. slb-deploy-7d9b6c47d-kw9vh 1/1 Running 0 4m19s 172.16.3.166 centos-7-54 <none> <none>
  7. slb-deploy-7d9b6c47d-pl6lz 1/1 Running 0 4m19s 172.16.5.45 centos-7-56 <none> <none>

案例二(软亲和)

  1. [root@maxiaoke local-k8s-yaml]# kubectl label node centos-7-54 cpu=slow --overwrite # 使得仅cnetos-7-56满足cpu=high
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: slb-deploy
  5. spec:
  6. replicas: 5
  7. selector:
  8. matchLabels:
  9. app: slb
  10. template:
  11. metadata:
  12. labels:
  13. app: slb
  14. spec:
  15. containers:
  16. - name: slb-demo
  17. image: linuxmaxiaoke/nginx:v1.0.1
  18. affinity:
  19. podAffinity:
  20. preferredDuringSchedulingIgnoredDuringExecution:
  21. - podAffinityTerm:
  22. labelSelector:
  23. matchLabels:
  24. app: nginx
  25. namespaces: [default]
  26. topologyKey: cpu
  27. weight: 10
  1. [root@maxiaoke local-k8s-yaml]# kubectl get pod -l app=slb -o wide # 大部分选择了cnetos-7-56,而不是全部梭哈
  2. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  3. slb-deploy-6b5fc7bd96-78cj4 1/1 Running 0 16s 172.16.5.48 centos-7-56 <none> <none>
  4. slb-deploy-6b5fc7bd96-clchc 1/1 Running 0 18s 172.16.3.167 centos-7-54 <none> <none>
  5. slb-deploy-6b5fc7bd96-fxwjf 1/1 Running 0 16s 172.16.5.47 centos-7-56 <none> <none>
  6. slb-deploy-6b5fc7bd96-ls8zr 1/1 Running 0 18s 172.16.5.46 centos-7-56 <none> <none>
  7. slb-deploy-6b5fc7bd96-zn9t8 1/1 Running 0 18s 172.16.4.5 centos-7-55 <none> <none>

该分类下的相关小册推荐: