Se hai bisogno di configurare un cluster AWS Elastic Kubernetes Service (Amazon EKS) con Terraform, sei fortunato. Utilizzando il modulo Terraform EKS e tutte le altre risorse necessarie, puoi creare una configurazione Terraform e creare un cluster AKS con il codice.
Amazon EKS è un servizio gestito per eseguire Kubernetes su AWS senza installare, gestire e mantenere il proprio cluster Kubernetes. La creazione di un cluster EKS con Terraform consente di creare risorse in modo rapido, efficiente e automatizzato.
In questo tutorial, imparerai come creare e eseguire una configurazione Terraform per creare un cluster EKS passo dopo passo. Iniziamo!
Prerequisiti
Questo post sarà un tutorial passo dopo passo. Se desideri seguirla, assicurati di avere quanto segue:
- Un account Amazon Web Service (AWS).
- A code editor – Even though you can use any text editor to work with Terraform configuration files, you should consider Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform – Questo tutorial utilizzerà Terraform v0.14.9 in esecuzione su Ubuntu 18.04.5 LTS, ma qualsiasi sistema operativo con Terraform dovrebbe funzionare.
Creazione della configurazione di Terraform per un cluster AWS EKS
Terraform è un tool di infrastruttura come codice che consente di creare, modificare e versionare in modo sicuro ed efficiente l’infrastruttura. Terraform utilizza diversi tipi di file di configurazione. Ogni file è scritto in formato testo (.tf) o in formato JSON (.tfjson).
Creiamo innanzitutto una configurazione di Terraform che creerà un cluster AKS da zero quando verrà applicata.
1. Apri un terminale.
2. Crea una cartella chiamata ~/terraform-eks-cluster-demo, quindi cambia (cd) la directory di lavoro in quella cartella. Questa cartella conterrà tutti i file di configurazione con cui lavorerai.
3. Successivamente, apri il tuo editor di codice preferito e copia/incolla la seguente configurazione, quindi salvala in un file main.tf all’interno della cartella ~/terraform-eks-cluster-demo. Questo file main.tf è la configurazione di Terraform per il cluster AKS.
Il file main.tf contiene tutte le risorse necessarie per la fornitura di un cluster EKS:
- Un ruolo di Identity and Access Management (IAM) di AWS (
terraformekscluster
) – questa risorsa sarà gestita da Amazon EKS e effettuerà chiamate ad altri servizi AWS come AWS S3, CloudWatch, ecc., per tuo conto per gestire le risorse che utilizzi con il servizio. - Un gruppo di sicurezza EC2 di AWS (
risorsa "aws_security_group" "eks-cluster"
) – consente il traffico di rete in entrata e in uscita dal cluster AWS EKS. Verrà creato un gruppo di sicurezza denominatoSG-eks-cluster
collegato a un ID VPC, consentendo a tutto il traffico di fluire dentro/fuori dal cluster.0.0.0.0/0
è l’indirizzo IP di Internet. - Cluster EKS (
terraformEKScluster
) – Questo cluster EKS avrà la versione 1.19. - Un ruolo IAM per i nodi EKS per effettuare chiamate ad altri servizi AWS (
eks-node-group
). Questo ruolo è collegato a una policy che consente di assumere le credenziali di sicurezza temporanee sull’istanza per accedere ad altre risorse AWS. - Gruppo di nodi del cluster EKS (
node_group1
) – questa risorsa definisce il numero di nodi che avrà un cluster tramite l’attributoscaling_config
.
4. Crea un altro file in ~/terraform-eks-cluster-demo chiamato provider.tf e incolla il contenuto di seguito. Il file del provider definisce i provider come AWS, Oracle o Azure, ecc., in modo che Terraform possa connettersi ai servizi cloud corretti.
Il tutorial creerà risorse nella regione us-east-2.
5. Verificare che tutti i file richiesti siano presenti nella cartella eseguendo il comando tree
.

Creazione del cluster AWS EKS con un modulo EKS di Terraform
Ora che hai il file di configurazione di Terraform e i file di variabili pronti, è ora di inizializzare Terraform e creare il cluster. Per fornire il cluster AKS, come per tutte le altre configurazioni di Terraform, Terraform utilizza tre comandi (terraform init → terraform plan → terraform apply).
Ora vediamo ogni fase.
1. Aprire un terminale e navigare nella directory ~/terraform-eks-cluster-demo
. cd ~/terraform-eks-cluster-demo
2. Eseguire il comando terraform init
nella stessa directory. Il comando terraform init
inizializza i plugin e i provider necessari per lavorare con le risorse.
Se tutto va bene, dovresti vedere il messaggio Terraform è stato inizializzato con successo nell’output, come mostrato di seguito.

3. Ora, esegui il comando terraform plan
. Eseguire terraform plan
non è necessario, ma è consigliato per assicurarti che la sintassi dei file di configurazione sia corretta e ottenere una panoramica delle risorse che verranno create nella tua infrastruttura.
Se tutto va bene, dovresti vedere un messaggio come Piano: “X” da aggiungere, “Y” da modificare o “Z” da eliminare nell’output.

4. Successivamente, esegui terraform apply
per rimuovere le protezioni per principianti e invocare Terraform per creare il cluster AKS. L’invocazione di terraform apply
legge ogni file di configurazione (*.tf) nella directory corrente per compilare un file di stato inviato ad AWS per creare il cluster EKS e altri componenti.
AWS addebita $0,10 all’ora per ogni cluster EKS. Assicurati di eliminare eventuali cluster di test creati una volta terminato!

Verifica del cluster AWS EKS
A questo punto, dovresti avere un cluster AKS funzionante, ma verifichiamo per essere sicuri nella Console di gestione di AWS.
1. Apri il tuo browser preferito, vai alla Console di gestione di AWS e accedi.
2. Fai clic sulla barra di ricerca in alto, cerca EKS e fai clic sulla voce di menu Elastic Kubernetes Service. Dovresti vedere il cluster EKS terraformEKScluster.


3. Clicca su Configurazione, e dovresti vedere ogni componente creato con successo che hai definito nella configurazione Terraform, come mostrato di seguito.



Conclusioni
In questo tutorial, hai imparato come utilizzare Terraform per distribuire un cluster AWS EKS e i suoi componenti. Sei ora pronto a utilizzare questo cluster EKS e a distribuire applicazioni!
Quali applicazioni hai intenzione di distribuire sul tuo nuovo cluster?