Guida introduttiva ad Amazon EKS AWS Management Console e AWS CLI - Amazon EKS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Guida introduttiva ad Amazon EKS AWS Management Console e AWS CLI

Questa guida ti aiuta a creare tutte le risorse necessarie per iniziare a usare Amazon Elastic Kubernetes Service (Amazon EKS) utilizzando e il. AWS Management Console AWS CLI Con questa guida è possibile creare manualmente ogni risorsa. Al termine di questo tutorial, sarà creato un cluster Amazon EKS in esecuzione a cui implementare applicazioni.

Le procedure descritte in questa guida ti consentono di visualizzare in modo completo il modo in cui ogni risorsa viene creata e il modo in cui le risorse interagiscono tra loro. Se si preferisce creare automaticamente la maggior parte delle risorse, utilizzare la CLI eksctl per creare il cluster e i nodi. Per ulteriori informazioni, consulta Guida introduttiva ad Amazon EKS: eksctl.

Prerequisiti

Prima di iniziare questo tutorial, è necessario installare e configurare i seguenti strumenti e risorse necessarie per creare e gestire un cluster Amazon EKS.

  • AWS CLI— Uno strumento da riga di comando per lavorare con AWS i servizi, incluso Amazon EKS. Per informazioni, consultare Installazione, aggiornamento e disinstallazione di AWS CLI nella Guida per l'utente di AWS Command Line Interface . Dopo aver installato AWS CLI, ti consigliamo di configurarlo anche. Per ulteriori informazioni, consultare Configurazione rapida con aws configure nella Guida per l'utente AWS Command Line Interface .

  • kubectl: uno strumento a riga di comando per lavorare con i cluster Kubernetes. Per ulteriori informazioni, consulta Installazione o aggiornamento di kubectl.

  • Autorizzazioni IAM richieste: il responsabile della sicurezza IAM che stai utilizzando deve disporre delle autorizzazioni per lavorare con i ruoli IAM di Amazon EKS, i ruoli collegati ai servizi AWS CloudFormation, un VPC e le risorse correlate. Per ulteriori informazioni, consulta Operazioni, risorse e chiavi di condizione per Amazon Elastic Kubernetes Service e Utilizzo di ruoli collegati ai servizi nella Guida per l'utente di IAM. È necessario che tutti i passaggi di questa guida siano completati dallo stesso utente. Esegui il comando seguente per controllare l’utente corrente:

    aws sts get-caller-identity
  • Ti consigliamo di completare la procedura descritta in questo argomento in una shell Bash. In alternativa, puoi apportare alcune modifiche alla tua shell per alcuni comandi di script, come i caratteri di continuazione della riga, e per il modo in cui le variabili vengono impostate e utilizzate. Inoltre, le regole di escape e di utilizzo delle virgolette per la shell (interprete di comandi) potrebbero essere diverse. Per ulteriori informazioni, consulta Usare le virgolette con le stringhe nella Guida per l' AWS CLIutente. AWS Command Line Interface

Fase 1: Creazione del cluster Amazon EKS;

Importante

Per iniziare nel modo più semplice e rapido possibile, in questo argomento sono inclusi i passaggi per creare un cluster con impostazioni predefinite. Prima di creare un cluster da utilizzare in produzione, è consigliabile acquisire familiarità con tutte le impostazioni e implementare un cluster con le impostazioni che soddisfano i tuoi requisiti. Per ulteriori informazioni, consulta Creazione di un cluster Amazon EKS. Alcune impostazioni possono essere abilitate solo quando crei cluster.

Per creare il cluster
  1. Creare un Amazon VPC con sottoreti pubbliche e private che soddisfino i requisiti Amazon EKS. Sostituisci region-code con qualsiasi Regione AWS supportata da Amazon EKS. Per un elenco di Regioni AWS, consulta gli endpoint e le quote di Amazon EKS nella guida di riferimento AWS generale.Puoi sostituire my-eks-vpc-stack con un nome a tua scelta.

    aws cloudformation create-stack \ --region region-code \ --stack-name my-eks-vpc-stack \ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
    Suggerimento

    Per un elenco di tutte le risorse create dal comando precedente, aprire la console AWS CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation. Scegli lo stack my-eks-vpc-stack, quindi la scheda Resources (Risorse).

  2. Crea un ruolo IAM del cluster e associa la policy gestita Amazon EKS IAM richiesta. Kubernetesi cluster gestiti da Amazon EKS effettuano chiamate ad altri AWS servizi per tuo conto per gestire le risorse che utilizzi con il servizio.

    1. Copiare i seguenti contenuti in un file denominato eks-cluster-role-trust-policy.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Creare il ruolo.

      aws iam create-role \ --role-name myAmazonEKSClusterRole \ --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    3. Allegare la policy IAM gestita da Amazon EKS richiesta al ruolo.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name myAmazonEKSClusterRole
  3. Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

    Assicurati che quello Regione AWS mostrato nella parte superiore destra della console sia Regione AWS quello in cui desideri creare il cluster. In caso contrario, scegli il menu a discesa accanto al Regione AWS nome e scegli Regione AWS quello che desideri utilizzare.

  4. Scegli Add cluster (Aggiungi cluster), quindi scegli Create (Crea). Se non viene visualizzata questa opzione, scegli Clusters (Cluster) nel pannello di navigazione a sinistra.

  5. Nella pagina Configure cluster (Configura cluster), completare le seguenti operazioni:

    1. Immettere un nome per il cluster, ad esempio my-cluster. Il nome può contenere solo caratteri alfanumerici (con distinzione tra lettere maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfabetico e non può avere una lunghezza superiore a 100 caratteri.

    2. Per Cluster Service Role, scegli ClusterRoleMyAmazoneks.

    3. Lasciare le impostazioni rimanenti sui valori di default e selezionare Next (Successivo).

  6. Nella pagina Specify networking (Specifica rete), procedere come segue:

    1. Scegli l'ID del VPC creato in un passaggio precedente nell'elenco a discesa VPC. È qualcosa come vpc-00x0000x000x0x000 | -VPC. my-eks-vpc-stack

    2. Lasciare le impostazioni rimanenti sui valori di default e selezionare Next (Successivo).

  7. Nella pagina Configura osservabilità, scegli Avanti.

  8. Nella pagina Seleziona componenti aggiuntivi, scegli Successivo.

    Per ulteriori informazioni sui componenti aggiuntivi, consulta la pagina Componenti aggiuntivi Amazon EKS.

  9. Nella pagina Configura le impostazioni dei componenti aggiuntivi selezionati, scegli Successivo.

  10. Nella pagina Review and create (Rivedi e crea), scegliere Create (Crea).

    A destra del nome del cluster, lo stato del cluster è Creazione in corso per alcuni minuti fino al termine del processo di provisioning del cluster. Non proseguire con il passaggio successivo finché lo stato non è Attivo.

    Nota

    Potresti ricevere un errore che indica che una delle zone di disponibilità nella richiesta non dispone di capacità sufficiente per creare un cluster Amazon EKS. In questo caso, l'output di errore contiene le zone di disponibilità in grado di supportare un nuovo cluster. Riprova a creare il cluster con almeno due sottoreti che si trovano nelle zone di disponibilità supportate per il tuo account. Per ulteriori informazioni, consulta Capacità insufficiente.

Fase 2: Configurazione del computer per comunicare con il cluster

In questa sezione, imparerai a creare un file kubeconfig per il cluster. Le impostazioni in questo file abilitano la CLI kubectl per comunicare con il cluster.

Configurazione del computer per comunicazione con il cluster
  1. Crea o aggiorna un file kubeconfig per il cluster. Sostituisci region-code con la Regione AWS in cui hai creato il cluster. Sostituisci my-cluster con il nome del cluster.

    aws eks update-kubeconfig --region region-code --name my-cluster

    Per impostazione predefinita, il file config viene creato in ~/.kube o la configurazione del nuovo cluster viene aggiunta a un file config esistente in ~/.kube.

  2. Prova la configurazione.

    kubectl get svc
    Nota

    Se ricevi qualsiasi altro errore di tipo di risorsa o autorizzazione, consulta la sezione Accesso negato o non autorizzato (kubectl) nell'argomento relativo alla risoluzione dei problemi.

    Di seguito viene riportato un output di esempio:

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m

Fase 3: Creazione di nodi

Importante

Per iniziare nel modo più semplice e rapido possibile, in questo argomento sono inclusi i passaggi per creare nodi con impostazioni predefinite. Prima di creare i nodi da utilizzare in produzione, è consigliabile acquisire familiarità con tutte le impostazioni e implementare i nodi con le impostazioni che soddisfano i tuoi requisiti. Per ulteriori informazioni, consulta Nodi Amazon EKS. Alcune impostazioni possono essere abilitate solo quando crei i nodi.

È possibile creare un cluster con uno dei seguenti tipi di nodo. Per ulteriori informazioni sui tipi di nodi, consultare Nodi Amazon EKS. Dopo aver implementato il cluster, puoi aggiungere altri tipi di nodo.

  • Fargate - Linux: scegli questo tipo di nodo se desideri eseguire le applicazioni Linux su AWS Fargate. Fargate è un motore di calcolo serverless che consente di implementare Pods di Kubernetes senza dover gestire le istanze Amazon EC2.

  • Nodi gestiti - Linux: scegli questo tipo di nodo se desideri eseguire applicazioni Amazon Linux su istanze Amazon EC2. Sebbene la procedura non sia descritta in questa guida, al cluster puoi anche aggiungere nodi autogestiti di Windows e nodi Bottlerocket.

Fargate – Linux

Creazione di un profilo Fargate. Quando i Pods Kubernetes vengono implementati con criteri che corrispondono ai criteri definiti nel profilo, i Podsvengono distribuiti in Fargate.

Creazione di un profilo Fargate
  1. Creare un ruolo IAM e allegarlo alla policy gestita IAM di Amazon EKS richiesta. Quando il cluster crea Pods sull'infrastruttura Fargate, i componenti in esecuzione sull'infrastruttura Fargate devono effettuare chiamate alle AWS API per conto dell'utente. In questo modo possono eseguire azioni come estrarre le immagini dei container da Amazon ECR o indirizzare i log ad altri AWS servizi. Il ruolo di esecuzione del Pod Amazon EKS fornisce le autorizzazioni IAM per eseguire questa operazione.

    1. Copia i contenuti seguenti in un file denominato pod-execution-role-trust-policy.json. region-codeSostituiscilo con Regione AWS quello in cui si trova il cluster. Se desideri utilizzare lo stesso ruolo Regioni AWS in tutti gli ambienti del tuo account, sostituiscilo region-code con*. Sostituisci 111122223333 con il tuo ID account e my-cluster con il nome del cluster. Se vuoi usare lo stesso ruolo per tutti i cluster dell'account, sostituisci my-cluster con *.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Crea un ruolo IAM di esecuzione del Pod.

      aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
    3. Allegare la policy IAM gestita da Amazon EKS richiesta al ruolo.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole
  2. Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  3. Nella pagina Clusters (Cluster), scegli il cluster my-cluster.

  4. Sulla pagina my-cluster, completare le seguenti operazioni:

    1. Scegli la scheda Calcolo.

    2. In Fargate Profiles (Profili Fargate), scegli Add Fargate Profile (Aggiungi profilo Fargate).

  5. Nella pagina Configure Fargate Profile (Configura profilo Fargate), esegui le operazioni seguenti:

    1. In Nome, inserisci un nome univoco per il profilo Fargate, ad esempio my-profile.

    2. Per il ruolo di esecuzione del Pod, scegli gli FargatePodExecutionRoleAmazonEks che hai creato in un passaggio precedente.

    3. Seleziona l'elenco a discesa Subnets (Sottoreti) e deseleziona qualsiasi sottorete il cui nome contenga Public. Per i Pods in esecuzione su Fargate sono supportate solo le sottoreti private.

    4. Seleziona Successivo.

  6. Nella pagina Configure Pod selection (Configura selezione pod), procedi come segue:

    1. Per Namespace (Spazio dei nomi), immettere default.

    2. Seleziona Successivo.

  7. Nella pagina Rivedi e crea, controlla le informazioni relative al profilo Fargate e scegli Crea.

  8. Dopo alcuni minuti, lo Stato nella sezione Configurazione del profilo Fargate cambierà da In fase di creazione ad Attivo. Non proseguire con il passaggio successivo finché lo stato non è Attivo.

  9. Se prevedi di implementare tutti i Pods in Fargate (nessuno sui nodi Amazon EC2), completa la seguente procedura per creare un altro profilo Fargate ed eseguire il resolver di nomi predefinito (CoreDNS) su Fargate.

    Nota

    Se non si effettua questa operazione, in questa fase non si avrà alcun nodo.

    1. Nella pagina Fargate Profile (Profilo Fargate), scegli my-profile.

    2. Nella sezione Profili Fargate, scegliere Aggiungi profilo Fargate.

    3. Per Nome, immetti CoreDNS.

    4. Per il ruolo di esecuzione del Pod, scegli gli FargatePodExecutionRoleAmazonEks che hai creato in un passaggio precedente.

    5. Seleziona l'elenco a discesa Subnets (Sottoreti) e deseleziona qualsiasi sottorete il cui nome contenga Public. I Pods in esecuzione su Fargate supportano solo sottoreti private.

    6. Seleziona Successivo.

    7. Per Namespace (Spazio dei nomi), immettere kube-system.

    8. Scegliere Match labels (Abbina etichette), quindi Add label (Aggiungi etichetta).

    9. Immettere k8s-app per Key (Chiave) e kube-dns per il valore. Ciò è necessario affinché il resolver di nomi predefinito (CoreDNS) venga implementato in Fargate.

    10. Seleziona Successivo.

    11. Nella pagina Rivedi e crea, controlla le informazioni relative al profilo Fargate e scegli Crea.

    12. Utilizza il comando seguente per rimuovere l'annotazione eks.amazonaws.com/compute-type : ec2 di default dai Pods CoreDNS.

      kubectl patch deployment coredns \ -n kube-system \ --type json \ -p='[{"op": "remove", "path": "/spec/template/metadata/annotations/eks.amazonaws.com~1compute-type"}]'
    Nota

    Il sistema crea e implementa due nodi in base all'etichetta del profilo Fargate aggiunta. In Node groups (Gruppi di nodi) non visualizzerai nulla perché non sono applicabili per nodi Fargate, ma vedrai i nuovi nodi elencati nella scheda Overview (Panoramica).

Managed nodes – Linux

Creare un gruppo di nodi gestito specificando le sottoreti e il ruolo IAM del nodo creato nei passaggi precedenti.

Creazione di un gruppo di nodi gestiti Linux di Amazon EC2
  1. Creare un ruolo IAM del nodo e allegarvi la policy gestita IAM di Amazon EKS richiesta. Il kubelet daemon del nodo Amazon EKS effettua chiamate alle AWS API per tuo conto. I nodi ricevono le autorizzazioni per queste chiamate API attraverso un profilo dell'istanza IAM e le policy associate.

    1. Copiare i seguenti contenuti in un file denominato node-role-trust-policy.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Creare il ruolo IAM del nodo.

      aws iam create-role \ --role-name myAmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-policy.json"
    3. Allegare al ruolo le policy gestite IAM richieste.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name myAmazonEKSNodeRole
  2. Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  3. Scegliere il nome del cluster creato in Fase 1: Creazione del cluster Amazon EKS;, ad esempio my-cluster.

  4. Sulla pagina my-cluster, completare le seguenti operazioni:

    1. Scegliere la scheda Compute (Calcolo).

    2. Scegliere Add Node Group (Aggiungi gruppo di nodi).

  5. Nella pagina Configure Node Group (Configura gruppo di nodi), effettuare le seguenti operazioni:

    1. Per Nome, immettere un nome univoco per il gruppo di nodi gestiti, ad esempio my-nodegroup. Il nome del gruppo di nodi non può contenere più di 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura.

    2. Per il nome del ruolo IAM di Node, scegli il ruolo MyAmazoneKS che hai creato in NodeRole un passaggio precedente. Consigliamo che ciascun gruppo di nodi utilizzi il proprio ruolo IAM univoco.

    3. Seleziona Successivo.

  6. Sulla pagina Set compute and scaling configuration (Impostazione della configurazione di calcolo e dimensionamento) accettare i valori di default e selezionare Next (Successivo).

  7. Nella pagina Specify networking (Specifica rete), accettare i valori di default e selezionare Next (Successivo).

  8. Nella pagina Rivedi e crea, controlla la configurazione del gruppo di nodi gestiti e scegli Crea.

  9. Dopo alcuni minuti, lo Stato nella Configurazione del gruppo di nodi cambierà da In fase di creazione a Attivo. Non proseguire con il passaggio successivo finché lo stato non è Attivo.

Fase 4: Visualizzazione delle risorse

Puoi visualizzare i nodi e i carichi di lavoro Kubernetes.

Visualizzazione di nodi e carichi di lavoro
  1. Nel pannello di navigazione a sinistra, seleziona Cluster. Nell'elenco Clusters (Cluster), scegli il nome del cluster che hai creato, ad esempio my-cluster.

  2. Nella pagina my-cluster, scegli le opzioni seguenti:

    1. Scheda Calcolo: verrà visualizzato l'elenco di nodi che sono stati implementati per il cluster. È possibile scegliere il nome di un nodo per visualizzare ulteriori informazioni su di esso.

    2. Scheda Resources (Risorse): verranno visualizzate tutte le risorse Kubernetes che sono state implementate per impostazione predefinita in un cluster Amazon EKS. Seleziona qualsiasi tipo di risorsa nella console per avere ulteriori informazioni in merito.

Fase 5. Eliminazione delle risorse

Dopo aver creato il cluster e i nodi per questo tutorial, devi eliminare le risorse create. Per eseguire altre operazioni con questo cluster prima di eliminare le risorse, consultare Passaggi successivi.

Eliminazione delle risorse create in questa guida
  1. Eliminare qualsiasi gruppo di nodi o i profili Fargate creati.

    1. Apri la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

    2. Nel pannello di navigazione a sinistra, seleziona Cluster. Nell'elenco di cluster, scegliere my-cluster.

    3. Scegli la scheda Calcolo.

    4. Se hai creato un gruppo di nodi, cegli il gruppo di nodi my-nodegroup quindi seleziona Delete (Elimina). Immettere my-nodegroup, quindi scegliere Delete (Elimina).

    5. Per ogni profilo Fargate creato, selezionarlo e poi scegliere Delete (Elimina). Immettere il nome del profilo, quindi selezionare Delete (Elimina).

      Nota

      Quando si elimina un secondo profilo Fargate, potrebbe essere necessario attendere il completamento dell'eliminazione del primo.

    6. Non continuare fino a quando il gruppo di nodi o i profili Fargate eliminati.

  2. Elimina il cluster.

    1. Nel pannello di navigazione a sinistra, seleziona Cluster. Nell'elenco di cluster, scegliere my-cluster.

    2. Scegli Delete cluster (Elimina cluster).

    3. Immetti my-cluster, quindi scegli Elimina. Non continuare fino a quando il cluster non sarà stato eliminato.

  3. Elimina lo AWS CloudFormation stack VPC che hai creato.

    1. Apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation.

    2. Scegli lo stack my-eks-vpc-stack, quindi seleziona Delete (Elimina).

    3. Nella finestra di dialogo di my-eks-vpc-stackconferma dell'eliminazione, scegli Elimina pila.

  4. Elimina i ruoli IAM creati.

    1. Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

    2. Nel pannello di navigazione a sinistra, seleziona Ruoli.

    3. Seleziona ogni ruolo che hai creato dall'elenco (myAmazoneksClusterRole, oltre a AmazoneKS o myAmazoneKS). FargatePodExecutionRole NodeRole Scegliere Delete (Elimina), inserire il testo di conferma richiesto, quindi scegliere Delete (Elimina).

Passaggi successivi

I seguenti argomenti della documentazione consentono di estendere la funzionalità del cluster.