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