Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

問題1:Kubernetes叢集服務訪問失敗?

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

原因分析:證書不能被識別,其原因為:自定義證書,過期等。

解決方法:更新證書即可。

問題2:Kubernetes叢集服務訪問失敗?

curl: (7) Failed connect to 10。103。22。158:3000; Connection refused

原因分析:埠對映錯誤,服務正常工作,但不能提供服務。

解決方法:刪除SVC,重新對映埠即可。

kubectl delete svc nginx-deployment

問題3:Kubernetes叢集服務暴露失敗?

Error from server (AlreadyExists): services “nginx-deployment” already exists

原因分析:該容器已暴露服務了。

解決方法:刪除SVC,重新對映埠即可。

問題4:外網無法訪問Kubernetes叢集提供的服務?

原因分析:Kubernetes叢集的type為ClusterIP,未將服務暴露至外網。

解決方法:修改Kubernetes叢集的type為NodePort即可,於是可透過所有Kubernetes叢集節點訪問服務。

kubectl edit svc nginx-deployment

問題5:Pod狀態為ErrImagePull?

readiness-httpget-pod 0/1 ErrImagePull 0 10s

Kubernetes 日常故障處理集錦

原因分析:image無法拉取。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

解決方法:更換映象即可。

問題6:建立init C容器後,其狀態不正常?

NAME READY STATUS RESTARTS AGE

myapp-pod 0/1 Init:0/2 0 20s

原因分析:檢視日誌發現,Pod一直出於初始化中;然後檢視Pod詳細資訊,定位Pod建立失敗的原因為:初始化容器未執行完畢。

Error from server (BadRequest): container “myapp-container” in pod “myapp-pod” is waiting to start: PodInitializing

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

waiting

for

myservice

Server: 10。96。0。10

Address: 10。96。0。10:53

** server can

‘t find myservice。default。svc。cluster。local: NXDOMAIN

*** Can’

t find myservice。svc。cluster。local: No answer

*** Can

‘t find myservice。cluster。local: No answer

*** Can’

t find myservice。default。svc。cluster。local: No answer

*** Can

‘t find myservice。svc。cluster。local: No answer

*** Can’

t find myservice。cluster。local: No answer

解決方法:建立相關Service,將SVC的name寫入Kubernetes叢集的CoreDNS伺服器中,於是CoreDNS就能對Pod的init C容器執行過程中的域名解析了。

kubectl apply -f myservice。yaml

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

NAME READY STATUS RESTARTS AGE

myapp-pod 0/1 Init:1/2 0 27m

myapp-pod 0/1 PodInitializing 0 28m

myapp-pod 1/1 Running 0 28m

Kubernetes 日常故障處理集錦

問題7:探測存活Pod狀態為CrashLoopBackOff?

原因分析:映象問題,導致容器重啟失敗。

解決方法:更換映象即可。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

問題8:Pod建立失敗?

readiness-httpget-pod 0/1 Pending 0 0s

readiness-httpget-pod 0/1 Pending 0 0s

readiness-httpget-pod 0/1 ContainerCreating 0 0s

readiness-httpget-pod 0/1 Error 0 2s

readiness-httpget-pod 0/1 Error 1 3s

readiness-httpget-pod 0/1 CrashLoopBackOff 1 4s

readiness-httpget-pod 0/1 Error 2 15s

readiness-httpget-pod 0/1 CrashLoopBackOff 2 26s

readiness-httpget-pod 0/1 Error 3 37s

readiness-httpget-pod 0/1 CrashLoopBackOff 3 52s

readiness-httpget-pod 0/1 Error 4 82s

原因分析:映象問題導致容器無法啟動。

Kubernetes 日常故障處理集錦

解決方法:更換映象。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

問題9:Pod的ready狀態未進入?

readiness-httpget-pod 0/1 Running 0 116s

原因分析:Pod的執行命令失敗,無法獲取資源。

Kubernetes 日常故障處理集錦

解決方法:進入容器內部,建立yaml定義的資源。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

問題10:Pod建立失敗?

Kubernetes 日常故障處理集錦

原因分析:yml檔案內容出錯—-使用中文字元。

解決方法:修改myregistrykey內容即可。

Kubernetes 日常故障處理集錦

11、kube-flannel-ds-amd64-ndsf7外掛Pod的status為Init:0/1?

Kubernetes 日常故障處理集錦

排查思路:kubectl -n kube-system describe pod kube-flannel-ds-amd64-ndsf7 #查詢Pod描述資訊。

Kubernetes 日常故障處理集錦

原因分析:k8s-slave1節點拉取映象失敗。

解決方法:登入k8s-slave1,重啟Docker服務,手動拉取映象。

Kubernetes 日常故障處理集錦

k8s-master節點,重新安裝外掛即可。

kubectl create -f kube-flannel。yml;kubectl get nodes

Kubernetes 日常故障處理集錦

12、Kubernetes建立服務status為ErrImagePull?

Kubernetes 日常故障處理集錦

排查思路:

kubectl describe pod test-nginx

Kubernetes 日常故障處理集錦

原因分析:拉取映象名稱問題。

解決方法:刪除錯誤Pod;重新拉取映象。

kubectl delete pod test-nginx;kubectl run test-nginx ——image=10。0。0。81:5000/nginx:alpine

13、不能進入指定容器內部?

Kubernetes 日常故障處理集錦

原因分析:yml檔案comtainers欄位重複,導致該Pod沒有該容器。

解決方法:去掉yml檔案中多餘的containers欄位,重新生成Pod。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

14、建立PV失敗?

Kubernetes 日常故障處理集錦

原因分析:PV的name欄位重複。

解決方法:修改PV的name欄位即可。

Kubernetes 日常故障處理集錦

15、Pod無法掛載PVC?

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

原因分析:Pod無法掛載PVC。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

AccessModes與可使用的PV不一致,導致無法掛載PVC,由於只能掛載大於1G且AccessModes為RWO的PV,故只能成功建立1個Pod,第2個Pod一致pending,按序建立時則第3個Pod一直未被建立。

解決方法:修改yml檔案中AccessModes或PV的AccessModes即可。

Kubernetes 日常故障處理集錦

16、問題:Pod使用PV後,無法訪問其內容?

Kubernetes 日常故障處理集錦

原因分析:NFS卷中沒有檔案或許可權不對。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

解決方法:在NFS卷中建立檔案並授予許可權。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

17、檢視節點狀態失敗?

Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)

原因分析:沒有Heapster服務。

解決方法:安裝Prometheus監控元件即可。

Kubernetes 日常故障處理集錦

Kubernetes 日常故障處理集錦

18、Pod一直處於pending狀態?

Kubernetes 日常故障處理集錦

原因分析:由於已使用同樣映象釋出了Pod,導致無節點可排程。

Kubernetes 日常故障處理集錦

解決方法:刪除所有Pod後部署Pod即可。

Kubernetes 日常故障處理集錦

19、Helm安裝元件失敗?

[root@k8s-master01 hello-world]

# helm install

Error: This

command

needs 1 argument: chart nam

[root@k8s-master01 hello-world]

# helm install 。/

Error: no Chart。yaml exists

in

directory

“/root/hello-world”

原因分析:檔名格式不對。

解決方法:mv chart。yaml Chart。yaml

Kubernetes 日常故障處理集錦

原文連結:https://www。cnblogs。com/chalon/p/14415252。html