《關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事》 Day 13 Kubernetes - Cheatsheet 篇
本篇大綱
這邊筆者自己整理幾個比較常用到的 kubectl
命令,其實就是 Cheatsheet,Debug 的時候可以使用,但是官方版本內容真的有點多,這裡準備幾個大家比較常用的命令,這些命令可以自由變化搭配。
內文
列出所有 Pod 資訊
1 |
|
列出 Pod 的 Describe
發現你的 Pod 一直卡在 Pending,就代表裡面有些條件不符合,所以 K8s 無法分配工作。
可能像是:
- PVC 還正在 Pending
- Request 資源已經超出每個 Node 上限
- Pod 數量過多(節點建議上限為 110 個 Pod)
1 |
|
列出 Pod 裡面的 log 資訊(發生 Crashloopbackoff
可以使用)
發現你的 Pod 一直在 Crash,或者跳 HTTP 500,那就代表該 Application 有設定錯誤,要自行看 Log 解決。
1 |
|
自行進入 Pod
裡面如果有些資訊想要查看,可以透過 exec 進入該 Pod,不過這裡有幾個前提:
- Pod 需要在 Running 的時候才能做
- 後面所執行的程式必須存在,否則無法進入。
第二點雖然大部分 image 都會有 /bin/bash
,如果沒有的話可以試試 /bin/sh
,有些 image 會拔超乾淨到連 shell 都沒有,只能透過邪門歪道存取了,但這就不在這次討論範圍內啦!
1 |
|
建立臨時 Pod
有時候我們無法直接確認 K8s 內部 Service 有沒有設定好,我們可以建立臨時 Pod,安裝需要的工具來檢測是否服務正常。
1 |
|
節點資訊
1 |
|
這邊附上 Debug 流程給各位參考:
雖然這上面圖資訊很多,但簡單來說:
- Pending:看 describe
- Crashloopbackoff:看 logs
- 沒有錯誤的一直 Restart:liveness 設定有問題
- 沒有 Ready:readiness 設定有問題
這裡再附上 K8s 官方自己的 Cheatsheet,因為我覺得內容有點多就自己再整理一篇實務上比較常用的命令。
https://kubernetes.io/docs/reference/kubectl/cheatsheet/
本系列內容也會同步貼到我的 iT 邦幫忙 https://ithelp.ithome.com.tw/users/20112934 歡迎來點一下追蹤,那我們就下一篇文章見啦!
Source
《關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事》 Day 13 Kubernetes - Cheatsheet 篇
https://blog.yangjerry.tw/it2022-day13/