Pourquoi le message d'erreur « MetadataServiceNotEnabled » s'affiche-t-il lorsque je consulte File Storage for VPC?

Cloud privé virtuel

Si votre pod ou votre PVC génère une erreur « MetadataServiceNotEnabled » (Problème de connexion) lors de l'utilisation du chiffrement en transit (EIT) avec File Storage for VPC, consultez cette rubrique pour identifier et résoudre le problème.

Lorsque vous utilisez le chiffrement en transit (EIT) avec File Storage for VPC, votre pod ou votre PVC génère une erreur « MetadataServiceNotEnabled ».

Vous voyez s'afficher un message d'erreur similaire à l'exemple suivant dans les événements de votre pod ou dans la sortie de la commande describe:

Code: MetadataServiceNotEnabled,
Description: Failed to mount target.,
Action: Metadata service might not be enabled for worker node.
  Make sure to use IKS>=1.30 or ROKS>=4.16 cluster.

Cette erreur signifie que le processus de montage EIT a tenté d'accéder au service de métadonnées de l'instance à l'adresse 169.254.169.254, mais n'a reçu aucune réponse. Il existe deux causes profondes distinctes : vérifiez-les toutes les deux.

Résolution du problème

Vérifiez les causes profondes suivantes.

Cause première A — La version du cluster est trop ancienne

EIT nécessite la version 4.16 ou une version ultérieure de ROKS. Sur les clusters plus anciens, le point de terminaison du service de métadonnées n'est pas accessible aux charges de travail.

Vérifiez la version actuelle de votre cluster afin de vous assurer qu'il répond aux exigences minimales. La sortie affiche l'état « Pending » ou « normal » ainsi que la version « Kubernetes ».

ibmcloud ks cluster get --cluster CLUSTER_ID | grep "Version"

Solution : Mettez à niveau le cluster vers la version 4.16 ou une version ultérieure de ROKS.

Cause première B — La règle de métadonnées sortantes est absente du cluster « Secure by Default »

Pour les clusters « Secure by Default », le trafic sortant vers 169.254.169.254 est bloqué, sauf si une règle de sortie explicite est ajoutée au groupe de sécurité « kube-<clusterID> ». Sans cette règle, le processus EIT ne peut pas accéder au service de métadonnées, même sur une version de cluster prise en charge.

Cette règle est ajoutée automatiquement pour les clusters ROKS à partir de la version 4.18. Pour les versions plus anciennes du cluster, ajoutez la règle manuellement.

  1. Vérifiez si la règle de sortie existe déjà. Si la commande renvoie une ligne contenant « 169.254.169.254 », cela signifie que la règle existe et que ce n'est pas la cause du problème.

    ibmcloud is sg kube-CLUSTER_ID | grep 169.254.169.254
    
  2. Si la règle n'existe pas, ajoutez-la.

    ibmcloud is sg-rulec kube-CLUSTER_ID outbound \
      --protocol all \
      --remote 169.254.169.254
    

    Vous pouvez également ajouter la règle depuis l'interface utilisateur d' IBM Cloud, sous « VPC Infrastructure » > « Security groups » > « kube-<clusterID> » > « Outbound rules », en indiquant les valeurs suivantes :

    Valeurs des règles de sortie pour l'accès au service de métadonnées
    Zone Valeur
    Protocole Tout
    Type source Tout
    Source 0.0.0.0/0
    Destination 169.254.169.254
  3. Une fois la règle ajoutée, relancez le pod qui a échoué. Aucun redémarrage du nœud n'est nécessaire.

Si le problème persiste après ces deux vérifications, ouvrez un ticket d'assistance auprès de l'équipe Container Storage d' IBM Cloud.