AWS IAM-Instanzprofil aktualisieren

Auf dieser Seite wird erläutert, was ein AWS IAM-Instanzprofil ist, warum es im Kontext von GKE on AWS wichtig ist und wie das Instanzprofil aktualisiert wird.

Was ist ein AWS IAM-Instanzprofil?

Ein Instanzprofil ist ein AWS-spezifisches Konzept. Es besteht aus einer Reihe von Anmeldedaten, mit denen eine Amazon EC2-Instanz auf verschiedene AWS-Ressourcen zugreift. Genauer gesagt ist ein Instanzprofil eine Art von Container für eine IAM-Rolle, die einer EC2-Instanz zugeordnet werden kann. Ein Instanzprofil überträgt Berechtigungen an die EC2-Instanz, die es der Instanz ermöglicht, mit verschiedenen AWS-Diensten unter den definierten Berechtigungen zu interagieren. Weitere Informationen finden Sie unter Instanzprofile verwenden.

Wie werden Instanzprofile in GKE on AWS verwendet?

Jede Steuerungsebene und jeder Knotenpool in einem GKE on AWS-Cluster ist einem eindeutigen AWS-Instanzprofil zugeordnet. Instanzprofile in GKE on AWS dienen zwei Zwecken:

  1. Ein Instanzprofil gewährt GKE on AWS die Berechtigungen, die zum Verwalten von AWS-Ressourcen erforderlich sind. Beispielsweise erhält das Cluster-Autoscaling die erforderlichen Berechtigungen zum Skalieren des Clusters, indem EC2-Instanzen je nach Arbeitslastanforderungen hinzugefügt oder entfernt werden.
  2. Ein Instanzprofil gewährt EC2-Instanzen Zugriff auf Google Cloud-Dienste. Beispielsweise benötigt kubelet, das auf einer AWS-Maschine ausgeführt wird, bestimmte Berechtigungen, um Image-Pull-Anmeldedaten für containerd bereitzustellen. Diese Anmeldedaten sind erforderlich, um auf die private Artifact Registry von Google oder Container Registry zuzugreifen und Images daraus abzurufen. Im Kontext von GKE on AWS ist das mit dem Cluster verknüpfte EC2-Instanzprofil so konfiguriert, dass die Identität der Maschinendienst-Agents von Google (z. B. der Knotenpool-Maschinendienst-Agent oder der Dienst-Agent für Maschinen der Steuerungsebene) übernommen wird. Durch diesen Identitätswechsel können sich die EC2-Instanzen des Clusters automatisch bei Google Artifact Registry oder Container Registry authentifizieren.

Instanzprofil aktualisieren

Zum Aktualisieren des Instanzprofils müssen Sie in AWS ein neues Instanzprofil mit bestimmten Berechtigungen erstellen und es dann mit Ihrem GKE on AWS-Cluster oder ‐Knotenpool verknüpfen.

So aktualisieren Sie das Instanzprofil für Ihren Cluster oder Knotenpool:

  1. Erstellen Sie ein IAM-Instanzprofil für Ihre Amazon EC2-Instanzen und fügen Sie dem Instanzprofil die erforderliche IAM-Rolle hinzu. Weitere Informationen finden Sie unter Instanzprofile verwenden.
  2. Verknüpfen Sie das neue Instanzprofil mit Ihrem GKE on AWS-Cluster oder Knotenpool. Führen Sie dazu den folgenden Befehl in der Google Cloud CLI aus:

    gcloud container aws clusters update CLUSTER_NAME \
      --update-instance-profile \
      --instance-profile-name NEW_INSTANCE_PROFILE_NAME \
      ...
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: der Name Ihres Clusters
    • NEW_INSTANCE_PROFILE_NAME ist der Name des neuen AWS-Instanzprofils, das Sie erstellt haben.
    gcloud container aws node-pools update NODE_POOL_NAME \
      --update-instance-profile \
      --instance-profile-name NEW_INSTANCE_PROFILE_NAME \
      ...
    

    Ersetzen Sie Folgendes:

    • NODE_POOL_NAME: der Name des Knotenpools.
    • NEW_INSTANCE_PROFILE_NAME ist der Name des neuen AWS-Instanzprofils, das Sie erstellt haben.

    Diese Befehle zeigen nur die relevanten Flags zum Aktualisieren des Instanzprofils an. Sie müssen jedoch zusätzliche Flags angeben, um den Befehl update auszuführen. Weitere Informationen finden Sie unter AWS-Clusterparameter aktualisieren und Knotenpool aktualisieren.

Falsche Aktualisierungsmethode

Es ist wichtig zu verstehen, wie ein Instanzprofil falsch aktualisiert wird, da dies leicht zu machen ist und Clusterausfälle verursachen kann.

Die falsche Methode zum Aktualisieren eines Instanzprofils besteht darin, ein vorhandenes Instanzprofil direkt über die AWS Management Console oder die AWS-Befehlszeile zu ändern. Solche Änderungen können die Interaktion von GKE on AWS mit AWS-Ressourcen stören. GKE on AWS erwartet, dass Instanzprofile unverändert bleiben, als sie zum ersten Mal mit dem Cluster oder Knotenpool verknüpft wurden. Wenn sie außerhalb der Verwaltungstools von GKE on AWS geändert werden, kann dies zu einer Abweichung mit der ID der IAM-Rolle im Instanzprofil führen. Diese Abweichung kann zu einem Clusterfehler führen.

Der im vorherigen Abschnitt beschriebene Ansatz sorgt dafür, dass Aktualisierungen ohne Beeinträchtigung der Einbindung von GKE on AWS in AWS erfolgen.