排解代管 CNI 問題
本頁說明 Cloud Service Mesh 的常見 CNI 管理問題,以及如何解決這些問題。如需其他協助,請參閱「取得支援」。
已啟用不支援的受管理 CNI 設定
如果使用 TRAFFIC_DIRECTOR 控制層實作代管 Cloud Service Mesh,就必須使用代管 CNI,且無法停用。如果 mesh.cloud.google.com/managed-cni-enabled 標籤存在,但控制層修訂版本 (CPR) 自訂資源 (CR) 中沒有 true 值,或是 asm-options configmap 中的 CNI 項目存在,但沒有 on 值,您可能會在功能狀態訊息中看到 CNI_CONFIG_UNSUPPORTED 程式碼。
如要解決這則錯誤訊息,請務必移除所有停用受管理 CNI 的嘗試。
情況 1:在叢集的 CPR CR 中移除「Managed CNI Enabled」標籤。
apiVersion: v1 items: - apiVersion: mesh.cloud.google.com/v1beta1 kind: ControlPlaneRevision metadata: annotations: mesh.cloud.google.com/proxy: '{"managed":"false"}' creationTimestamp: "2024-02-18T08:13:30Z" generation: 1 labels: app.kubernetes.io/created-by: mesh.googleapis.com mesh.cloud.google.com/managed-cni-enabled: false # Remove the "mesh.cloud.google.com/managed-cni-enabled" label name: asm-managed namespace: istio-system resourceVersion: "13422558" uid: 3ad755ec-78ab-4d57-8fb9-c5e1a07740d5情況 2:移除 CNI 項目 asm-options configmap
ASM_OPTS資料字串。apiVersion: v1 data: ASM_OPTS: CNI=off # Remove CNI entry in the ASM_OPTS data. multicluster_mode: connected kind: ConfigMap metadata: creationTimestamp: "2024-02-18T08:13:30Z" name: asm-options namespace: istio-system resourceVersion: "1640225" uid: 576602da-e60b-4df7-9427-5be06e5bf014
CNI Pod 無法排程
如果受管理 CNI Daemonset 無法在叢集的任何節點中排定 Pod,您可能會看到這項錯誤。
請注意,叢集內資源在每個節點上至少需要 memory: 100Mi。詳情請參閱「Cloud Service Mesh 需求條件」。如果叢集已分配足夠的記憶體,請參閱「Pod 無法排程」一文,瞭解其他疑難排解步驟。
節點停滯在 NotReady 狀態,並出現缺少 containerID 的錯誤
升級 Google Kubernetes Engine (GKE) 版本後,如果叢集節點無法進入就緒狀態,您可能會看到這項錯誤。
錯誤訊息:
container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: missing containerID
原因:
這個問題是因 Cloud Service Mesh 容器網路介面 (CNI) 1.20.x 版與 GKE 中的容器網路介面 (CNI) 外掛程式不相容所致。CNI 外掛程式必須與 CNI 1.1.0 規格相容。執行 GKE 1.35.1-gke.1516000 以上版本的叢集會自動啟用對這項規格的支援。由於 Cloud Service Mesh CNI 1.20.x 版不支援 CNI 規格 1.1.0 版,節點健康狀態檢查會失敗,節點也會維持在 NotReady 狀態。
解決方法:
如果叢集仍執行 Cloud Service Mesh CNI 1.20.x 版,請勿將 GKE 節點集區升級至 1.35.1-gke.1516000 以上版本。
如果您已升級,但仍遇到這個問題,建議您將 GKE 版本降級至 1.35.1-gke.1516000 之前的版本,直到叢集的受管理 CNI 升級至 1.23.x 以上版本為止。