Menu

Per questa pagina è stata utilizzata la traduzione automatica. Alcuni contenuti potrebbero non essere perfetti.

Condividi feedback

Architettura AWS EKS: cluster, nodi e reti

Sommario

Condivi questa pagina

Yifat Perry
Yifat Perry

Che cos'è AWS EKS?

Amazon Elastic Kubernetes Service (Amazon EKS) è un servizio AWS Kubernetes gestito che scala, gestisce e distribuisce applicazioni containerizzate. In genere viene eseguito nel cloud pubblico di Amazon, ma può anche essere distribuito on-premises. L'infrastruttura di gestione Kubernetes di Amazon EKS viene eseguita su più Availability Zones (AZ). AWS EKS è certificato conforme a Kubernetes, il che significa che è possibile integrare EKS con gli strumenti esistenti.

In questo articolo imparerai:

Come funziona Amazon EKS?

I cluster EKS sono composti dai seguenti componenti principali: un piano di controllo e nodi worker. Ogni cluster viene eseguito nel proprio Virtual Private Cloud (VPC) completamente gestito.

Il piano di controllo è composto da tre nodi master, ognuno in esecuzione in una diversa AZ per garantire AWS high availability. Il traffico in entrata diretto all'API Kubernetes passa attraverso il bilanciatore del carico di rete (NLB) di AWS.

I nodi worker vengono eseguiti su istanze Amazon EC2 situate in una VPC, che non è gestita da AWS. Puoi controllare e configurare la VPC allocata per i worker nodes. È possibile utilizzare SSH per fornire accesso all'automazione esistente o per fornire nodi di lavoro.

Esistono due opzioni principali di implementazione. Puoi effettuare il deployment di un cluster per ogni ambiente o applicazione. In alternativa, è possibile definire criteri di sicurezza IAM e spazi dei nomi Kubernetes per distribuire un cluster per più applicazioni.

Per limitare il traffico tra il piano di controllo e un cluster, EKS fornisce policy di rete Amazon VPC. Solo i cluster e gli account autorizzati, definiti dal controllo degli accessi in base al ruolo (RBAC) di Kubernetes, possono visualizzare o comunicare con i componenti del piano di controllo.

Il diagramma seguente illustra il processo di distribuzione di un cluster su EKS: si dà istruzione a EKS di effettuare il provisioning di un cluster, le risorse cloud vengono fornite in background e quindi è possibile connettersi al cluster Kubernetes ed eseguire i carichi di lavoro.

Fonte immagine: AWS

Componenti AWS EKS

L'architettura AWS EKS è composta dai seguenti componenti principali: cluster, nodi e networking.

Cluster Amazon EKS

I cluster sono costituiti da un control plane e da nodi EKS.


Piano di controllo EKS

Il piano di controllo viene eseguito su un set dedicato di istanze EC2 in un account AWS gestito da Amazon e fornisce un endpoint API accessibile dalle tue applicazioni. Viene eseguito in modalità single-tenant ed è responsabile del controllo dei nodi master di Kubernetes, come l'API Server e etcd.

I dati su etcd sono crittografati tramite Amazon Key Management (KMS). I nodi master di Kubernetes sono distribuiti su diverse AWS availability zones (AZ) e il traffico è gestito da Elastic Load Balancer (ELB).


Nodi EKS

I nodi worker Kubernetes vengono eseguiti su istanze EC2 nell'account AWS della tua organizzazione. Usano l'API endpoint per connettersi al control plane, tramite un file di certificato. Per ogni cluster viene utilizzato un certificato unico.

Contenuto correlato: AWS Kubernetes Cluster: Quick Setup with EC2 and EKS

Nodi Amazon EKS

I cluster Amazon EKS possono pianificare i pod utilizzando tre metodi principali.


Nodi autogestiti

Un "nodo" in EKS è un'istanza Amazon EC2 su cui è possibile pianificare i pod Kubernetes. I pod si connettono all'API endpoint del cluster EKS. I nodes sono organizzati in node groups. Tutte le istanze EC2 in un gruppo di nodi devono avere le stesse caratteristiche:

  • Tipo di istanza Amazon
  • Amazon Machine Image (IAM)
  • Ruolo IAM

Puoi avere diversi gruppi di nodi in un cluster, ognuno dei quali rappresenta un diverso tipo di istanza o istanze con un ruolo diverso.


Gruppi di nodi gestiti

Amazon EKS fornisce gruppi di nodi gestiti con gestione automatizzata del ciclo di vita. Questo ti permette di creare, aggiornare o terminare automaticamente i nodes con una sola operazione. EKS utilizza le più recenti Amazon Linux AMI ottimizzate per l'uso con EKS. Quando termini i nodes, EKS li svuota in modo controllato per assicurare che non ci siano interruzioni di servizio. È possibile applicare facilmente le etichette Kubernetes a un intero gruppo di nodi per scopi di gestione.

I nodi gestiti vengono utilizzati tramite gruppi EC2 Auto Scaling gestiti dal servizio Amazon EKS. Puoi definire in quali availability zones i gruppi devono essere eseguiti. Esistono diversi modi per avviare gruppi di nodi gestiti, tra cui la console EKS, eksctl, Amazon CLI, Amazon API o strumenti di automazione Amazon, tra cui CloudFormation.


Amazon Fargate

È possibile utilizzare Amazon Fargate, un servizio container serverless, per eseguire nodi di lavoro senza gestire l'infrastruttura server sottostante. Fargate ti addebita solo per le vCPU e la memoria effettivamente utilizzate. Fornisce più risorse di calcolo in base alle effettive esigenze dei nodi del cluster.

Networking di Amazon EKS

Il diagramma seguente mostra l'architettura di rete di un cluster EKS:

Fonte immagine: AWS

Un cluster Amazon EKS opera in un Virtual Private Cloud (VPC), una rete privata sicura all'interno di un data center Amazon. EKS distribuisce tutte le risorse su una subnet esistente in una VPC che selezioni, in una Amazon Region.

Interfacce di rete utilizzate dal piano di controllo EKS

Il piano di controllo EKS viene eseguito in una VPC gestita da Amazon. Crea e gestisce le network interfaces nel tuo account relative a ciascun EKS cluster che crei. Le istanze EC2 e Fargate utilizzano queste interfacce di rete per connettersi al piano di controllo EKS.

Per impostazione predefinita, EKS espone un endpoint pubblico. Se desideri maggiore sicurezza per il tuo cluster, puoi abilitare un endpoint privato e/o limitare l'accesso a specifici indirizzi IP. È possibile configurare la connettività tra reti locali o altre VPC e la VPC utilizzata dal cluster EKS.


Networking per i nodi EKS

Ogni istanza EC2 utilizzata dal cluster EKS esiste in una subnet. Hai due opzioni per definire il networking:

  • Utilizza i template AWS CloudFormation per creare subnet—in questo caso, ai nodi nelle subnet pubbliche viene assegnato un IP pubblico e un IP privato dal blocco CIDR utilizzato dalla subnet.
  • Utilizza il networking personalizzato tramite Container Networking Interface (CNI)—questo consente di assegnare indirizzi IP ai pod da qualsiasi subnet, anche se l'istanza EC2 non fa parte della subnet. Devi abilitare il networking personalizzato quando avvii i nodi.

Archiviazione AWS EKS con Cloud Volumes ONTAP

NetApp Cloud Volumes ONTAP, la soluzione leader nella gestione dello storage enterprise, offre servizi di gestione dello storage sicuri e comprovati su AWS, Azure e Google Cloud. Cloud Volumes ONTAP supporta una capacità massima di 368TB e supporta vari casi d'uso come file services, database, DevOps o qualsiasi altro carico di lavoro enterprise, con un solido set di funzionalità tra cui high availability, data protection, storage efficiencies, integrazione con Kubernetes e altro ancora.

In particolare, Cloud Volumes ONTAP supporta il provisioning e la gestione dei volumi persistenti di Kubernetes richiesti dai carichi di lavoro containerizzati.

Drift chat loading