Als je een AWS Elastic Kubernetes Service (Amazon EKS) cluster wilt opzetten met Terraform, heb je geluk. Door gebruik te maken van de Terraform EKS-module en alle andere benodigde middelen, kun je één Terraform-configuratie maken en een AKS-cluster met code aanmaken.
Amazon EKS is een beheerde service om Kubernetes op AWS uit te voeren zonder je eigen Kubernetes-cluster te installeren, te bedienen en te onderhouden. Het bouwen van een EKS-cluster met Terraform stelt je in staat om snel, efficiënt en op geautomatiseerde wijze middelen aan te maken.
In deze tutorial leer je stap voor stap hoe je een Terraform-configuratie kunt maken en uitvoeren om een EKS-cluster met Terraform op te zetten. Laten we beginnen!
Vereisten
Deze post zal een stapsgewijze handleiding zijn. Als je wilt meedoen, zorg er dan voor dat je het volgende hebt:
- Een Amazon Web Service (AWS)-account.
- 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 – Deze tutorial zal Terraform v0.14.9 gebruiken dat draait op Ubuntu 18.04.5 LTS, maar elk besturingssysteem met Terraform zou moeten werken.
Het opbouwen van de Terraform-configuratie voor een AWS EKS-cluster
Terraform is een hulpmiddel voor infrastructuur als code dat u in staat stelt om op een veilige en efficiënte manier infrastructuur te bouwen, te wijzigen en te versie. Terraform maakt gebruik van verschillende soorten configuratiebestanden. Elk bestand is geschreven in ofwel platte tekst (.tf) of JSON-formaat (.tfjson).
Laten we eerst een Terraform-configuratie maken die een AKS-cluster vanaf nul zal maken wanneer toegepast.
1. Open een terminal.
2. Maak een map genaamd ~/terraform-eks-cluster-demo, en verander vervolgens (cd
) de werkmap naar die map. Deze map bevat alle configuratiebestanden waarmee u gaat werken.
3. Open vervolgens uw favoriete code-editor en kopieer/plak de volgende configuratie, en sla het op in een bestand genaamd main.tf binnen de ~/terraform-eks-cluster-demo. Dit main.tf bestand is de Terraform-configuratie voor het AKS-cluster.
Het main.tf bestand bevat alle bronnen die nodig zijn om een EKS-cluster te voorzien:
- Een AWS Identity and Access Management (IAM)-rol (
terraformekscluster
) – Deze bron wordt beheerd door Amazon EKS en maakt namens u oproepen naar andere AWS-services zoals AWS S3, CloudWatch, enzovoort, om de resources die u gebruikt met de service te beheren. - Een AWS EC2-beveiligingsgroep (
resource "aws_security_group" "eks-cluster"
) – Hiermee wordt inkomend en uitgaand netwerkverkeer vanuit de AWS EKS-cluster toegestaan. U start een beveiligingsgroep met de naamSG-eks-cluster
die is gekoppeld via een VPC-ID, waardoor al het verkeer van en naar de cluster kan stromen.0.0.0.0/0
is het IP-adres van het internet. - EKS-cluster (
terraformEKScluster
) – Dit EKS-cluster zalversie 1.19
zijn. - Een IAM-rol voor EKS-nodes om oproepen te doen naar andere AWS-services (
eks-node-group
). Deze rol is gekoppeld aan een beleid dat het aannemen van tijdelijke beveiligingsreferenties op de instantie toestaat om andere AWS-resources te openen. - EKS-cluster-nodegroep (
node_group1
) – Deze bron bepaalt het aantal nodes dat een cluster zal hebben via het attribuutscaling_config
.
4. Maak een ander bestand in ~/terraform-eks-cluster-demo noem het provider.tf en plak de onderstaande inhoud. Het providerbestand definieert providers zoals AWS, Oracle, of Azure, enz., zodat Terraform verbinding kan maken met de juiste cloudservices.
De tutorial zal resources creëren in de regio us-east-2.
5. Controleer of alle benodigde bestanden hieronder aanwezig zijn in de map door het tree
-commando uit te voeren.

Maak de AWS EKS-cluster aan met een Terraform EKS-module
Nu je het Terraform-configuratiebestand en variabelenbestanden klaar hebt staan, is het tijd om Terraform te starten en het cluster te maken. Om het AKS-cluster in te richten, gebruikt Terraform, zoals bij alle andere Terraform-configuraties, drie commando’s (terraform init → terraform plan → terraform apply).
Laten we nu elke fase doornemen.
1. Open een terminal en navigeer naar de ~/terraform-eks-cluster-demo
map. cd ~/terraform-eks-cluster-demo
2. Voer het terraform init
-commando uit in dezelfde map. Het terraform init
-commando initialiseert de plugins en providers die nodig zijn om met resources te werken.
Als alles goed gaat, zou je het bericht Terraform is succesvol geïnitialiseerd in de uitvoer moeten zien, zoals hieronder weergegeven.

3. Voer nu het terraform plan
commando uit. Het uitvoeren van terraform plan
is niet noodzakelijk maar wel aan te raden om ervoor te zorgen dat de syntaxis van je configuratiebestanden correct is en je een blauwdruk geeft van de resources die in je infrastructuur worden voorzien.
Als het succesvol is, zou je een bericht als Plan: “X” toe te voegen, “Y” te wijzigen, of “Z” te vernietigen in de uitvoer moeten zien.

4. Voer vervolgens terraform apply
uit om de trainingswielen te verwijderen en Terraform aan te roepen om de AKS-cluster te maken. Het aanroepen van terraform apply
leest elke configuratie (*.tf) in de huidige directory om een statusbestand samen te stellen dat naar AWS wordt verzonden om de EKS-cluster en andere componenten te bouwen.
AWS rekent $0.10 per uur voor elke EKS-cluster. Zorg ervoor dat je eventuele testclusters die je hebt gemaakt, vernietigt!

Verifiëren van de AWS EKS-cluster
Op dit punt zou je een functionerende AKS-cluster moeten hebben gebouwd, maar laten we verifiëren om er zeker van te zijn in de AWS Management Console.
1. Open je favoriete webbrowser, navigeer naar de AWS Management Console en log in.
2. Klik op de zoekbalk bovenaan, zoek naar EKS, en klik op het menu-item Elastic Kubernetes Service. Je zou de terraformEKScluster EKS-cluster moeten zien.


3. Klik op Configuratie, en je zou elk component moeten zien dat succesvol is aangemaakt zoals gedefinieerd in de Terraform-configuratie, zoals hieronder getoond.



Conclusie
In deze handleiding heb je geleerd hoe je Terraform kunt gebruiken om een AWS EKS-cluster en de bijbehorende componenten te implementeren. Je bent nu klaar om dit EKS-cluster te gebruiken en applicaties te implementeren!
Welke applicaties ben je van plan te implementeren op je nieuw gevonden cluster?