Docker修復踩坑紀實及常用操作命令

日前,自己運維的一個機器學習平臺出現了登入不上的情況,因其架構基於Docker設計,為排查問題,經歷了慘痛的踩坑過程,紀實如下:

kubectl get node

檢視節點狀態,結果為Ready/NotReady

kubectl get pod -n xxx

檢視指定pod的狀態,結果為Running、Error、CrashLoopBackOff、PodInitializing等狀態,對於Error和Crash等狀態的pod要進行處理

kubectl get nodes 列出所有執行的pod資訊

kubectl get ns 列出所有的名稱空間

kubectl get pods -o wide 列出pod以及執行的pod節點資訊

kubectl get node -n rook-ceph

檢視rook-ceph的狀態,rook使用kubernetes原語使ceph儲存系統能夠在kubernetes上執行。

ceph -s

檢視ceph叢集的狀態,正常時為HEATH_OK,ceph有時會出現掛載不上的情況,需要重新mount

systemctl status docker

檢視docker狀態,結果有Running、Activating(start)等

systemctl restart docker

重啟Docker

systemctl start docker

啟動Docker

systemctl stop docker

停止Docker

systemctl status kube-apiserver

檢視

Kubernetes API server 的狀態

activating(start)

在上面restart docker的時候,會出現卡死的情況,status一直處在activating狀態,嘗試了N多辦法,都無法實現start,最終採用了萬能大法:重啟系統

reboot

重啟系統:慎用

重啟之後,docker自動啟動,狀態顯示為Running,但是kubectl get pod -n xxx中有部分pod的狀態是Error,需要重啟相關Pod

kubectl delete pod -n xxx xxx_fullname

檢視pod的啟動資訊

kubectl describe pod -n xxx xxx_fullname

我是會說科技,關注我,一起聊聊IT、科技、資料、安全、金融那些事。