Configurazione di un cluster Amazon EKS - Amazon EMR

Configurazione di un cluster Amazon EKS

Amazon EKS è un servizio gestito che consente di eseguire facilmente Kubernetes su AWS senza la necessità di installare, sostenere o mantenere dei nodi di lavoro o un piano di controllo Kubernetes. Segui la procedura descritta di seguito per creare un nuovo cluster Kubernetes con nodi in Amazon EKS.

Prerequisiti

Importante

Prima di creare un cluster Amazon EKS, completa i requisiti e le considerazioni relativi a VPC e sottorete di Amazon EKS nella Guida per l'utente di Amazon EKS per garantire che i cluster Amazon EKS funzionino e ed effettuino il dimensionamento come previsto.

Devi installare e configurare gli strumenti e le risorse elencati di seguito, che sono necessari per creare e gestire un cluster Amazon EKS:

  • La versione più recente della AWS CLI.

  • kubectl 1.20 o versione successiva.

  • La versione più recente di eksctl.

Per ulteriori informazioni, consulta Installazione di AWS CLI, Installazione di kubectl e Installazione di eksctl.

Creazione di un cluster Amazon EKS con eksctl

Completa la procedura seguente per creare un cluster Amazon EKS utilizzando eksctl.

Importante

Per metterti subito al lavoro, è possibile creare un cluster EKS e i nodi di lavoro con impostazioni predefinite. Tuttavia, per l'utilizzo in produzione, è consigliabile personalizzare le impostazioni per il cluster e i nodi di lavoro in modo da soddisfare i requisiti specifici. Per un elenco di tutte le impostazioni e opzioni disponibili, esegui il comando eksctl create cluster -h. Per ulteriori informazioni, consulta Creazione e gestione di cluster nella documentazione di eksctl.

  1. Crea una coppia di chiavi Amazon EC2.

    Se non è presente una coppia di chiavi esistente, è possibile eseguire questo comando per creare una nuova coppia di chiavi. Sostituisci us-west-2 con la Regione in cui desideri creare il cluster.

    aws ec2 create-key-pair --region us-west-2 --key-name myKeyPair

    Salva l'output restituito in un file sul computer locale. Per ulteriori informazioni sulla creazione di una coppia di chiavi, consulta Creazione o importazione di una coppia di chiavi nella Guida per l'utente di Amazon EC2 per le istanze Linux.

    Nota

    Non è necessaria una coppia di chiavi per la creazione di un cluster EKS. Tuttavia, specificare la coppia di chiavi ti consente di accedere con il protocollo SSH ai nodi di lavoro una volta creati. È possibile specificare una coppia di chiavi solo quando si crea il gruppo di nodi.

  2. Crea un cluster EKS.

    Esegui il comando seguente per creare un cluster EKS e dei nodi di lavoro. Sostituisci my-cluster e myKeyPair con il nome del cluster e il nome della coppia di chiavi. Sostituisci us-west-2 con la Regione in cui desideri creare il cluster. Per ulteriori informazioni sulle Regioni supportate da Amazon EKS, consulta Endpoint e quote di servizio Amazon Elastic Kubernetes.

    eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --with-oidc \ --ssh-access \ --ssh-public-key myKeyPair \ --instance-types=m5.xlarge \ --managed
    Importante

    Quando crei un cluster EKS, utilizza m5.xlarge come tipo di istanza o qualsiasi altro tipo di istanza con CPU e memoria superiori. L'utilizzo di un tipo di istanza con CPU o memoria inferiore rispetto a m5.xlarge può causare errori di processo a causa di risorse insufficienti disponibili nel cluster. Per visualizzare tutte le risorse create, visualizza lo stack denominato eksctl-my-cluster-cluster nella Console AWS CloudFormation.

    Per il completamento del processo di creazione del cluster e dei nodi sono necessari diversi minuti. Vengono visualizzate diverse righe di output durante la creazione del cluster e dei nodi di lavoro. L'esempio seguente mostra l'ultima riga di output.

    ... [✓] EKS cluster "my-cluster" in "us-west-2" region is ready

    eksctl ha creato un file di configurazione kubectl in ~/.kube o ha aggiunto la configurazione del nuovo cluster all'interno di un file di configurazione esistente in ~/.kube.

  3. Visualizzazione e convalida delle risorse

    Esegui questo comando per visualizzare i nodi del cluster.

    kubectl get nodes -o wide

    Di seguito viene mostrato un output di esempio.

    Amazon EC2 node output NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-168-12-49.us-west-2.compute.internal Ready none 6m7s v1.18.9-eks-d1db3c 192.168.12.49 52.35.116.65 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6 ip-192-168-72-129.us-west-2.compute.internal Ready none 6m4s v1.18.9-eks-d1db3c 192.168.72.129 44.242.140.21 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6

    Per ulteriori informazioni, consulta Visualizzazione di nodi.

    Utilizza questo comando per visualizzare i carichi di lavoro in esecuzione nel cluster.

    kubectl get pods --all-namespaces -o wide

    Di seguito viene mostrato un output di esempio.

    Amazon EC2 output NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-6ctpm 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal none none kube-system aws-node-cbntg 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal none none kube-system coredns-559b5db75d-26t47 1/1 Running 0 14m 192.168.78.81 ip-192-168-72-129.us-west-2.compute.internal none none kube-system coredns-559b5db75d-9rvnk 1/1 Running 0 14m 192.168.29.248 ip-192-168-12-49.us-west-2.compute.internal none none kube-system kube-proxy-l8pbd 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal none none kube-system kube-proxy-zh85h 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal none none

    Per ulteriori informazioni sulle autorizzazioni visualizzate, consulta Visualizzazione dei carichi di lavoro.

Creazione di un cluster EKS utilizzando AWS Management Console e AWS CLI

È possibile utilizzare anche AWS Management Console e AWS CLI per creare un cluster EKS. Segui la procedura riportata in Nozioni di base su Amazon EKS - AWS Management Console e AWS CLI. Questo ti consente di visualizzare il modo in cui ogni risorsa viene creata per il cluster EKS e il modo in cui le risorse interagiscono tra loro.

Importante

Quando crei dei nodi di lavoro per un cluster EKS, utilizza m5.xlarge come tipo di istanza o qualsiasi altro tipo di istanza con CPU e memoria superiori.

Creazione di un cluster EKS con AWS Fargate

È inoltre possibile creare un cluster EKS con pod in esecuzione su AWS Fargate.

  1. Per creare un cluster EKS con pod in esecuzione su Fargate, segui la procedura descritta in Nozioni di base su AWS Fargate utilizzando Amazon EKS.

    Nota

    Amazon EMR su EKS richirede CoreDNS per l'esecuzione di processi sul cluster EKS. Se desideri eseguire i pod solo su Fargate, segui la procedura riportata in Aggiornamento di CoreDNS.

  2. Esegui questo comando per visualizzare i nodi del cluster.

    kubectl get nodes -o wide

    Di seguito viene mostrato un output Fargate di esempio.

    Fargate node output NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-168-141-147.us-west-2.compute.internal Ready none 8m3s v1.18.8-eks-7c9bda 192.168.141.147 none Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2 fargate-ip-192-168-164-53.us-west-2.compute.internal Ready none 7m30s v1.18.8-eks-7c9bda 192.168.164.53 none Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2

    Per ulteriori informazioni, consulta Visualizzazione di nodi.

  3. Esegui questo comando per visualizzare i carichi di lavoro in esecuzione nel cluster.

    kubectl get pods --all-namespaces -o wide

    Di seguito viene mostrato un output Fargate di esempio.

    Fargate output NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-69dfb8f894-9z95l 1/1 Running 0 18m 192.168.164.53 fargate-ip-192-168-164-53.us-west-2.compute.internal none none kube-system coredns-69dfb8f894-c8v66 1/1 Running 0 18m 192.168.141.147 fargate-ip-192-168-141-147.us-west-2.compute.internal none none

    Per ulteriori informazioni, consulta Visualizzazione di carichi di lavoro.