我把三台虛擬機重啟,發現2個節點一直處於NotReady狀態,便去查找問題,到最后是因為子節點的kubelet的狀態異常了,restart一下就好了,下面轉一下解決的思路
昨天晚上,針對K8S環境做了一次壓測,50路並發實施,早上起來看監控,發現昨晚8點之后,系統好像都宕掉了,一看master節點和一個node節點狀態變成了not ready,主要定位手段如下:
1. 查看master kubelet狀態
systemctl status kubelet 狀態正常
2. 查看master kube-proxy狀態
systemctl status kube-proxy 狀態正常
3. 查看master kube-apiserver狀態
systemctl status kube-apiserver 狀態正常
4. 查看master kube-scheduler狀態
systemctl status kube-scheduler 狀態正常
5. 查看master etcd狀態
systemctl status etcd 狀態正常
6. 查看flannel狀態
在kubernetes-dashboard上看到flannel掛掉了,查看日志如下
Failed create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod "kube-flannel-ds-amd64-sc7sr": Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:301: running exec setns process for init caused \"signal: broken pipe\"": unknown
而這個問題,通過分析應該是flannel在網絡比較大的情況下,內存資源不足了,所以修改flannel的配置,將內存擴大即可。
"resources": {
"limits": {
"cpu": "300m",
"memory": "200Mi"
},
"requests": {
"cpu": "300m",
"memory": "200Mi"
}
},
修改完成之后,需要重啟docker,在刪除原來的flannel pod,這樣問題就解決拉
原文鏈接:https://blog.csdn.net/Viogs/article/details/96114776
