Risolvere i problemi relativi al CNI gestito

Questa pagina spiega i problemi comuni relativi al CNI gestito con Cloud Service Mesh e come risolverli. Se hai bisogno di ulteriore assistenza, consulta Richiedi assistenza.

Configurazione non supportata del CNI gestito abilitato

Cloud Service Mesh gestito con l'implementazione del control plane TRAFFIC_DIRECTOR richiede il CNI gestito e non ne supporta la disattivazione. Potresti visualizzare il codice CNI_CONFIG_UNSUPPORTED nel messaggio di stato della funzionalità se l'etichetta mesh.cloud.google.com/managed-cni-enabled esiste, ma non ha il valore true nella risorsa personalizzata (CR) della revisione del control plane (CPR) o se la voce CNI nel configmap asm-options esiste, ma non ha il valore on.

Per risolvere questo messaggio di errore, devi rimuovere tutti i tentativi di disattivare il CNI gestito.

  • Caso 1: rimuovi l'etichetta CNI gestito abilitato nella CR CPR nel cluster.

    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
    
  • Caso 2: rimuovi la stringa di dati del configmap asm-options della voce CNI 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
    

Pod CNI non pianificabile

Potresti visualizzare questo errore se il DaemonSet CNI gestito non riesce a pianificare i pod in uno dei nodi del cluster.

Tieni presente che le risorse in-cluster richiedono almeno memory: 100Mi su ogni nodo. Per ulteriori informazioni, consulta Requisiti di Cloud Service Mesh. Se il cluster ha già allocato memoria sufficiente, consulta Pod non pianificabile per ulteriori passaggi di risoluzione dei problemi.

Nodi bloccati nello stato NotReady con errore containerID mancante

Potresti visualizzare questo errore quando i nodi del cluster non riescono a diventare pronti dopo l'upgrade della versione di Google Kubernetes Engine (GKE).

Messaggio di errore:

container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: missing containerID

Causa:

Questo problema deriva da un'incompatibilità tra la versione 1.20.x di Container Network Interface (CNI) di Cloud Service Mesh e i plug-in Container Network Interface (CNI) in GKE. I plug-in CNI richiedono la compatibilità con la specifica CNI 1.1.0. I cluster che eseguono la versione GKE 1.35.1-gke.1516000 o successive attivano automaticamente il supporto per questa specifica. Poiché la versione 1.20.x di CNI di Cloud Service Mesh non supporta la versione 1.1.0 della specifica CNI, i controlli di integrità dei nodi non vanno a buon fine e i nodi rimangono nello stato NotReady.

Soluzione temporanea:

Se il cluster esegue ancora la versione 1.20.x di CNI di Cloud Service Mesh, non eseguire l'upgrade dei pool di nodi GKE a 1.35.1-gke.1516000 o versioni successive.

Se hai già eseguito l'upgrade e riscontri questo problema, la soluzione temporanea consigliata è eseguire il downgrade della versione di GKE a una versione precedente a 1.35.1-gke.1516000 finché non viene eseguito l'upgrade del CNI gestito del cluster alla versione 1.23.x o successive.