Warum erhalte ich bei File Storage for VPC die Fehlermeldung „ MetadataServiceNotEnabled “?

Virtual Private Cloud

Wenn Ihr Pod oder PVC bei der Verwendung von „Encryption in Transit“ (EIT) mit „ File Storage for VPC “ den Fehler „ MetadataServiceNotEnabled “ ausgibt, nutzen Sie diesen Artikel, um die Ursache zu ermitteln und zu beheben.

Wenn Sie die Übertragungsverschlüsselung (EIT) mit „ File Storage for VPC “ verwenden, schlägt Ihr Pod oder PVC mit dem Fehler „ MetadataServiceNotEnabled “ fehl.

In Ihren Pod-Ereignissen oder in der „describe“-Ausgabe wird eine Fehlermeldung angezeigt, die dem folgenden Beispiel ähnelt:

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.

Dieser Fehler bedeutet, dass der EIT-Einbindungsprozess versucht hat, den Instanz-Metadatendienst unter 169.254.169.254 zu erreichen, jedoch keine Antwort erhalten hat. Es gibt zwei voneinander unabhängige Ursachen – überprüfen Sie beide.

Problemlösung

Überprüfen Sie die folgenden Ursachen.

Grundursache A – Die Cluster-Version ist zu alt

Für EIT ist die ROKS-Version „ 4.16 “ oder höher erforderlich. Auf älteren Clustern steht der Endpunkt des Metadatendienstes den Workloads nicht zur Verfügung.

Überprüfen Sie die aktuelle Cluster-Version, um sicherzustellen, dass Ihr Cluster die Mindestanforderungen erfüllt. In der Ausgabe werden der Status „ Pending “ oder „ normal “ sowie die Version „ Kubernetes “ angezeigt.

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

Lösung: Führen Sie ein Upgrade des Clusters auf die ROKS-Version 4.16 oder höher durch.

Grundursache B – Im „Secure by Default“-Cluster fehlt die Metadaten-Ausgangsregel

Bei „Secure by Default“-Clustern wird der ausgehende Datenverkehr zu 169.254.169.254 blockiert, es sei denn, es wird eine explizite Ausgangsregel zur Sicherheitsgruppe „ kube-<clusterID> “ hinzugefügt. Ohne diese Regel kann der EIT-Prozess den Metadatendienst selbst bei einer unterstützten Cluster-Version nicht erreichen.

Diese Regel wird für ROKS-Cluster ab Version 4.18 automatisch hinzugefügt. Bei älteren Cluster-Versionen fügen Sie die Regel manuell hinzu.

  1. Prüfen Sie, ob die Ausgangsregel bereits vorhanden ist. Wenn der Befehl eine Zeile mit dem Eintrag „ 169.254.169.254 “ zurückgibt, ist die Regel vorhanden und dies ist nicht die Ursache.

    ibmcloud is sg kube-CLUSTER_ID | grep 169.254.169.254
    
  2. Falls die Regel fehlt, fügen Sie sie hinzu.

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

    Alternativ können Sie die Regel über die Benutzeroberfläche von „ IBM Cloud “ unter „VPC-Infrastruktur“ > „Sicherheitsgruppen“ > „ kube-<clusterID> “ > „Ausgehende Regeln“ mit den folgenden Werten hinzufügen:

    Werte für ausgehende Regeln für den Zugriff auf den Metadatendienst
    Feld Wert
    Protokoll Any
    Quellentyp Any
    Quelle 0.0.0.0/0
    Ziel 169.254.169.254
  3. Versuchen Sie nach dem Hinzufügen der Regel erneut, den fehlerhaften Pod zu starten. Ein Neustart des Knotens ist nicht erforderlich.

Sollte das Problem nach beiden Überprüfungen weiterhin bestehen, erstellen Sie bitte ein Support-Ticket beim „ IBM Cloud “-Container-Storage-Team.