Visualizzazione delle risorse Kubernetes in Console di gestione AWS - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Visualizzazione delle risorse Kubernetes in Console di gestione AWS

Puoi visualizzare le risorse Kubernetes implementate nel cluster utilizzando la Console di gestione AWS, Non è possibile visualizzare le risorse Kubernetes con AWS CLI o eksctl Per visualizzare le risorse Kubernetes con uno strumento a riga di comando, utilizza kubectl.

Nota

Per visualizzare la scheda Risorse e la sezione Nodi nella scheda Calcolo in Console di gestione AWS, il principale IAM che stai utilizzando deve disporre di IAM e autorizzazioni Kubernetes specifici. Per ulteriori informazioni, consulta Autorizzazioni richieste.

  1. Aprire la Console Amazon EKS.

  2. Nell'elenco Cluster, seleziona il cluster contenente le risorse Kubernetes da visualizzare.

  3. Selezionare la scheda Risorse.

  4. Seleziona un gruppo Resource type (Tipi di risorse) per il quale desideri visualizzare le risorse, ad esempio Workloads (Carichi di lavoro). Viene visualizzato un elenco dei tipi di risorse in tale gruppo.

  5. Seleziona un tipo di risorsa, ad esempio Deployments (Implementazioni), nel gruppo Workloads (Carichi di lavoro). Viene visualizzata una descrizione del tipo di risorsa, un collegamento alla documentazione Kubernetes per ulteriori informazioni sul tipo di risorsa e un elenco di risorse simili implementate nel cluster. Se l'elenco è vuoto, nel cluster non sono presenti risorse appartenenti a quel tipo specifico.

  6. Per visualizzare ulteriori informazioni su una risorsa, selezionarla. Prova gli esempi seguenti:

    • Seleziona il gruppo Workloads (Carichi di lavoro), scegli il tipo di risorsa Deployments (Implementazioni), quindi seleziona la risorsa coredns. Per impostazione predefinita, la selezione di una risorsa avviene in una Visualizzazione strutturata. Per alcuni tipi di risorse, nella Visualizzazione strutturata è presente una sezione Pod, Questa sezione elenca i pod gestiti dal carico di lavoro. È possibile selezionare qualsiasi pod presente in elenco per visualizzarne le informazioni. Non tutti i tipi di risorse visualizzano le informazioni nella Visualizzazione strutturata. Selezionando Raw view (Visualizzazione non elaborata) nell'angolo in alto a destra della pagina della risorsa, viene visualizzata la risposta JSON completa dall'API Kubernetes per la risorsa.

    • Seleziona il gruppo Cluster, quindi il tipo di risorsa Nodes (Nodi). Viene visualizzato un elenco di tutti i nodi del cluster. I nodi possono appartenere a qualsiasi tipo di nodo di Amazon EKS. Si tratta dello stesso elenco visualizzato nella sezione Nodes (Nodi) quando si seleziona la scheda Compute (Calcolo) del cluster. Seleziona una risorsa di nodo dall'elenco. Nella Vista strutturata è presente anche la sezione Pod Questa sezione mostra tutti i pod in esecuzione sul nodo.

Autorizzazioni richieste

Per visualizzare la scheda Risorse e la sezione Nodi nella scheda Calcolo in Console di gestione AWS, il principale IAM che stai utilizzando deve disporre di specifici IAM minimi e autorizzazioni Kubernetes. Completa i passaggi seguenti per assegnare le autorizzazioni richieste ai principali IAM.

  1. Assicurati che eks:AccessKubernetesApi e le altre autorizzazioni IAM necessarie per visualizzare le risorse Kubernetes siano assegnati al principale IAM che stai utilizzando. Per ulteriori informazioni su come modificare le autorizzazioni per un principale IAM, consulta Controllo dell'accesso per i principali IAM nella Guida per l'utente di IAM. Per ulteriori informazioni su come modificare le autorizzazioni per un ruolo, consulta Modifica di una policy di autorizzazioni del ruolo (console) nella Guida per l'utente IAM.

    La seguente policy esemplificativa include le autorizzazioni necessarie affinché un principale possa visualizzare le risorse Kubernetes per tutti i cluster dell’account. Sostituisci 111122223333 con l'ID del tuo account 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/*" } ] }

    Per visualizzare i nodi in cluster connessi, il ruolo IAM del connettore Amazon EKS dovrebbe essere in grado di rappresentare il principale nel cluster. Ciò consente ad Amazon EKS Connector di mappare il principale IAM a un utilizzatore Kubernetes.

  2. Crea un rolebinding o clusterrolebinding Kubernetes associato a un role o clusterrole Kubernetes con le autorizzazioni necessarie per visualizzare le risorse. Per ulteriori informazioni sui ruoli e sulle relative associazioni, consulta Uso dell'autorizzazione RBAC nella documentazione Kubernetes. Puoi applicare al cluster uno dei manifesti seguenti, che consentono di creare un role e rolebinding o un clusterrole e clusterrolebinding con le autorizzazioni Kubernetes necessarie:

    Visualizzare le risorse Kubernetes in tutti i namespace
    • Il nome del gruppo nel file è eks-console-dashboard-full-access-group. Applica il manifesto al cluster con il comando seguente:

      kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
    Visualizzare le risorse Kubernetes in un namespace specifico
    • Lo spazio dei nomi in questo file è default. Il nome del gruppo nel file è eks-console-dashboard-restricted-access-group. Applica il manifesto al cluster con il comando seguente:

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

      Per modificare il nome del gruppo Kubernetes, lo spazio dei nomi, le autorizzazioni o qualsiasi altra configurazione, scarica il file e modificalo prima di applicarlo al cluster:

      1. Scarica il file tramite uno dei comandi seguenti:

        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. Modifica il file in base alle esigenze.

      3. Applica il manifesto al cluster con uno dei comandi seguenti:

        kubectl apply -f eks-console-full-access.yaml
        kubectl apply -f eks-console-restricted-access.yaml
  3. Mappa il principale IAM all’utente o al gruppo Kubernetes in aws-auth ConfigMap. Per aggiornare ConfigMap puoi usare uno strumento adeguato, ad esempio eksctl, oppure puoi eseguire l'aggiornamento in modo manuale tramite modifica.

    Importante

    Ti consigliamo di utilizzare eksctl, o uno strumento simile, per modificare ConfigMap. Per informazioni su altri strumenti che è possibile utilizzare, consulta Utilizzo degli strumenti per apportare modifiche ad aws-authConfigMap nelle guide alle best practice di Amazon EKS. Una formattazione impropria di aws-auth ConfigMap può causare la perdita dell'accesso al cluster.

Modifica con eksctl

  1. È necessario che la versione 0.214.0 o quelle successive dello strumento a riga di comando eksctl sia installata sul dispositivo o su AWS CloudShell. Per l'installazione o l'aggiornamento di eksctl, consulta la sezione Installation nella documentazione di eksctl.

  2. Visualizza le mappature correnti in ConfigMap. Sostituisci my-cluster con il nome del tuo cluster. Sostituisci region-code con la regione AWS in cui si trova il cluster.

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

    Di seguito viene riportato un output di esempio:

    ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
  3. Aggiungi una mappatura per un ruolo. Per questo esempio si presuppone che le autorizzazioni IAM siano state collegate a un ruolo denominato my-console-viewer-role nella prima fase. Sostituire 111122223333 con l'ID account.

    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
    Importante

    L’ARN del ruolo non può includere un percorso, ad esempio role/my-team/developers/my-role. Il formato dell'ARN deve essere arn:aws:iam::111122223333:role/my-role . In questo esempio, my-team/developers/ deve essere rimosso.

    Di seguito viene riportato un output di esempio.

    [...] 2022-05-09 14:51:20 [ℹ] adding identity "arn:aws:iam::111122223333:role/my-console-viewer-role" to auth ConfigMap
  4. Aggiungi una mappatura per un utente. Le best practice IAM consigliano di concedere le autorizzazioni ai ruoli anziché agli utenti. Per questo esempio si presuppone che le autorizzazioni IAM siano state collegate a un utente denominato my-user nella prima fase. Sostituire 111122223333 con l'ID account.

    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

    Di seguito viene riportato un output di esempio:

    [...] 2022-05-09 14:53:48 [ℹ] adding identity "arn:aws:iam::111122223333:user/my-user" to auth ConfigMap
  5. Visualizza nuovamente le mappature nella ConfigMap.

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

    Di seguito viene riportato un output di esempio:

    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

Modifica ConfigMap manualmente

Per ulteriori informazioni sull'aggiunta degli utenti o dei ruoli a aws-auth ConfigMap, consulta Aggiunta di principali IAM al cluster Amazon EKS.

  1. Apri aws-auth ConfigMap per la modifica.

    kubectl edit -n kube-system configmap/aws-auth
  2. Aggiungi le mappature a aws-auth ConfigMap senza sostituire quelle esistenti. L’esempio seguente mostra l’aggiunta di mappature tra principali IAM con autorizzazioni aggiunte nel primo passaggio e i gruppi Kubernetes creati nel passaggio precedente:

    • Il ruolo my-console-viewer-role e il eks-console-dashboard-full-access-group.

    • L'utente my-user e il eks-console-dashboard-restricted-access-group.

      Per questi esempi si presuppone che le autorizzazioni IAM siano state collegate a un ruolo denominato my-console-viewer-role e a un utente denominato my-user nella prima fase. Sostituisci 111122223333 con l'ID del tuo account AWS.

      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
      Importante

      l’ARN del ruolo non può includere un percorso, ad esempio role/my-team/developers/my-console-viewer-role. Il formato dell'ARN deve essere arn:aws:iam::111122223333:role/my-console-viewer-role . In questo esempio, my-team/developers/ deve essere rimosso.

  3. Salva il file ed esci dall'editor di testo.