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 activée de CNI géré non compatible

L'implémentation de Cloud Service Mesh géré avec le 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 révision du plan de contrôle, ou si l'entrée CNI dans le 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 de l'interface CNI gérée.

  • Cas 1 : Supprimez le libellé "Managed CNI Enabled" (CNI géré activé) dans le CR 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 du 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 planifier 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à de suffisamment de mémoire allouée, consultez Pod non planifiable pour obtenir d'autres étapes de dépannage.

Nœuds bloqués à l'état "NotReady" (Non prêt) avec une erreur de containerID manquant

Cette erreur peut s'afficher lorsque les nœuds de votre cluster ne parviennent pas à devenir 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 CNI (Container Network Interface) de Cloud Service Mesh et les plug-ins CNI (Container Network Interface) 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 de GKE ou une version ultérieure activent automatiquement la compatibilité avec cette spécification. Étant donné que la version 1.20.x de Cloud Service Mesh CNI n'est pas compatible avec la spécification CNI version 1.1.0, les vérifications de l'é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 de Cloud Service Mesh CNI, ne mettez pas à niveau vos pools de nœuds GKE vers 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 de contournement recommandée consiste à rétrograder votre version 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 ultérieure.