排解受管理 CNI 的問題
本頁說明 Cloud Service Mesh 中常見的受管理 CNI 問題,以及解決方法。如需其他協助,請參閱取得支援。
不支援的受管理 CNI 啟用設定
採用 TRAFFIC_DIRECTOR
控制層實作的代管 Cloud Service Mesh 服務需要使用代管 CNI,且不支援停用 CNI。如果 mesh.cloud.google.com/managed-cni-enabled
標籤存在,但控制平面修訂版本 (CPR) 自訂資源 (CR) 中沒有 true
值,或是 asm-options 設定檔地圖中的 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 無法排程」一文,瞭解其他疑難排解步驟。