Linux - K8S - 调度策略 - 拓扑调度
## 拓扑调度 ```sh # 为所有node添加标识 [22:57:52 root@master1 scheduler]#kubectl label node master1 node=master1 zone=zoneA node/master1 labeled [22:59:35 root@master1 scheduler]#kubectl label node node1.noisedu.cn node=node1 zone=zoneA node/node1.noisedu.cn labeled [22:59:53 root@master1 scheduler]#kubectl label node node2.noisedu.cn node=node2 zone=zoneB node/node2.noisedu.cn labeled # 应用资源文件,所有节点分布是3:3:1 [23:02:51 root@master1 scheduler]#cat 16-scheduler-pod-topology-test.yaml apiVersion: apps/v1 kind: Deployment metadata: name: pod-affinity-preferred spec: replicas: 7 selector: matchLabels: foo: bar template: metadata: labels: foo: bar spec: containers: - name: pod-test image: 10.0.0.55:80/mykubernetes/pod_test:v0.1 imagePullPolicy: IfNotPresent topologySpreadConstraints: - maxSkew: 3 topologyKey: zone whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: foo: bar [23:02:55 root@master1 scheduler]#kubectl apply -f 16-scheduler-pod-topology-test.yaml deployment.apps/pod-affinity-preferred created [23:03:01 root@master1 scheduler]#kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod-affinity-preferred-84567586c8-2dlfp 1/1 Running 0 10s 10.244.3.7 node1.noisedu.cn <none> <none> pod-affinity-preferred-84567586c8-bzm2g 1/1 Running 0 9s 10.244.4.5 node2.noisedu.cn <none> <none> pod-affinity-preferred-84567586c8-gk5g5 1/1 Running 0 9s 10.244.4.7 node2.noisedu.cn <none> <none> pod-affinity-preferred-84567586c8-jf2nq 1/1 Running 0 10s 10.244.3.8 node1.noisedu.cn <none> <none> pod-affinity-preferred-84567586c8-swgxt 1/1 Running 0 9s 10.244.3.10 node1.noisedu.cn <none> <none> pod-affinity-preferred-84567586c8-xjlx8 1/1 Running 0 10s 10.244.4.6 node2.noisedu.cn <none> <none> pod-affinity-preferred-84567586c8-zdb75 1/1 Running 0 9s 10.244.3.9 node1.noisedu.cn <none> <none> ```