# **K8s APP BUG 判斷** 當應用程式無法部署時,請按照以下步驟檢查問題: ## **查看 Pod 狀態** 點選 => **Workloads** => **Pods** Pods 可能顯示以下幾種錯誤訊息: --- ### **1. `ImagePullBackOff`** **原因**:dockerhub官方限制流量 **解決方法**: * 172.27.112.35上有所有Docker images已經pull下來了, /root/all_images底下,直接把這些image抓到三個node上docker load -I image.tar.gz * 建一個harbor registry後把那些image push到harbor上使用harbor安裝App,請參考這篇(https://hackmd.io/@hi6QVh1rRhu69whPhPeqnQ/Hy0iayIb1x) ### **2. `0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims`** **原因**:PersistentVolumeClaims (PVC) 尚未綁定成功 **解決方法**: - 點選左側選單 => **Storage** => **PersistentVolumeClaims** - 確認 PVC 狀態是否為 `Bound`。 - 參考以下的作法確認該app的主pod是否有引用到<app-name>-pvc 這裡以nextcloud為範例:nextcloud需要手動創立 `nextcloud-main-pvc` `nextcloud-data-pvc`兩個pvc 到主pod點選Edit YAML 可以看到POD有到引用`nextcloud-main-pvc` `nextcloud-data-pvc`  ### **3. `Service does not have load balancer ingress IP address`** **原因**:Service 沒有分配到load balancer的 IP 位址。 **解決方法**: - 點選左側選單 => **Services Discovery** => **Services** 如果該app的service出現 ``` service is ready:Load balancer is being provisioned ``` 請回去install apps點選Edit/Upgrade,勾選"Enable Virtual IP Sharing ### **4. `2 node(s) didn't have enough resource: nvidia.com/gpuInsufficient nvidia.com/gpu`** **原因**:GPU 資源不足。 **解決方法**: GPU 左側點選nodes=>(node name)=>往下拉可以看到該node上gpu的使用情況 範例解釋: * 假設節點顯示 Used: 4 of 10,表示該節點上共有 10 個 GPU replica,其中已使用 4 個replica。 * 剩餘可用 GPU replica 為:10 - 4 = 6。  * 若現在要部署 Blender,應用程序的 GPU 參數設置需小於 剩餘 GPU replica * 例如,剩餘 GPU 為 6 replica,總 GPU 為 10 replica,則 GPU 參數應設為 小於 0.6。 不可跨節點使用 GPU: <span style="color:red">**K8S無法將APP 跨GPU調度,因此APP的 GPU 參數必須限制在單節點的 GPU 容量內。** **<span style="color:red">參數0.1gpu=1 replica** <span style="color:red">* 節點 A 有 5 replica GPU,節點 B 有 8 replica GPU,總計 13 replica GPU。 <span style="color:red">* 錯誤做法:設置 GPU 參數為0.9 表示需求 9replica GPU ,導致跨節點資源分配的問題 <span style="color:red">* 正確做法:應將 GPU 參數限制在單節點內,例如節點 A 可設置最大 0.5,節點 B 可設置最大 0.8。 --- ### **5. `0/3 nodes are available: 1 node(s) didn’t match pod anti-affinity rules didn’t match pod anti-affinity rules`** **原因**:Pod 副本數(replica) 與可用節點數量不匹配, **解決方法**: * 把replica的數量調成跟node數量一樣 *  有些app- 例如:ragflow預設的pod就是3,個無法透過replica去做調整這時候請確認pod的數量要與node的數量一致  ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up