Ansichten:
Profilanwendbarkeit: Stufe 2
Das Ausführen des GKE-Metadatenservers verhindert, dass Workloads auf sensible Instanzmetadaten zugreifen, und erleichtert die Workload-Identität.
Jeder Knoten speichert seine Metadaten auf einem Metadatenserver. Einige dieser Metadaten, wie kubelet-Anmeldedaten und das Identitätstoken der VM-Instanz, sind sensibel und sollten nicht einem Kubernetes-Workload ausgesetzt werden. Das Aktivieren des GKE-Metadatenservers verhindert, dass Pods (die nicht im Host-Netzwerk laufen) auf diese Metadaten zugreifen und erleichtert die Workload-Identität.
Wenn nicht anders angegeben, ermöglicht die Standardeinstellung, dass laufende Pods vollen Zugriff auf den zugrunde liegenden Metadatenserver des Knotens haben.
Hinweis
Hinweis
Standardmäßig haben laufende Pods vollen Zugriff auf den zugrunde liegenden Metadatenserver des Knotens.

Auswirkung

Der GKE-Metadatenserver muss ausgeführt werden, wenn Workload Identity verwendet wird. Da Workload Identity die Notwendigkeit der Verwendung von Metadatenverschleierung ersetzt, sind die beiden Ansätze nicht kompatibel. Wenn der GKE-Metadatenserver und Workload Identity aktiviert sind, können Pods das Compute Engine-Standarddienstkonto nicht verwenden, es sei denn, der Pod läuft im Hostnetzwerk.
Möglicherweise müssen Workloads geändert werden, damit sie die Workload-Identität wie in der GKE-Dokumentation beschrieben verwenden können.

Prüfung

Google Cloud-Konsole verwenden
  1. Gehen Sie zu Kubernetes Engine, indem Sie die Google Cloud Console Kubernetes Engine-Seite besuchen
  2. Klicken Sie in der Liste der Cluster auf den Namen des interessierenden Clusters und öffnen Sie für jeden Node-Pool innerhalb des Clusters das Detailfenster, und stellen Sie sicher, dass der GKE-Metadatenserver auf Aktiviert gesetzt ist.
Verwendung der Befehlszeile
Um zu überprüfen, ob der GKE-Metadatenserver für jeden Knotenpool innerhalb eines Clusters aktiviert ist, definieren Sie 3 Variablen für Clustername, Standort und Projekt und führen Sie dann den folgenden Befehl aus:
gcloud container clusters describe $CLUSTER_NAME --location $LOCATION -- project $PROJECT_ID --format json | jq '.nodePools[].config.workloadMetadataConfig' 
 
Dies sollte für jeden Node-Pool Folgendes zurückgeben:
{ 
      "mode": "GKE_METADATA" 
} 
Null ({ }) wird zurückgegeben, wenn der GKE-Metadatenserver nicht aktiviert ist.

Wiederherstellung

Der GKE-Metadatenserver erfordert, dass Workload Identity auf einem Cluster aktiviert ist. Ändern Sie den Cluster, um Workload Identity zu aktivieren und den GKE-Metadatenserver zu aktivieren.
Google Cloud-Konsole verwenden
  1. Gehen Sie zu Kubernetes Engine, indem Sie die Google Cloud Console Kubernetes Engine-Seite besuchen
  2. Wählen Sie aus der Liste der Cluster den Cluster aus, für den die Workload-Identität deaktiviert ist.
  3. Im DETAILS-Bereich navigieren Sie nach unten zum Abschnitt Sicherheit.
  4. Klicken Sie auf das Stiftsymbol mit der Bezeichnung Workload-Identität bearbeiten, klicken Sie im Popup-Fenster auf Workload-Identität aktivieren und wählen Sie einen Workload-Pool aus der Dropdown-Liste aus. Standardmäßig wird es der Namespace des Cloud-Projekts sein, das den Cluster enthält, zum Beispiel: <project_id>.svc.id.goog.
  5. Klicken Sie auf ÄNDERUNGEN SPEICHERN und warten Sie, bis der Cluster aktualisiert wird.
  6. Sobald der Cluster aktualisiert wurde, wählen Sie jeden Node-Pool auf der Detailseite des Clusters aus.
  7. Für jeden Node-Pool wählen Sie BEARBEITEN auf der Detailseite des Node-Pools.
  8. Im Bereich "Knotenpool bearbeiten" aktivieren Sie das Kontrollkästchen "GKE-Metadatenserver aktivieren".
  9. Klicken Sie auf SPEICHERN.
Verwendung der Befehlszeile
gcloud container clusters update <cluster_name> --identity- namespace=<project_id>.svc.id.goog
Beachten Sie, dass bestehende Node-Pools nicht betroffen sind. Neue Node-Pools verwenden standardmäßig --workload-metadata-from-node=GKE_METADATA_SERVER.
Um einen bestehenden Node-Pool zu ändern, um den GKE-Metadatenserver zu aktivieren:
gcloud container node-pools update <node_pool_name> --cluster=<cluster_name> --workload-metadata-from-node=GKE_METADATA_SERVER
Möglicherweise müssen Workloads geändert werden, damit sie die Workload-Identität wie in der GKE-Dokumentation beschrieben verwenden können.