Kubernetes-Ressourcen in AWS-Managementkonsole anzeigen - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.

Kubernetes-Ressourcen in AWS-Managementkonsole anzeigen

Mit der AWS-Managementkonsole können Sie die Kubernetes-Ressourcen anzeigen, die in Ihrem Cluster bereitgestellt sind. Sie können Kubernetes-Ressourcen nicht mit der AWS CLI oder eksctl anzeigen. Um Kubernetes-Ressourcen mit einem Befehlszeilen-Tool anzuzeigen, verwenden Sie kubectl.

Anmerkung

Um die Registerkarte Ressourcen und den Abschnitt Knoten auf der Registerkarte Compute in der AWS-Managementkonsole anzeigen zu können, muss der von Ihnen verwendete IAM-Prinzipal über bestimmte IAM- und spezifische Kubernetes-Berechtigungen verfügen. Weitere Informationen finden Sie unter Erforderliche Berechtigungen.

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie in der Liste Cluster den Cluster aus, der die Kubernetes-Ressourcen enthält, die Sie anzeigen möchten.

  3. Wählen Sie die Registerkarte für Resources (Ressourcen).

  4. Wählen Sie eine Resource type-Gruppe (Ressourcentyp) aus, für die Sie Ressourcen anzeigen möchten, z. B. Workloads. Ihnen wird eine Liste der Ressourcentypen in dieser Gruppe angezeigt.

  5. Wählen Sie einen Ressourcentyp aus, z. B. Deployments (Bereitstellungen) in der Gruppe Workloads. Sie sehen eine Beschreibung des Ressourcentyps, einen Link zur Kubernetes-Dokumentation für weitere Informationen über den Ressourcentyp und eine Liste der Ressourcen dieses Typs, die in Ihrem Cluster bereitgestellt werden. Wenn die Liste leer ist, werden keine Ressourcen dieses Typs in Ihrem Cluster bereitgestellt.

  6. Wählen Sie eine Ressource aus, um weitere Informationen dazu anzuzeigen. Probieren Sie die folgenden Beispiele aus:

    • Wählen Sie die Gruppe Workloads aus, dann den Ressourcentyp Deployments (Bereitstellungen) gefolgt von der Ressource coredns. Wenn Sie eine Ressource auswählen, befinden Sie sich standardmäßig in der strukturierten Ansicht. Für einige Ressourcentypen wird in der strukturierten Ansicht der Abschnitt Pods angezeigt. In diesem Abschnitt sind die Pods aufgeführt, die von der Workload verwaltet werden. Sie können jeden aufgelisteten Pod auswählen, um Informationen zu dem Pod anzuzeigen. Nicht für alle Ressourcentypen werden Informationen in der strukturierten Ansicht angezeigt. Wenn Sie die Ansicht Raw in der oberen rechten Ecke der Seite für die Ressource auswählen, sehen Sie die vollständige JSON-Antwort von der Kubernetes-API für die Ressource.

    • Wählen Sie die Cluster-Gruppe aus und dann den Ressourcentyp Nodes (Knoten). Eine Liste aller Knoten in Ihrem Cluster wird angezeigt. Die Knoten können von jedem Amazon-EKS-Knoten-Typ sein. Das ist die gleiche Liste, die Sie im Abschnitt Nodes (Knoten) sehen, wenn Sie die Registerkarte Compute (Datenverarbeitung) für Ihren Cluster auswählen. Wählen Sie eine Knotenressource aus der Liste aus. In der strukturierten Ansicht sehen Sie ebenfalls einen Abschnitt Pods. Dieser Abschnitt zeigt Ihnen alle in dem Knoten ausgeführten Pods.

Erforderliche Berechtigungen

Um die Registerkarte Ressourcen und den Abschnitt Knoten auf der Registerkarte Compute in der AWS-Managementkonsole anzeigen zu können, muss der von Ihnen verwendete IAM-Prinzipal über bestimmte Mindestberechtigungen für IAM und Kubernetes verfügen. Führen Sie die folgenden Schritte aus, um Ihren IAM-Prinzipalen die erforderlichen Berechtigungen zuzuweisen.

  1. Stellen Sie sicher, dass eks:AccessKubernetesApi und andere erforderliche IAM-Berechtigungen zum Anzeigen von Kubernetes-Ressourcen dem von Ihnen verwendeten IAM-Prinzipal zugewiesen sind. Weitere Informationen zum Bearbeiten von Berechtigungen für einen IAM-Prinzipal finden Sie unter Zugriff für Prinzipale steuern und im IAM-Benutzerhandbuch. Weitere Informationen zum Bearbeiten von Rollenberechtigungen finden Sie unter Modifying a role permissions policy (console) (Ändern einer Rollenberechtigungsrichtlinie (Konsole)) im IAM-Benutzerhandbuch.

    Die folgende Beispielrichtlinie enthält die erforderlichen Berechtigungen für einen Prinzipal zum Anzeigen von Kubernetes-Ressourcen für alle Cluster in Ihrem Konto. Ersetzen Sie 111122223333 durch Ihre AWS-Konto-ID.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:ListFargateProfiles", "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:ListUpdates", "eks:AccessKubernetesApi", "eks:ListAddons", "eks:DescribeCluster", "eks:DescribeAddonVersions", "eks:ListClusters", "eks:ListIdentityProviderConfigs", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:GetParameter", "Resource": "arn:aws:ssm:*:111122223333:parameter/*" } ] }

    Um Knoten in verbundenen Clustern anzuzeigen, sollte die IAM-Rolle des Amazon-EKS-Connectors in der Lage sein, den Prinzipal im Cluster anzunehmen. Dadurch kann Amazon EKS Connector den Prinzipal einem Kubernetes-Benutzer zuordnen.

  2. Erstellen Sie ein Kubernetes rolebinding oder clusterrolebinding, das an ein Kubernetes role oder clusterrole gebunden ist, das über die erforderlichen Berechtigungen zum Anzeigen der Kubernetes-Ressourcen verfügt. Informationen zu Rollen und Rollenbindungen in Kubernetes finden Sie unter Using RBAC Authorization (Verwenden der RBAC-Autorisierung) in der Kubernetes-Dokumentation. Sie können eines der folgenden Manifeste auf Ihren Cluster anwenden, die eine role und eine rolebinding oder eine clusterrole und eine clusterrolebinding mit den erforderlichen Kubernetes-Berechtigungen erstellen:

    Kubernetes-Ressourcen in allen Namespaces anzeigen
    • Der Gruppenname in der Datei lautet eks-console-dashboard-full-access-group. Wenden Sie das Manifest mit dem folgenden Befehl auf Ihren Cluster an:

      kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
    Kubernetes-Ressourcen in einem bestimmten Namespace anzeigen
    • Der Namespace in dieser Datei ist default. Der Gruppenname in der Datei lautet eks-console-dashboard-restricted-access-group. Wenden Sie das Manifest mit dem folgenden Befehl auf Ihren Cluster an:

      kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml

      Wenn Sie den Namen, den Namespace, die Berechtigungen oder eine andere Konfiguration in der Datei der Kubernetes-Gruppe ändern müssen, laden Sie die Datei herunter und bearbeiten Sie sie, bevor Sie sie auf Ihren Cluster anwenden:

      1. Laden Sie die Datei mit einem der folgenden Befehle herunter.

        curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
        curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml
      2. Bearbeiten Sie die Datei nach Bedarf.

      3. Wenden Sie das Manifest mit einem der folgenden Befehle auf Ihren Cluster an:

        kubectl apply -f eks-console-full-access.yaml
        kubectl apply -f eks-console-restricted-access.yaml
  3. Ordnen Sie den IAM-Prinzipal dem Kubernetes-Benutzer oder der Kubernetes-Gruppe in aws-auth ConfigMap zu. Sie können ein Tool wie eksctl verwenden, um die ConfigMap zu aktualisieren, oder Sie können sie durch manuelle Bearbeitung aktualisieren.

    Wichtig

    Wir empfehlen die Verwendung von eksctl oder einem anderen Tool, um die ConfigMap zu bearbeiten. Informationen zu weiteren Tools, die Sie verwenden können, finden Sie unter Verwenden von Tools zum Vornehmen von Änderungen an aws-authConfigMap in den Anleitungen zu bewährten Verfahren für Amazon EKS. Ist aws-auth ConfigMap falsch formatiert, können Sie den Zugriff auf Ihren Cluster verlieren.

Bearbeiten mit eksctl

  1. Sie benötigen Version 0.214.0 oder höher des eksctl-Befehlszeilen-Tools, das auf Ihrem Computer oder in der AWS CloudShell installiert ist. Informationen zum Installieren und Aktualisieren von eksctl finden Sie in der Dokumentation zu eksctl unter Installation.

  2. Zeigen Sie die aktuellen Mappings in der ConfigMap an. Ersetzen Sie my-cluster durch den Namen Ihres Clusters. Ersetzen Sie den region-code durch die AWS-Region, in der sich Ihr Cluster befindet.

    eksctl get iamidentitymapping --cluster my-cluster --region=region-code

    Eine Beispielausgabe sieht wie folgt aus.

    ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
  3. Fügen Sie ein Mapping für eine Rolle hinzu. In diesem Beispiel wird davon ausgegangen, dass Sie die IAM-Berechtigungen im ersten Schritt einer Rolle namens my-console-viewer-role zuweisen. Ersetzen Sie 111122223333 durch Ihre Konto-ID.

    eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:role/my-console-viewer-role \ --group eks-console-dashboard-full-access-group \ --no-duplicate-arns
    Wichtig

    Der Rollen-ARN darf keinen Pfad wie role/my-team/developers/my-role enthalten. Das Format des ARN muss arn:aws:iam::111122223333:role/my-role sein. In diesem Beispiel muss my-team/developers/ entfernt werden.

    Eine Beispielausgabe sieht wie folgt aus.

    [...] 2022-05-09 14:51:20 [ℹ] adding identity "arn:aws:iam::111122223333:role/my-console-viewer-role" to auth ConfigMap
  4. Fügen Sie ein Mapping für einen Benutzer hinzu. Bewährte Methoden für IAM empfehlen, dass Sie Rollen statt Benutzern Berechtigungen gewähren. In diesem Beispiel wird davon ausgegangen, dass Sie die IAM-Berechtigungen im ersten Schritt einem Benutzer namens my-user zuweisen. Ersetzen Sie 111122223333 durch Ihre Konto-ID.

    eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:user/my-user \ --group eks-console-dashboard-restricted-access-group \ --no-duplicate-arns

    Eine Beispielausgabe sieht wie folgt aus.

    [...] 2022-05-09 14:53:48 [ℹ] adding identity "arn:aws:iam::111122223333:user/my-user" to auth ConfigMap
  5. Zeigen Sie wieder die Mappings in der ConfigMap an.

    eksctl get iamidentitymapping --cluster my-cluster --region=region-code

    Eine Beispielausgabe sieht wie folgt aus.

    ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes arn:aws:iam::111122223333:role/my-console-viewer-role eks-console-dashboard-full-access-group arn:aws:iam::111122223333:user/my-user eks-console-dashboard-restricted-access-group

ConfigMap manuell bearbeiten

Weitere Informationen zum Hinzufügen von Benutzern oder Rollen zur aws-auth ConfigMap finden Sie unter Hinzufügen von IAM-Prinzipal zu Ihrem Amazon EKS-Cluster.

  1. Öffnen Sie die aws-auth ConfigMap zum Bearbeiten.

    kubectl edit -n kube-system configmap/aws-auth
  2. Fügen Sie die Zuordnungen zur aws-auth-ConfigMap hinzu, ersetzen Sie jedoch keine der vorhandenen Zuordnungen. Im folgenden Beispiel werden Zuordnungen zwischen IAM-Prinzipalen mit Berechtigungen hinzugefügt, die im ersten Schritt hinzugefügt wurden, sowie die im vorherigen Schritt erstellten Kubernetes-Gruppen:

    • Die Rolle my-console-viewer-role und die eks-console-dashboard-full-access-group.

    • Der Benutzer my-user und die eks-console-dashboard-restricted-access-group.

      In diesen Beispielen wird davon ausgegangen, dass Sie die IAM-Berechtigungen im ersten Schritt einer Rolle namens my-console-viewer-role und einem Benutzer namens my-user zuweisen. Ersetzen Sie 111122223333 durch Ihre AWS-Konto-ID.

      apiVersion: v1 data: mapRoles: | - groups: - eks-console-dashboard-full-access-group rolearn: arn:aws:iam::111122223333:role/my-console-viewer-role username: my-console-viewer-role mapUsers: | - groups: - eks-console-dashboard-restricted-access-group userarn: arn:aws:iam::111122223333:user/my-user username: my-user
      Wichtig

      Der Rollen-ARN darf keinen Pfad wie role/my-team/developers/my-console-viewer-role enthalten. Das Format des ARN muss arn:aws:iam::111122223333:role/my-console-viewer-role sein. In diesem Beispiel muss my-team/developers/ entfernt werden.

  3. Speichern Sie die Datei und beenden Sie den Text-Editor.