Afficher les ressources Kubernetes - Amazon EKS

Aidez à améliorer cette page

Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tout le monde.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Afficher les ressources Kubernetes

Vous pouvez afficher les ressources Kubernetes déployées sur votre cluster avec la AWS Management Console. Vous ne pouvez pas afficher Kubernetes les ressources avec le AWS CLI ou eksctl. Pour afficher les ressources Kubernetes à l'aide d'un outil de ligne de commande, utilisez kubectl.

Prérequis

Pour afficher l'onglet Ressources et la section Nœuds de l'onglet Compute du AWS Management Console, le principal IAM que vous utilisez doit disposer d'un IAM et Kubernetes d'autorisations spécifiques. Pour plus d’informations, consultez Autorisations nécessaires.

Pour consulter les Kubernetes ressources à l'aide du AWS Management Console
  1. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

  2. Dans la liste Clusters, sélectionnez le cluster qui contient les ressources Kubernetes que vous souhaitez afficher.

  3. Sélectionnez l'onglet Resources (Ressources).

  4. Sélectionnez un groupe Resource type (Type de ressource) pour lequel vous souhaitez afficher les ressources, comme Workloads (Charges de travail). Vous voyez une liste des types de ressources dans ce groupe.

  5. Sélectionnez un type de ressource, tel que Deployments (Déploiements), dans le groupe Workloads (Charges de travail). Vous voyez une description du type de ressource, un lien vers la documentation Kubernetes pour plus d'informations sur le type de ressource et une liste des ressources de ce type qui sont déployées sur votre cluster. Si la liste est vide, aucune ressource de ce type n'est déployée sur votre cluster.

  6. Sélectionnez une ressource pour afficher plus d'informations à son sujet. Essayez les exemples suivants :

    • Sélectionnez le groupe Workloads (Charges de travail), sélectionnez le type de ressource Deployments (Déploiements), puis sélectionnez la ressource coredns. Lorsque vous sélectionnez une ressource, vous êtes dans Structured view (Vue structurée), par défaut. Pour certains types de ressources, vous voyez une section Pod dans Structured view (Vue structurée). Cette section répertorie les Pods gérés par la charge de travail. Vous pouvez sélectionner n'importe quel Pod répertorié pour afficher les informations sur le Pod. Tous les types de ressources n'affichent pas d'informations dans Structured View (Vue structurée). Si vous sélectionnez Vue brute dans le coin supérieur droit de la page de la ressource, vous voyez la réponse JSON complète de l'API Kubernetes pour la ressource.

    • Sélectionnez le groupe Cluster, puis sélectionnez le type de ressource Nodes (Nœuds). Vous voyez une liste de tous les nœuds de votre cluster. Les nœuds peuvent être n'importe quel type de nœud Amazon EKS. Il s'agit de la même liste que celle que vous voyez dans la section Nodes (Nœuds) lorsque vous sélectionnez l'onglet Compute (Calcul) pour votre cluster. Sélectionnez une ressource de nœud dans la liste. Dans Structured view (Vue structurée), vous voyez également une section Pod. Cette section vous montre tous les Pods en cours d'exécution sur le nœud.

Autorisations nécessaires

Pour afficher l'onglet Ressources et la section Nœuds de l'onglet Compute du AWS Management Console, le principal IAM que vous utilisez doit disposer d'un IAM et Kubernetes d'autorisations minimales spécifiques. Procédez comme suit pour accorder les autorisations requises à vos principaux IAM.

  1. Assurez-vous que les autorisations eks:AccessKubernetesApi, ainsi que les autres autorisations IAM nécessaires pour afficher les ressources Kubernetes, sont attribuées au principal IAM que vous utilisez. Pour plus d'informations sur la modification des autorisations d'un principal IAM, consultez la rubrique Contrôle de l'accès des principaux du Guide de l'utilisateur IAM. Pour plus d'informations sur la modification des autorisations pour un rôle, consultez Modification d'une politique d'autorisations de rôle (console) dans le guide de l'utilisateur IAM.

    L'exemple de politique suivant inclut les autorisations nécessaires pour qu'un principal puisse afficher les ressources Kubernetes de tous les clusters de votre compte. Remplacez 111122223333 par votre ID de compte AWS .

    { "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/*" } ] }

    Pour afficher les nœuds des clusters connectés, le rôle IAM du connecteur Amazon EKS doit être en mesure d'emprunter l'identité du principal dans le cluster. Cela permet au Amazon EKS Connector de mapper le principal à un utilisateur Kubernetes.

  2. Créez une rolebinding ou une clusterrolebinding Kubernetes qui est liée à un role ou un clusterrole Kubernetesou qui dispose des autorisations nécessaires pour afficher les ressources Kubernetes. Pour en savoir plus sur les rôles et les liaisons de rôles Kubernetes, consultez Utilisation de l'autorisation RBAC dans la documentation Kubernetes. Vous pouvez appliquer l'un des manifestes suivants à votre cluster qui crée un role et une rolebinding ou un clusterrole et une clusterrolebinding avec les autorisations Kubernetes nécessaires :

    Afficher les ressources Kubernetes dans tous les espaces de noms

    Le nom du groupe dans le fichier est eks-console-dashboard-full-access-group. Appliquez le manifeste à votre cluster à l'aide de la commande suivante :

    kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
    Afficher les ressources Kubernetes dans un espace de noms spécifique

    L'espace de noms de ce fichier est default. Le nom du groupe dans le fichier est eks-console-dashboard-restricted-access-group. Appliquez le manifeste à votre cluster à l'aide de la commande suivante :

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

    Si vous devez modifier le nom du groupe Kubernetes, l'espace de noms, les autorisations ou toute autre configuration dans le fichier, téléchargez le fichier et modifiez-le avant de l'appliquer à votre cluster :

    1. Téléchargez le fichier avec l'une des commandes suivantes :

      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. Modifiez le fichier si nécessaire.

    3. Appliquez le manifeste à votre cluster avec l'une des commandes suivantes :

      kubectl apply -f eks-console-full-access.yaml
      kubectl apply -f eks-console-restricted-access.yaml
  3. Mappez le principal IAM à l'utilisateur ou au groupe Kubernetes dans la ConfigMap aws-auth. Vous pouvez utiliser un outil tel que eksctl pour mettre à jour le ConfigMap ou vous pouvez le mettre à jour manuellement en le modifiant.

    Important

    Nous vous recommandons d'utiliser eksctl, ou un autre outil, pour modifier le ConfigMap. Pour plus d'informations sur les autres outils que vous pouvez utiliser, consultez Utiliser des outils pour apporter des modifications au aws-authConfigMap dans les guides des bonnes pratiques Amazon EKS. Un aws-auth ConfigMap mis en forme incorrectement peut entraîner la perte de l'accès à votre cluster.

    eksctl
    Prérequis

    Version 0.183.0 ou ultérieure de l'outil de ligne de commande eksctl installée sur votre appareil ou AWS CloudShell. Pour installer ou mettre à jour eksctl, veuillez consulter Installation dans la documentation de eksctl.

    1. Affichez les mappages actuels dans le ConfigMap. Remplacez my-cluster par le nom de votre cluster. region-codeRemplacez-le par Région AWS celui dans lequel se trouve votre cluster.

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

      L'exemple qui suit illustre un résultat.

      ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
    2. Ajoutez un mappage pour un rôle. Cet exemple suppose que vous avez attaché les autorisations IAM lors de la première étape à un rôle nommé my-console-viewer-role. Remplacez 111122223333 par votre ID de compte.

      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
      Important

      L'ARN de rôle ne peut pas inclure de chemin d'accès tel que role/my-team/developers/my-role. Le format de l'ARN doit être arn:aws:iam::111122223333:role/my-role. Dans cet exemple, my-team/developers/ doit être supprimé.

      L'exemple qui suit illustre un résultat.

      [...]
      2022-05-09 14:51:20 [ℹ]  adding identity "arn:aws:iam::111122223333:role/my-console-viewer-role" to auth ConfigMap
    3. Ajoutez un mappage pour un utilisateur. Les bonnes pratiques IAM recommandent d'accorder des autorisations à des rôles plutôt qu'à des utilisateurs. Cet exemple suppose que vous avez attaché les autorisations IAM lors de la première étape à un utilisateur nommé my-user. Remplacez 111122223333 par votre ID de compte.

      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

      L'exemple qui suit illustre un résultat.

      [...]
      2022-05-09 14:53:48 [ℹ]  adding identity "arn:aws:iam::111122223333:user/my-user" to auth ConfigMap
    4. Affichez de nouveau les mappages dans le ConfigMap.

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

      L'exemple qui suit illustre un résultat.

      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

    Pour plus d'informations sur l'ajout d'utilisateurs ou de rôles IAM à la ConfigMap aws-auth, consultez la rubrique Ajout de principaux IAM à votre cluster Amazon EKS.

    1. Ouvrez le aws-auth ConfigMap pour le modifier.

      kubectl edit -n kube-system configmap/aws-auth
    2. Ajoutez les mappages à aws-auth ConfigMap, mais ne remplacez aucun des mappages existants. L'exemple suivant ajoute des mappages entre les principaux IAM avec les autorisations ajoutées lors de la première étape et les groupes Kubernetes créés à l'étape précédente :

      • Le rôle my-console-viewer-role et le eks-console-dashboard-full-access-group.

      • L'utilisateur my-user et le eks-console-dashboard-restricted-access-group.

      Ces exemples supposent que vous avez attaché les autorisations IAM au cours de la première étape à un rôle nommé my-console-viewer-role et à un utilisateur nommé my-user. Remplacez 111122223333 par votre identifiant de AWS compte.

      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
      Important

      L'ARN de rôle ne peut pas inclure de chemin d'accès tel que role/my-team/developers/my-console-viewer-role. Le format de l'ARN doit être arn:aws:iam::111122223333:role/my-console-viewer-role. Dans cet exemple, my-team/developers/ doit être supprimé.

    3. Enregistrez le fichier et quittez votre éditeur de texte.