应用的场景:当k8s集群的某些节点压力过高时,可以暂时将这些节点禁用,使新启动的pod不再分配到这些节点上来(不会影响该节点上已存在的pod)

1.查看k8s的集群节点
[root@node74 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
10.10.55.71 Ready node 126d v1.20.1
10.10.55.72 Ready node 126d v1.20.1
10.10.55.73 Ready node 126d v1.20.1
10.10.55.74 Ready master 126d v1.20.1
10.10.55.84 Ready node 126d v1.20.1

2.将某个节点调度禁用
[root@node74 ~]# kubectl cordon 10.10.55.84
node/10.10.55.84 cordoned
[root@node74 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
10.10.55.71 Ready node 126d v1.20.1
10.10.55.72 Ready node 126d v1.20.1
10.10.55.73 Ready node 126d v1.20.1
10.10.55.74 Ready master 126d v1.20.1
10.10.55.84 Ready,SchedulingDisabled node 126d v1.20.1

3.结束调度禁用
[root@node74 ~]# kubectl uncordon 10.10.55.84
node/10.10.55.84 uncordoned
[root@node74 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
10.10.55.71 Ready node 126d v1.20.1
10.10.55.72 Ready node 126d v1.20.1
10.10.55.73 Ready node 126d v1.20.1
10.10.55.74 Ready master 126d v1.20.1
10.10.55.84 Ready node 126d v1.20.1

4.怎么查看pod被调度到哪个k8s节点
可以使用kubectl get all -n namespace -o wide命令
[root@node74 ~]# kubectl get all -n songyanlingn2 -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/coordinator-1-0 1/1 Running 0 20h 172.20.42.19 10.10.55.84
pod/coordinator-2-0 1/1 Running 0 20h 172.20.95.193 10.10.55.73
pod/gcware-0 1/1 Running 0 20h 172.20.42.48 10.10.55.84
pod/gcware-1 1/1 Running 0 20h 172.20.95.247 10.10.55.73
pod/gcware-2 1/1 Running 0 20h 172.20.232.155 10.10.55.71
pod/wh1-c1-0 1/1 Running 0 20h 172.20.42.40 10.10.55.84
pod/wh1-c1-1 1/1 Running 0 20h 172.20.95.236 10.10.55.73
pod/wh1-c1-2 1/1 Running 0 20h 172.20.232.143 10.10.55.71
pod/wh1-c1-3 1/1 Running 0 20h 172.20.42.30 10.10.55.84
node这一列显示每个pod被分配到哪个k8s集群节点上

也可以用kubectl describe pod pod_name -n namespace去查看,这个命令显示的信息更加详细一些,除了显示被分配到哪个节点,还会显示该pod的配置、状态及event等。如果pod异常,event会显示异常的原因。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐