問題1: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
原因分析:image無法拉取。
解決方法:更換映象即可。
問題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
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
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
問題7:探測存活Pod狀態為CrashLoopBackOff?
原因分析:映象問題,導致容器重啟失敗。
解決方法:更換映象即可。
問題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
原因分析:映象問題導致容器無法啟動。
解決方法:更換映象。
問題9:Pod的ready狀態未進入?
readiness-httpget-pod 0/1 Running 0 116s
原因分析:Pod的執行命令失敗,無法獲取資源。
解決方法:進入容器內部,建立yaml定義的資源。
問題10:Pod建立失敗?
原因分析:yml檔案內容出錯—-使用中文字元。
解決方法:修改myregistrykey內容即可。
11、kube-flannel-ds-amd64-ndsf7外掛Pod的status為Init:0/1?
排查思路:kubectl -n kube-system describe pod kube-flannel-ds-amd64-ndsf7 #查詢Pod描述資訊。
原因分析:k8s-slave1節點拉取映象失敗。
解決方法:登入k8s-slave1,重啟Docker服務,手動拉取映象。
k8s-master節點,重新安裝外掛即可。
kubectl create -f kube-flannel。yml;kubectl get nodes
12、Kubernetes建立服務status為ErrImagePull?
排查思路:
kubectl describe pod test-nginx
原因分析:拉取映象名稱問題。
解決方法:刪除錯誤Pod;重新拉取映象。
kubectl delete pod test-nginx;kubectl run test-nginx ——image=10。0。0。81:5000/nginx:alpine
13、不能進入指定容器內部?
原因分析:yml檔案comtainers欄位重複,導致該Pod沒有該容器。
解決方法:去掉yml檔案中多餘的containers欄位,重新生成Pod。
14、建立PV失敗?
原因分析:PV的name欄位重複。
解決方法:修改PV的name欄位即可。
15、Pod無法掛載PVC?
原因分析:Pod無法掛載PVC。
AccessModes與可使用的PV不一致,導致無法掛載PVC,由於只能掛載大於1G且AccessModes為RWO的PV,故只能成功建立1個Pod,第2個Pod一致pending,按序建立時則第3個Pod一直未被建立。
解決方法:修改yml檔案中AccessModes或PV的AccessModes即可。
16、問題:Pod使用PV後,無法訪問其內容?
原因分析:NFS卷中沒有檔案或許可權不對。
解決方法:在NFS卷中建立檔案並授予許可權。
17、檢視節點狀態失敗?
Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)
原因分析:沒有Heapster服務。
解決方法:安裝Prometheus監控元件即可。
18、Pod一直處於pending狀態?
原因分析:由於已使用同樣映象釋出了Pod,導致無節點可排程。
解決方法:刪除所有Pod後部署Pod即可。
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
原文連結:https://www。cnblogs。com/chalon/p/14415252。html