Kubernetes调度器根据特定的算法与策略将pod调度到工作节点上。在默认情况下,Kubernetes调度器可以满足绝大多数需求,例如调度pod到资源充足的节点上运行,或调度pod分散到不同节点使集群节点资源均衡等
[root@k8s-master ~]# vim pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
nodeName: 192.168.30.22
nodeSelector:
env_role: dev
containers:
- name: nginx
image: nginx
[root@k8s-master ~]# kubectl create -f pod.yaml
我们指定的是pod在22主机上创建,自然也会分配到这个主机上
[root@k8s-master ~]# kubectl get pod -o wide
nginx-pod 1/1 Running 0 2m 172.17.11.3 192.168.30.22
查看主机名标签
[root@k8s-master ~]# kubectl describe node 192.168.30.22
Name: 192.168.30.22
Roles: <none>
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/hostname=192.168.30.22
添加标签
[root@k8s-master ~]# kubectl label nodes 192.168.30.22 env_role=dev
再次查看主机名标签已经把env_role=dev添加进去
[root@k8s-master ~]# kubectl describe node 192.168.30.22
Name: 192.168.30.22
Roles: <none>
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
env_role=dev
kubernetes.io/hostname=192.168.30.22
根据我们的约束再次创建pod已经又放在22主机上了
[root@k8s-master ~]# kubectl get pod -o wide
nginx-pod2 1/1 Running 0 1m 172.17.11.5 192.168.30.22