Wenn Sie einen AWS Elastic Kubernetes Service (Amazon EKS)-Cluster mit Terraform einrichten müssen, haben Sie Glück. Mit dem Terraform EKS-Modul und allen anderen erforderlichen Ressourcen können Sie eine Terraform-Konfiguration erstellen und einen AKS-Cluster mit Code erstellen.
Amazon EKS ist ein verwalteter Dienst zum Ausführen von Kubernetes auf AWS, ohne Ihren eigenen Kubernetes-Cluster zu installieren, zu betreiben und zu warten. Das Erstellen eines EKS-Clusters mit Terraform ermöglicht es Ihnen, Ressourcen schnell, effizient und mit einem automatisierten Ansatz zu erstellen.
In diesem Tutorial erfahren Sie, wie Sie schrittweise eine Terraform-Konfiguration erstellen, um einen EKS-Cluster mit Terraform zu erstellen. Fangen wir an!
Voraussetzungen
Dieser Beitrag wird ein schrittweises Tutorial sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes bereit haben:
- Ein Amazon Web Service (AWS) Konto.
- 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 – Dieses Tutorial verwendet Terraform v0.14.9 unter Ubuntu 18.04.5 LTS, aber jedes Betriebssystem mit Terraform sollte funktionieren.
Erstellen der Terraform-Konfiguration für einen AWS EKS-Cluster
Terraform ist ein Infrastruktur als Code-Werkzeug, das es Ihnen ermöglicht, Infrastruktur sicher und effizient zu erstellen, zu ändern und zu versionieren. Terraform verwendet verschiedene Arten von Konfigurationsdateien. Jede Datei ist entweder im PlainText-Format (.tf) oder im JSON-Format (.tfjson) geschrieben.
Lassen Sie uns zunächst eine Terraform-Konfiguration erstellen, die bei Anwendung einen AKS-Cluster von Grund auf erstellt.
1. Öffnen Sie ein Terminal.
2. Erstellen Sie einen Ordner namens ~/terraform-eks-cluster-demo, und ändern Sie dann (cd
) das Arbeitsverzeichnis zu diesem Ordner. Dieser Ordner wird alle Konfigurationsdateien enthalten, mit denen Sie arbeiten werden.
3. Öffnen Sie als Nächstes Ihren bevorzugten Code-Editor und kopieren Sie/Fügen Sie die folgende Konfiguration ein und speichern Sie sie in einer Datei main.tf innerhalb von ~/terraform-eks-cluster-demo. Diese main.tf Datei ist die Terraform-Konfiguration für den AKS-Cluster.
Die main.tf Datei enthält alle erforderlichen Ressourcen zum Bereitstellen eines EKS-Clusters:
- Eine AWS Identity and Access Management (IAM)-Rolle (`terraformekscluster`) – Diese Ressource wird von Amazon EKS verwaltet und ruft im Auftrag von Ihnen andere AWS-Dienste wie AWS S3, CloudWatch usw. auf, um die von Ihnen mit dem Dienst verwendeten Ressourcen zu verwalten.
- Eine AWS EC2-Sicherheitsgruppe (`resource „aws_security_group“ „eks-cluster“`) – Ermöglicht den eingehenden und ausgehenden Netzwerkverkehr vom AWS EKS-Cluster. Sie werden eine Sicherheitsgruppe namens `SG-eks-cluster` starten, die über eine VPC-ID angehängt ist und es allen Verkehr erlaubt, in/out vom Cluster zu fließen. `0.0.0.0/0` ist die IP-Adresse des Internets.
- EKS-Cluster (`terraformEKScluster`) – Dieser EKS-Cluster wird `Version 1.19` sein.
- Eine IAM-Rolle für EKS-Knoten, um Anrufe an andere AWS-Dienste zu tätigen (`eks-node-group`). Diese Rolle ist mit einer Richtlinie verbunden, die das Übernehmen der temporären Sicherheitsanmeldeinformationen auf der Instanz ermöglicht, um auf andere AWS-Ressourcen zuzugreifen.
- EKS-Cluster-Knotengruppe (`node_group1`) – Diese Ressource definiert die Anzahl der Knoten, die ein Cluster über das Attribut `scaling_config` haben wird.
4. Erstellen Sie eine weitere Datei unter ~/terraform-eks-cluster-demo und nennen Sie sie provider.tf und fügen Sie den folgenden Inhalt ein. Die Anbieterdatei definiert Anbieter wie AWS, Oracle oder Azure usw., damit Terraform eine Verbindung mit den richtigen Cloud-Diensten herstellen kann.
Das Tutorial wird Ressourcen in der Region us-east-2 erstellen.
5. Überprüfen Sie, ob alle erforderlichen Dateien unten im Ordner vorhanden sind, indem Sie den Befehl tree
ausführen.

Erstellen des AWS EKS-Clusters mit einem Terraform EKS-Modul
Jetzt, da Sie die Terraform-Konfigurationsdatei und die Variablendateien bereit haben, ist es an der Zeit, Terraform zu initiieren und den Cluster zu erstellen. Um den AKS-Cluster bereitzustellen, verwendet Terraform wie alle anderen Terraform-Konfigurationen drei Befehle (terraform init → terraform plan → terraform apply).
Lassen Sie uns jetzt jeden Schritt durchgehen.
1. Öffnen Sie ein Terminal und navigieren Sie zum Verzeichnis ~/terraform-eks-cluster-demo
. cd ~/terraform-eks-cluster-demo
2. Führen Sie den Befehl terraform init
im selben Verzeichnis aus. Der Befehl terraform init
initialisiert die Plugins und Anbieter, die zum Arbeiten mit Ressourcen erforderlich sind.
Wenn alles gut läuft, sollten Sie die Nachricht Terraform wurde erfolgreich initialisiert in der Ausgabe sehen, wie unten gezeigt.

3. Führen Sie nun den Befehl terraform plan
aus. Das Ausführen von terraform plan
ist nicht erforderlich, wird jedoch empfohlen, um sicherzustellen, dass die Syntax Ihrer Konfigurationsdateien korrekt ist und Ihnen eine Blaupause der Ressourcen gibt, die in Ihrer Infrastruktur bereitgestellt werden.
Bei erfolgreichem Abschluss sollten Sie eine Nachricht wie Plan: „X“ hinzuzufügen, „Y“ zu ändern oder „Z“ zu zerstören in der Ausgabe sehen.

4. Führen Sie als nächstes terraform apply
aus, um die Trainingsräder zu entfernen und Terraform aufzurufen, um den AKS-Cluster zu erstellen. Das Aufrufen von terraform apply
liest jede Konfiguration (*.tf) im aktuellen Verzeichnis ein, um eine Zustandsdatei zu kompilieren, die an AWS gesendet wird, um den EKS-Cluster und andere Komponenten zu erstellen.
AWS berechnet $0.10 pro Stunde für jeden EKS-Cluster. Stellen Sie sicher, dass Sie alle Testcluster, die Sie erstellt haben, löschen!

Überprüfung des AWS EKS-Clusters
Zu diesem Zeitpunkt sollte ein funktionierender AKS-Cluster erstellt worden sein, aber lassen Sie uns zur Sicherheit in der AWS Management Console überprüfen.
1. Öffnen Sie Ihren bevorzugten Webbrowser, navigieren Sie zur AWS Management Console und melden Sie sich an.
2. Klicken Sie oben auf die Suchleiste, suchen Sie nach EKS und klicken Sie auf den Menüpunkt Elastic Kubernetes Service. Sie sollten den terraformEKScluster EKS-Cluster sehen.


3. Klicken Sie auf Konfiguration, und Sie sollten jeden erfolgreich erstellten Bestandteil sehen, den Sie in der Terraform-Konfiguration definiert haben, wie unten gezeigt.



Abschluss
In diesem Tutorial haben Sie gelernt, wie Sie Terraform verwenden, um einen AWS EKS-Cluster und seine Komponenten bereitzustellen. Sie sind nun bereit, diesen EKS-Cluster zu nutzen und Anwendungen zu deployen!
Welche Anwendungen planen Sie auf Ihrem neuen Cluster zu deployen?