Anzeigen der Kubernetes-Ressourcen - Amazon EKS

Anzeigen der Kubernetes-Ressourcen

Mit der AWS Management Console 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 Befehlszeilentool anzuzeigen, verwenden Sie kubectl.

Voraussetzung

Zum Anzeigen der Registerkarte Resources (Ressourcen) und des Abschnitts Nodes (Knoten) auf der Registerkarte Compute (Datenverarbeitung) in der AWS Management Console muss der Benutzer, mit dem Sie in der AWS Management Console angemeldet sind bzw. die Rolle, zu der Sie wechseln, sobald Sie angemeldet sind, über bestimmte IAM- und Kubernetes-Berechtigungen verfügen. Weitere Informationen finden Sie unter Erforderliche Berechtigungen.

Anzeigen von Kubernetes-Ressourcen mit dem AWS Management Console

  1. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  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 jedes beliebige pod auswählen, um Informationen über das 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. In diesem Abschnitt finden Sie alle pods, die auf dem Knoten ausgeführt werden.

Erforderliche Berechtigungen

Zum Anzeigen der Registerkarte Resources (Ressourcen) und des Abschnitts Nodes (Knoten) auf der Registerkarte Compute (Datenverarbeitung) in der AWS Management Console muss der Benutzer, mit dem Sie in der AWS Management Console angemeldet sind bzw. die Rolle, zu der Sie wechseln, sobald Sie angemeldet sind, über bestimmte minimale IAM- und Kubernetes-Berechtigungen verfügen. Führen Sie die folgenden Schritte aus, um Ihren Benutzern und Rollen die erforderlichen Berechtigungen zuzuweisen.

  1. Stellen Sie sicher, dass die eks:AccessKubernetesApi sowie andere notwendige IAM-Berechtigungen zum Anzeigen von Kubernetes-Ressourcen entweder dem Benutzer zugewiesen sind, mit dem Sie sich bei AWS Management Console anmelden, oder der Rolle, zu der Sie wechseln, nachdem Sie sich bei der Konsole angemeldet haben. Weitere Informationen zum Bearbeiten von Berechtigungen für einen Benutzer finden Sie unter Changing permissions for a user (console) (Ändern von Berechtigungen für einen Benutzer (Konsole)) 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 Benutzer oder eine Rolle zum Anzeigen von Kubernetes-Ressourcen für alle Cluster in Ihrem Konto. Ersetzen Sie 111122223333 durch Ihre 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 das Amazon-EKS-Konnektor-IAM-Rolle in der Lage sein, den IAM-Benutzer oder die Rolle im Cluster anzunehmen. Dadurch kann der Amazon-EKS-Anschluss den IAM-Benutzer oder die IAM-Rolle einem Kubernetes-Benutzer zuordnen.

  2. Erstellen Sie ein clusterrolebinding-Kubernetes oder rolebinding, 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:

    • Anzeigen von Kubernetes-Ressourcen in allen Namespaces – 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
    • Anzeigen von Kubernetes-Ressourcen in einer spezifischen Namespace – Der Namespace in dieser Datei lautet 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 eks-console-full-access.yaml https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
      curl -o eks-console-restricted-access.yaml 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-Benutzer oder die IAM-Rolle dem KKubernetes-Benutzer bzw. aws-auth-Gruppe in der 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. Weitere Informationen zu anderen Tools, die Sie verwenden können, finden Sie unter Verwenden von Tools zur Änderung von aws-authConfigMap in den Best-Practice-Leitfäden zu Amazon EKS. Ist aws-auth ConfigMap falsch formatiert, können Sie den Zugriff auf Ihren Cluster verlieren.

    eksctl

    Voraussetzung

    Version 0.105.0 oder höher des eksctl-Befehlszeilen-Tools, das auf Ihrem Computer oder AWS CloudShell installiert ist. Informationen zum Installieren oder Aktualisieren von eksctl finden Sie unter Installieren oder Aktualisieren von eksctl.

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

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

      Die Beispielausgabe lautet wie folgt.

      ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
    2. 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.

      Die Beispielausgabe lautet wie folgt.

      ... 2022-05-09 14:51:20 [ℹ] adding identity "arn:aws:iam::111122223333:role/my-console-viewer-role" to auth ConfigMap
    3. Fügen Sie ein Mapping für einen Benutzer hinzu. In diesem Beispiel wird davon ausgegangen, dass Sie die IAM-Berechtigungen im ersten Schritt einem Benutzer 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

      Die Beispielausgabe lautet wie folgt.

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

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

      Die Beispielausgabe lautet wie folgt.

      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
    Edit ConfigMap manually

    Weitere Informationen zum Hinzufügen von Benutzern oder Rollen zur aws-auth ConfigMap finden Sie unter Hinzufügen von IAM-Benutzern, -Rollen hinzu oder AWS-Konten zur ConfigMap.

    1. Öffnen Sie ConfigMap zum Bearbeiten.

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

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

      • Der my-user-Benutzer und 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 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 schließen Sie den Editor.