一、 pod的報錯:
1. pod的容器無法啟動報錯:
報錯信息:
Normal SandboxChanged 4m9s (x12 over 5m18s) kubelet, k8sn1 Pod sandbox changed, it will be killed and re-created. Warning FailedCreatePodSandBox 18s (x47 over 5m19s) kubelet, k8sn1 Failed create pod sandbox: rpc error: code = Unknown desc
= failed to start sandbox container for pod "default-http-backend-6cf4f686c4-nbxjv":
Error response from daemon: OCI runtime create failed: container_linux.go:344:
starting container process caused "process_linux.go:297:
getting the final child's pid from pipe caused \"
這種情況一般是屬於:pod的運行資源給的不夠,造成內存溢出
需要修改資源配給:可以適當增大資源配給
resources: limits: cpu: 100m memory: 100Mi requests: cpu: 100m memory: 100Mi
二、 節點異常出現 沒有pod 狀態為 Evicted
使用
kubectl get pods
發現很多pod的狀態為evicted。
原因:
eviction,即驅趕的意思,意思是當節點出現異常時,kubernetes將有相應的機制驅趕該節點上的Pod。
多見於資源不足時導致的驅趕。
更多詳情參考
kubernetes的eviction機制
解決:
排查資源和異常原因,防止新的驅趕產生。
使用如下命令刪除舊驅趕的遺留
kubectl get pods | grep Evicted | awk '{print $1}' | xargs kubectl delete pod