Kubernetes CKA課程筆記 45
在K8s的系統架構下,當客戶端回報系統有狀況時
就要著手處理解決系統狀況
其原因可能是如下:
- 應用程式Pod沒有運作?
- Service元件設定錯誤?
- Service元件沒有將請求轉拋給處理的Pod?
- 或是Service元件根本沒運作?
- 又或是有網路問題?
等各種不同狀況!
基本上需要逐步的確認問題點
接下來幾篇會介紹不同的狀況如何發現問題
重要的是學到Kubernetes Troubleshooting的重要概念:
- Command
- Args
- Format kubectl Output
Troubleshooting Application:
- 確認Pod運作中:執行
kubectl get pod POD_NAME
- 是否Pod有註冊service元件?並且service會將請求前拋給Pod?(需要確認EndPoint):執行
kubectl get eq
或是執行kubectl describe svc SERVICE_NAME
- 是否Service元件是能進入的?可以透過其他工具來確認如執行:
nc SERVICE_IP SERVICE_PORT
或是執行ping SERVICE_NAME
(但是這些需要從另一個Pod來發動確認!!) - 確認應用程式的log透過執行:
kubectl logs POD_NAME
- 在某些情況Pod內的容器或說應用程式根本啟動不了,所以完全沒有log可以查看,所以要從Pod狀態或是近期的Pod相關事件去判斷為何無法啟動,執行:
kubectl describe pod POD_NAME