Kubernetes 常見故障排查和處理_第1頁
Kubernetes 常見故障排查和處理_第2頁
Kubernetes 常見故障排查和處理_第3頁
Kubernetes 常見故障排查和處理_第4頁
Kubernetes 常見故障排查和處理_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

排查命令和方式1、kubectlgetpods2、kubectldescribepodsmy-pod3、kubectllogsmy-pod4、kubectlexecmy-pod-it/bin/bash后進入容器排查5、查看宿主機日志文件/var/log/pods/*/var/log/containers/*1pod故障排查處理1、查看方式:主要通過以下命令檢查kubectlgetpods-nnamespace在上圖status列,我們可以看到pod容器的狀態(tài)2、查看STATUS狀態(tài)以下是statuslist:Running,Succeeded,Waiting,ContainerCreating,F(xiàn)ailed,Pending,Terminating,unknown,CrashLoopBackOff,ErrImagePull,ImagePullBackOffstatus定義說明:如出現(xiàn)異常狀態(tài),可查看pod日志內容kubectldescribepod容器名-nnamespace查看State狀態(tài)3、查看Conditions狀態(tài)True表示成功,F(xiàn)alse表示失敗Initializedpod容器初始化完畢Readypod可正常提供服務ContainersReady容器可正常提供服務PodScheduledpod正在調度中,有合適的節(jié)點就會綁定,并更新到etcdUnschedulablepod不能調度,沒有找到合適的節(jié)點如有False狀態(tài)顯示查看Events信息Reason顯示Unhealthy異常,仔細查看后面的報錯信息,有針對性修復4、Events報錯信息整理如下:(1)Failedtopullimage"xxx":Error:imagexxxnotfound原因:提示拉取鏡像失敗,找不到鏡像解決方式:找到可以訪問的鏡像地址以及正確的tag,并修改鏡像倉庫未login,需要loginK8s沒有pull鏡像的權限,需要開通權限再pull(2)WarningFailedSyncErrorsyncingpod,skipping:failedtowithRunContainerError:"GenerateRun

ContainerOptions:XXXnotfound"原因:此podXXX的name在namespace下找不到,解決方式:需要重啟pod解決,kubectlreplace--force-fpod.yaml(3)WarningFailedSyncErrorsyncingpod,skipping:failedto"StartContainer"for"XXX"withRunContainerError:"GenerateRunContainerOptions:configmaps\"XXX\"notfound"原因:Namespace下找不到XXX命名的ConfigMap,解決方式:重新新建ConfigMapkubectlcreate-fconfigmap.yaml(4)WarningFailedMountMountVolume.SetUpfailedforvolume"kubernetes.io/secret/"(spec.Name:"XXXsecret")podwith:secrets"XXXsecret"notfound原因:缺失Secret解決方式:需要新建Secretkubectlcreatesecretdocker-registrysecret名--docker-server=倉庫url--docker-username=xxx--docker-password=xxx-nnamespace以下內容,如修改yaml文件后,執(zhí)行kubectlapply-fpod.yaml重啟pod才生效(5)NormalKillingKillingcontainerwithdockeridXXX:pod"XXX"container"XXX"isunhealthy,itwillbekilledandre-created.容器的活躍度探測失敗,Kubernetes正在kill問題容器原因:探測不正確,health檢查的URL不正確,或者應用未響應解決方式:修改yaml文件內health檢查的periodSeconds等數(shù)值,調大(6)WarningFailedCreateErrorcreating:pods"XXXX"isforbidden:[maximummemoryusageperPodisXXX,butrequestisXXX,maximummemoryusageperContainerisXXX,butrequestisXXX.]原因:K8s內存限制配額小于pod使用的大小,導致報錯解決方式:調大k8s內存配額,或者減小pod的內存大小解決(7)pod(XXX)failedtofitinanynodefitfailureonnode(XXX):Insufficientcpu原因:node沒有足夠的CPU供調用,解決方式:需要減少pod內cpu的使用數(shù)量,yaml內修改(8)FailedMountUnabletomountvolumesforpod"XXX":timeoutexpiredwaitingforvolumestoattach/mountforpod"XXX"/"fail".listofunattached/unmountedvolumes=XXXFailedSyncErrorsyncingpod,skipping:timeoutexpiredwaitingforvolumestoattach/mountforpod"XXX"/"fail".listofunattached/unmountedvolumes=XXX原因:podXXX掛載卷失敗解決方式:需要查看下是否建了卷,volumemountPath目錄是否正確用yaml文件建volume并mount(9)FailedMountFailedtoattachvolume"XXX"onnode"XXX"with:GCEpersistentdisknotfound:diskName="XXXdisk"zone=""解決方式:檢查persistentdisk是否正確創(chuàng)建Yaml文件創(chuàng)建persistent方式如下(10)error:errorvalidating"XXX.yaml":errorvalidatingdata:foundinvalidfieldresourcesforPodSpec;ifyouchoosetoignoretheseerrors,turnvalidationoffwith--validate=false原因:yaml文件錯誤,一般是多了或者少了空格導致。解決方式:需要校驗yaml是否正確可使用kubeval工具校驗yaml(11)容器鏡像不更新解決方式:deployment中指定強制更新策略ImagePullPolicy:Always(12)(combinedfromsimilarevents):Readinessprobefailed:calico/nodeisnotready:BIRDisnotready:BGPnotestablishedwith:Numberofnode(s)withBGPpeeringestablished=0原因:指定node節(jié)點calico網(wǎng)絡不通,解決方式:檢查calico相關鏡像是否pull成功,calico-node容器是否正常啟動。如鏡像和容器正常,需要reset重置該節(jié)點k8s,重新加入集群kubeadmresetkubeadmjoinip:6443--tokenXXXXX.XXXXXXXXX--discovery-token-ca-cert-hashsha256:XXXXXXXXXXXXXXXXXXX(13)RunPodSandboxfromruntimeservicefailed:rpcerror:code=Unknowndesc=failedpullingimage"gcr.io/google_containers/pause-amd64:":Gethttps://gcr.io/v1/_ping:dialtcp:443:i/otimeout原因:gcr.io被GFW墻了解決方式:找阿里或googlecontainer其他可用的鏡像Dockertag到gcr.io/google_containers/pause-amd64(14)WarningFailedCreatePodSandBox3m(x13over3m)kubelet,Failedcreatepodsandbox執(zhí)行journalctl-xe|grepcni發(fā)現(xiàn)failedtofindplugin“l(fā)oopback”inpath[/opt/loopback/bin/usr/local/bin]解決方式:需要在/usr/local/bin內復制loopback以下是node節(jié)點問題排查2node節(jié)點故障排查處理kubectlgetnode-nnamespace查看Node節(jié)點狀態(tài),STATUSReady表示正常,NotReady不正常注意version必須保持一致如有NotReady問題,需要重啟節(jié)點kubectl,或者重啟docker如不能解決,需要reset節(jié)點后,k8s重新join該node查看node日志執(zhí)行kubectldescribenodenode名-nnamespace如有“nodeip”notfound檢查nodeip是否能ping通,nodeip或者vip宕機引起以下是整理的node報錯信息及處理:報錯信息整理如下:1、Theconnectiontotheserverlocalhost:8080wasrefused-didyou

specifytherighthostorport?執(zhí)行kubectlgetXXX報錯kubectlgetnodes原因:node缺少admin.conf解決方式:復制master上的admin.conf到nodeNode節(jié)點執(zhí)行echo"exportKUBECONFIG=/etc/kubernetes/admin.conf">>~/.bash_profile2、kubernetesnodePort不可訪問原因:一般是iptables或selinux引起解決方式:關閉,清空setenforce0iptables--flushiptables-tnat--flushservicedockerrestartiptables-PFORWARDACCEPT重啟docker3、Failedtostartinotify_add_watch/sys/fs/cgroup/blkio:nospaceleftondevice或Failedtostartinotify_add_watch/sys/fs/cgroup/cpu,cpuacct:nospaceleftondevice原因:空間或系統(tǒng)參數(shù)原因解決方式:查看磁盤空間有無100%執(zhí)行cat/proc/sys/fs/inotify/max_user_watches/調大數(shù)值sysctlfs.inotify.max_user_watches=10485764、Failedtostartreboot.target:Connectiontimedout未知原因:重啟報超時解決方式:執(zhí)行systemctl--force--forcereboot5、SystemOOMencountered原因:使用內存超限后,容器可能會被Kubernetes進行OOMKilled解決方式:需要調整內存,合理分配6、Unabletoregisternode""withAPIserver:Posthttps://localhost:6443/api/v1/nodes:dialtcp:6443:getsockopt:connectionrefused原因:node無法連接或拒絕連接master解決方式:Node節(jié)點重啟kubelet,如未恢復,需要查看node服務器上cpu內存,硬盤等資源情況7、pod狀態(tài)一直TerminatingContainerGCFailedrpcerror:code=DeadlineExceededdesc=context

deadlineexceeded原因:可能是17版本dockerd的BUG解決方式:systemctldaemon-reexecsystemctlrestartdocker如不能恢復需要升級docker到18版本8、Containerruntimeisdown,PLEGisnothealthy:plegwaslastseen

active10mago;thresholdis3m0s原因:PodLifecycleEventGeneratorPod生命周期事件生成器超時響應RPC調用過程中容器運行時響應超時或者節(jié)點上的Pod數(shù)量太多,導致relist無法在3分鐘內完成解決方式:systemctldaemon-reloadsystemctldaemon-reexecsystemctlrestartdocker重啟Node節(jié)點服務器如果以上都不能解決升級docker版本到最新如果還不能解決升級kubernetes到1.16以上版本9、Novalidprivatekeyand/orcertificatefound,reusingexisting

privatekeyorcreatinganewone原因:node節(jié)點kubelet啟動后,會向master申請csr證書,找不到證書解決方式:需要在master上同意證書申請10、failedtorunKubelet:Runningwithswaponisnotsupported,please

disableswap!orset--fail-swap-onflagtofalse./proc/swapscontaine原因:啟用了swap解決方式:卸載swap分區(qū)后,重啟kubeletsystemctlrestartkubelet11、Thenodewaslowonresource:[DiskPressure]登錄node節(jié)點查看,磁盤空間狀況原因:node的kubelet負責頂起采集資源占用數(shù)據(jù),并和預先設置的threshold值進行比較,如果超過threshold值,kubelet會殺掉一些Pod來回收相關資源解決方式:修改/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.confEnvironment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubecon-fig=/etc/kubernetes/bootstrap-kubelet.conf--kubeconfig=/etc/kubernetes/kubelet.conf"配置參數(shù)--eviction-hard=nodefs.available<5%,后續(xù)清理磁盤重啟kubelet12、Node節(jié)點狀態(tài)unknown查看進程,報-bash:fork:Cannotallocatememory錯誤查看內存是否還有free查看/proc/sys/kernel/pid_max是否過小解決方式:增加內存,或者調大/proc/sys/kernel/pid_max13、providedportisnotinthevalidrange.Therangeofvalidports

is30000-32767原因:超出nodeport端口范圍,默認nodeport需要在30000-32767范圍內解決方式:修改/etc/kubernetes/manifests/kube-apiserver.yaml修改--service-node-port-range=數(shù)字重啟apiserver14、1node(s)hadtaintsthatthepoddidn'ttolerate原因:該節(jié)點不可調度,默認master不可調度解決方式:kubectldescribenodes查看狀態(tài)kubectltaintnodesnodekey:NoSchedule-刪除node節(jié)點不可調度3master故障排查處理報錯信息整理如下:1、unabletofetchthekubeadm-configConfigMap:failedtogetconfigmap:Unauthorized原因:token已經過期了,token默認是24小時內有效果的解決方式:在master節(jié)點重新生成token,重新join節(jié)點kubeadmtokencreateopensslx509-pubkey-in/etc/kubernetes/pki/ca.crt|opensslrsa–pubin-outformder2>/dev/null|openssldgst-sha256-hex|sed's/^.*//'2、Unabletoconnecttotheserver:x509:certificatesignedbyunknown

authority(possiblybecauseof"crypto/rsa:verificationerror"while

tryingtoverifycandidateauthoritycertificate"kubernetes")原因:權限認證報錯,需要根據(jù)提示操作解決方式:參考控制臺提示mkdir-p$HOME/.kubesudocp-i/etc/kubernetes/admin.conf$HOME/.kube/configsudochown$(id-u):$(id-g)$HOME/.kube/config3、Unabletoupdatecniconfig:Nonetworksfoundin/etc/cni/netContainerruntimenetworknotready:NetworkReady=false

reason:NetworkPluginNotReadymessage原因:網(wǎng)絡CNI找不到解決方式:sysctlnet.bridge.bridge-nf-call-iptables=1安裝flannel或者calico網(wǎng)絡4、coredns一直處于Pending或者ContainerCreating狀態(tài)原因:網(wǎng)絡問題引起解決方式:安裝flannel或者calico網(wǎng)絡pluginflanneldoesnotsupportconfigversion修改/etc/cni/net.d/10-flannel.conflist查看cniVersion版本號是否一致,不一致的話,修改成一致,或者k8s當前可支持的版本5、WARNINGIsDockerSystemdCheck[WARNINGIsDockerSystemdCheck]:detected"cgroupfs"astheDockercgroupdriver.Therecommendeddriveris"systemd".Pleasefollowtheguideathttps://kubernetes.io/docs/setup/cri/原因:缺少配置driversystemd解決方式:修改或創(chuàng)建/etc/docker/daemon.json,增加:"exec-opts":["native.cgroupdriver=systemd"]重啟docker6、WARNINGFileExisting-socat[WARNINGFileExisting-socat]:socatnotfoundinsystempath原因:找不到socat解決方式:yuminstallsocat7、Permissiondeniedcannotcreate/var/log/fluentd.log:Permissiondenied原因:權限拒絕解決方式:關掉SElinux安全導致.在/etc/selinux/config中將SELINUX=enforcing設置成disabled如未解決,給與目錄寫權限8、啟動apiserver失敗,每次啟動都是報解決方式:需要配置ServiceAccountYaml創(chuàng)建9、repositorydoesnotexistormayrequire'dockerlogin':denied:requestedaccesstotheresourceisdenied原因:node節(jié)點沒有權限從harbor拉取鏡像解決方式:需要在mast

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論