k8s中calico网络组件部署时一个节点一直处于Pending状态
故障截图
- 故障排查思路,通过describe查看具体原因
~]# kubectl describe pod calico-node-pzlfv -n kube-system
通过describe查看得知报错
Warning FailedScheduling 58s (x23 over 23m) default-scheduler 0/3 nodes are available: 1 Insufficient cpu, 2 node(s) didn't match Pod's node affinity/selector.
- 根据报错定位具体故障,通过网上查找资料,可能是节点CPU资源不够导致。可以使用命令以下命令查看集群中节点的资源使用情况。
~]# kubectl describe node |grep -E '((Name|Roles):\s{6,})|(\s+(memory|cpu)\s+[0-9]+\w{0,2}.+%\))'
Name: k8s-master
Roles: control-plane,master
cpu 850m (85%) 0 (0%)
memory 240Mi (13%) 340Mi (19%)
Name: k8s-node01
Roles: <none>
cpu 350m (35%) 0 (0%)
memory 70Mi (4%) 170Mi (9%)
Name: k8s-node02
Roles: <none>
cpu 350m (35%) 0 (0%)
memory 70Mi (4%) 170Mi (9%)
可以看到master节点的cpu使用已经达到85%,剩余的已经不多。
查看calico组件yaml文件中requests下cpu的值。