一、指定调度节点
Ⅰ、Pod.spec.nodeName 将 Pod 直接调度到指定的 Node 节点上,会跳过 Scheduler 的调度策略,该匹配规则是强制匹配
apiVersion: apps/v1
kind: Deployment
metadata:
name: myweb
spec:
selector:
matchLabels:
app: myweb
replicas: 7
template:
metadata:
labels:
app: myweb
spec:
nodeName: k8s-node-01
containers:
- name: myweb
image: wangyanglinux/myapp:v1
ports:
- containerPort: 80
[root@k8s-master-01 affi]
NAME STATUS ROLES AGE VERSION
k8s-master-01 Ready control-plane,master 25d v1.20.2
k8s-node-01 Ready <none> 25d v1.20.2
k8s-node-02 Ready <none> 25d v1.20.2
[root@k8s-master-01 affi]
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myweb-8574d4dccc-2kxdt 1/1 Running 0 12s 10.244.1.110 k8s-node-01 <none> <none>
myweb-8574d4dccc-9pf6q 1/1 Running 0 12s 10.244.1.114 k8s-node-01 <none> <none>
myweb-8574d4dccc-h9lwx 1/1 Running 0 12s 10.244.1.108 k8s-node-01 <none> <none>
myweb-8574d4dccc-kd8x5 1/1 Running 0 12s 10.244.1.112 k8s-node-01 <none> <none>
myweb-8574d4dccc-vnj9w 1/1 Running 0 12s 10.244.1.113 k8s-node-01 <none> <none>
myweb-8574d4dccc-xv5np 1/1 Running 0 12s 10.244.1.111 k8s-node-01 <none> <none>
myweb-8574d4dccc-zht9j 1/1 Running 0 12s 10.244.1.109 k8s-node-01 <none> <none>
Ⅱ、Pod.spec.nodeSelector:通过 kubernetes 的 label-selector 机制选择节点,由调度器调度策略匹配 label,而后调度 Pod 到目标节点,该匹配规则属于强制约束
apiVersion: apps/v1
kind: Deployment
metadata:
name: myweb111
spec:
selector:
matchLabels:
app: myweb111
replicas: 7
template:
metadata:
labels:
app: myweb111
spec:
nodeSelector:
type: backEndNode1
containers:
- name: myweb
image: wangyanglinux/myapp:v1
ports:
- containerPort: 80
[root@k8s-master-01 affi]
deployment.apps/myweb111 created
[root@k8s-master-01 affi]
NAME READY STATUS RESTARTS AGE
myweb111-655f78999f-8c8vv 0/1 Pending 0 4s
myweb111-655f78999f-8r2mn 0/1 Pending 0 4s
myweb111-655f78999f-bhjlq 0/1 Pending 0 4s
myweb111-655f78999f-f2qpk 0/1 Pending 0 4s
myweb111-655f78999f-l5njb 0/1 Pending 0 4s
myweb111-655f78999f-mzc9d 0/1 Pending 0 4s
myweb111-655f78999f-txzdq 0/1 Pending 0 4s
[root@k8s-master-01 affi]
[root@k8s-master-01 affi]
NAME READY STATUS RESTARTS AGE
myweb111-655f78999f-8c8vv 1/1 Running 0 2m41s
myweb111-655f78999f-8r2mn 1/1 Running 0 2m41s
myweb111-655f78999f-bhjlq 1/1 Running 0 2m41s
myweb111-655f78999f-f2qpk 1/1 Running 0 2m41s
myweb111-655f78999f-l5njb 1/1 Running 0 2m41s
myweb111-655f78999f-mzc9d 1/1 Running 0 2m41s
myweb111-655f78999f-txzdq 1/1 Running 0 2m41s
[root@k8s-master-01 affi]
node/k8s-node-02 labeled
[root@k8s-master-01 affi]
NAME READY STATUS RESTARTS AGE
myweb111-655f78999f-8c8vv 1/1 Running 0 3m34s
myweb111-655f78999f-8r2mn 1/1 Running 0 3m34s
myweb111-655f78999f-bhjlq 1/1 Running 0 3m34s
myweb111-655f78999f-f2qpk 1/1 Running 0 3m34s
myweb111-655f78999f-l5njb 1/1 Running 0 3m34s
myweb111-655f78999f-mzc9d 1/1 Running 0 3m34s
myweb111-655f78999f-txzdq 1/1 Running 0 3m34s
[root@k8s-master-01 affi]
deployment.apps/myweb111 edited
[root@k8s-master-01 affi]
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myweb111-655f78999f-5ml48 0/1 ContainerCreating 0 3s <none> k8s-node-02 <none> <none>
myweb111-655f78999f-8c8vv 1/1 Running 0 4m21s 10.244.1.117 k8s-node-01 <none> <none>
myweb111-655f78999f-8r2mn 1/1 Running 0 4m21s 10.244.1.118 k8s-node-01 <none> <none>
myweb111-655f78999f-bhjlq 1/1 Running 0 4m21s 10.244.1.120 k8s-node-01 <none> <none>
myweb111-655f78999f-f2qpk 1/1 Running 0 4m21s 10.244.1.116 k8s-node-01 <none> <none>
myweb111-655f78999f-fg99t 0/1 ContainerCreating 0 3s <none> k8s-node-02 <none> <none>
myweb111-655f78999f-gwjjq 0/1 ContainerCreating 0 3s <none> k8s-node-02 <none> <none>
myweb111-655f78999f-l5njb 1/1 Running 0 4m21s 10.244.1.119 k8s-node-01 <none> <none>
myweb111-655f78999f-mzc9d 1/1 Running 0 4m21s 10.244.1.121 k8s-node-01 <none> <none>
myweb111-655f78999f-nkck4 0/1 ContainerCreating 0 3s <none> k8s-node-02 <none> <none>
myweb111-655f78999f-sf4cv 0/1 ContainerCreating 0 3s <none> k8s-node-02 <none> <none>
myweb111-655f78999f-txzdq 1/1 Running 0 4m21s 10.244.1.115 k8s-node-01 <none> <none>
[root@k8s-master-01 affi]
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myweb111-655f78999f-5ml48 1/1 Running 0 5s 10.244.2.129 k8s-node-02 <none> <none>
myweb111-655f78999f-8c8vv 1/1 Running 0 4m23s 10.244.1.117 k8s-node-01 <none> <none>
myweb111-655f78999f-8r2mn 1/1 Running 0 4m23s 10.244.1.118 k8s-node-01 <none> <none>
myweb111-655f78999f-bhjlq 1/1 Running 0 4m23s 10.244.1.120 k8s-node-01 <none> <none>
myweb111-655f78999f-f2qpk 1/1 Running 0 4m23s 10.244.1.116 k8s-node-01 <none> <none>
myweb111-655f78999f-fg99t 1/1 Running 0 5s 10.244.2.126 k8s-node-02 <none> <none>
myweb111-655f78999f-gwjjq 1/1 Running 0 5s 10.244.2.127 k8s-node-02 <none> <none>
myweb111-655f78999f-l5njb 1/1 Running 0 4m23s 10.244.1.119 k8s-node-01 <none> <none>
myweb111-655f78999f-mzc9d 1/1 Running 0 4m23s 10.244.1.121 k8s-node-01 <none> <none>
myweb111-655f78999f-nkck4 1/1 Running 0 5s 10.244.2.128 k8s-node-02 <none> <none>
myweb111-655f78999f-sf4cv 1/1 Running 0 5s 10.244.2.130 k8s-node-02 <none> <none>
myweb111-655f78999f-txzdq 1/1 Running 0 4m23s 10.244.1.115 k8s-node-01 <none> <none>