Résoudre les problèmes liés au CNI géré

Cette page explique les problèmes courants liés au CNI géré avec Cloud Service Mesh et comment les résoudre. Si vous avez besoin d'une aide supplémentaire, consultez la page Assistance.

Configuration non compatible avec le CNI géré activé

Cloud Service Mesh géré avec l'implémentation du plan de contrôle TRAFFIC_DIRECTOR nécessite un CNI géré et ne permet pas de le désactiver. Le code CNI_CONFIG_UNSUPPORTED peut s'afficher dans le message d'état de la fonctionnalité si le libellé mesh.cloud.google.com/managed-cni-enabled existe, mais n'a pas la valeur true dans la ressource personnalisée (CR) de la révision du plan de contrôle (CPR), ou si l'entrée CNI dans la configmap asm-options existe, mais n'a pas la valeur on.

Pour résoudre ce message d'erreur, vous devez supprimer toute tentative de désactivation du CNI géré.

  • Cas 1 : Supprimez le libellé CNI géré activé dans la CR de la CPR du 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
    
  • Cas 2 : Supprimez la chaîne de données ASM_OPTS de la configmap asm-options de l'entrée CNI.

    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 programmable

Cette erreur peut s'afficher si le DaemonSet CNI géré ne peut pas programmer de pods sur l'un des nœuds du cluster.

Notez que les ressources du cluster nécessitent au moins memory: 100Mi sur chaque nœud. Pour en savoir plus, consultez les exigences de Cloud Service Mesh. Si votre cluster dispose déjà d'une mémoire suffisante, consultez la section Pod non programmable pour obtenir des étapes de dépannage supplémentaires.

Nœuds bloqués à l'état "NotReady" (non prêt) avec l'erreur "missing containerID" (ID de conteneur manquant)

Cette erreur peut s'afficher lorsque les nœuds de votre cluster ne peuvent pas être prêts après la mise à niveau de votre version de Google Kubernetes Engine (GKE).

Message d'erreur :

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

Cause:

Ce problème est dû à une incompatibilité entre la version 1.20.x de l'interface réseau de conteneur (CNI) de Cloud Service Mesh et les plug-ins d'interface réseau de conteneur (CNI) dans GKE. Les plug-ins CNI nécessitent une compatibilité avec la spécification CNI 1.1.0. Les clusters exécutant la version 1.35.1-gke.1516000 ou une version ultérieure de GKE activent automatiquement la prise en charge de cette spécification. Étant donné que la version 1.20.x du CNI de Cloud Service Mesh n'est pas compatible avec la version 1.1.0 de la spécification CNI, les vérifications d'état des nœuds échouent et les nœuds restent à l'état NotReady.

Solution :

Si votre cluster exécute toujours la version 1.20.x du CNI de Cloud Service Mesh, ne mettez pas à niveau vos pools de nœuds GKE vers la version 1.35.1-gke.1516000 ou une version ultérieure.

Si vous avez déjà effectué la mise à niveau et que vous rencontrez ce problème, la solution recommandée consiste à rétrograder votre version de GKE vers une version antérieure à 1.35.1-gke.1516000 jusqu'à ce que le CNI géré de votre cluster soit mis à niveau vers la version 1.23.x ou une version ultérieure.