kubernetes(八)问题排查
1.Master
master上的組件是運行k8s的不可缺少的一部分,共同管理k8s集群
1)如果apiserver出問題? ??
? apiserver是K8s集群最重要的組件,提供了k8s各類資源對象(pod,RC,Service等)的增刪改查及watch等HTTP Rest接口,是? ? ? 整個系統的數據總線和數據中心。所有的命令都需要和apiserver進行交互,是k8s的"大腦",api-server不可用會導致整個K8s集? ? ? 群不可用
2)如果etcd出問題??
??etcd是一個高可用的分布式鍵值(key-value)數據庫,主要用于共享配置和服務發現
??(服務發現:在一個分布式集群中的服務如何才能找到對方并與其建立連接)
??apiserver和etcd無法通信,會導致無法找到對應的node,那么kubelet也就無法更新所在node上的狀態 ?
?3)如果scheduler或者controller manager出現問題?
? scheduler負責調度 : 為每一個Pod從Node列表中選擇一個合適的Node
? controller manager : 負責集群內的Node,Pod副本,namespace等的管理,當某個Node意外宕機,CM會及時發現此故障并執? ? 行自動化修復流程,確保集群始終處于預期的工作狀態
?二者出現問題會導致deployment,pod,service等資源無法正常分配到Node,無法正常運行
解決方案:出現問題時,自動重啟或者搭建高可用的master集群
2.Worker?
worker節點掛掉或者上面的kubelet服務出現問題時,worker上的pod則無法正常運行
3.Addons
dns和網絡插件比如calico發生問題時,集群內的網絡無法正常通信,并且無法根據服務名稱進行解析
4.系統問題排查?
#查看Node的狀態 kubectl get nodes kubectl describe node-name#查看集群master和worker組件的日志 journalctl -u apiserver journalctl -u scheduler journalctl -u kubelet journalctl -u kube-proxy ...5.Pod的問題排查?
K8s中最小的操作單元是Pod,最重要的操作也是Pod,其他資源的排查可以參照Pod問題的排查
?
Pod可能會出現哪些問題及解決方案
1.處于Pending狀態 ? ?說明Pod還沒有被調度到某個node上,可以describe一下詳情。可能因為資源不足,端口被占用等。
2.處于Waiting/ContainerCreating狀態 ? ?可能因為鏡像拉取失敗,或者是網絡插件的問題,比如calico,或者是容器本身的問題,可以檢查一下容器的yaml文 件內容和Dockerfile的書寫? ?
3.處于ImagePullBackOff狀態 ? ?鏡像拉取失敗,可能是鏡像不存在,或者沒有權限拉取。 ? ?
4.處于CrashLoopBackOff狀態 ? ?Pod之前啟動成功過,但是又失敗了,不斷在重啟。? ?
5.處于Error狀態 ? ?有些內容不存在,比如ConfigMap,PV,需要創建一下,或者沒有權限。? ?
6.處于Terminating狀態 ? ?說明Pod正在停止? ?
7.處于Unknown狀態 ? ?說明K8s已經失去對Pod的管理監
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的kubernetes(八)问题排查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kubernetes(三)k8s中通信和
- 下一篇: kubernetes(七)项目部署方式: