Kubernetes · 17 min read · Dec 14, 2025

So erstellen Sie einen Kubernetes-Cluster mit AWS CLI

Elastic Kubernetes Service (EKS) ist ein verwalteter Kubernetes-Dienst, der auf AWS gehostet wird.

Der Hauptgrund für die Verwendung von EKS besteht darin, die Last der Verwaltung von Pods, Knoten usw. zu beseitigen. Das Ausführen von Kubernetes in AWS erfordert derzeit ein großes Maß an technischem Fachwissen und fällt oft außerhalb des Fachgebiets vieler Organisationen. Mit EKS wird die erforderliche Infrastruktur von Amazons “In-House”-Team verwaltet, sodass die Benutzer über eine vollständig verwaltete Kubernetes-Engine verfügen, die entweder über eine API oder standardmäßige kubectl-Tools verwendet werden kann.

EKS unterstützt alle Kubernetes-Funktionen, einschließlich Namespaces, Sicherheitseinstellungen, Ressourcenquoten und Toleranzen, Bereitstellungsstrategien, Autoscaler und mehr. EKS ermöglicht es Ihnen, Ihren eigenen Steuerungsbereich auszuführen, integriert sich jedoch auch mit AWS IAM, sodass Sie Ihre eigene Zugriffskontrolle auf die API aufrechterhalten können.

EKS wurde auf der bestehenden “Kubernetes-as-a-Service”-Lösung von Amazon, dem Elastic Container Service für Kubernetes (EKS), aufgebaut, einem von AWS verwalteten Dienst, der die Bereitstellung, Verwaltung und den Betrieb von Kubernetes-Clustern in der AWS-Cloud vereinfacht.

Wenn Sie Kubernetes auf AWS ausführen, sind Sie verantwortlich für die Verwaltung des Steuerungsbereichs (d.h. Master-Knoten und Arbeitsknoten). Sie müssen auch sicherstellen, dass der API-Server hochverfügbar und fehlertolerant ist usw.

EKS hat Ihnen die Last der Verwaltung des Steuerungsbereichs abgenommen, sodass Sie sich nun auf das Ausführen Ihrer Kubernetes-Workloads konzentrieren können. Es wird am häufigsten für zustandslose Anwendungen wie Microservices verwendet, da der Steuerungsbereich von Amazon (EKS) verwaltet wird.

In diesem Leitfaden lernen wir, wie man einen Kubernetes-Cluster auf AWS mit EKS erstellt. Sie lernen, wie Sie einen Administrationsbenutzer für Ihren Kubernetes-Cluster erstellen. Sie lernen auch, wie Sie eine App im Cluster bereitstellen. Schließlich testen Sie Ihren Cluster, um sicherzustellen, dass alles ordnungsgemäß funktioniert.

Lassen Sie uns anfangen!

Voraussetzungen

  • Ein AWS-Konto.
  • Der Artikel geht davon aus, dass Sie mit Kubernetes und AWS vertraut sind. Wenn nicht, nehmen Sie sich bitte etwas Zeit, um die Dokumentation zu beiden Themen durchzugehen, bevor Sie mit diesem Leitfaden beginnen.

Erstellen eines Administrators mit Berechtigungen

Lassen Sie uns mit der Erstellung eines Administrators für Ihren Cluster beginnen.

  1. Melden Sie sich bei Ihrer AWS-Konsole an und gehen Sie zu IAM. Klicken Sie auf Benutzer > Benutzer hinzufügen.

Navigieren zu IAM

  1. Geben Sie auf dem nächsten Bildschirm einen Benutzernamen wie admin ein. Wählen Sie Zugriffsschlüssel - Programmgesteuerter Zugriff. Klicken Sie auf Weiter: Berechtigungen

Benutzerdetails festlegen

  1. Wählen Sie auf dem nächsten Bildschirm Vorhandene Richtlinien direkt anhängen. Klicken Sie auf AdministratorAccess. Klicken Sie auf Weiter: Tags.

Die Richtlinie AdministratorAccess ist eine integrierte Richtlinie mit Amazon Elastic Container Service (ECS). Sie bietet vollen Zugriff auf alle ECS-Ressourcen und alle Aktionen in der ECS-Konsole. Der Hauptvorteil dieser Richtlinie besteht darin, dass wir keinen zusätzlichen Benutzer mit zusätzlichen Berechtigungen für den Zugriff auf den AWS EKS-Dienst erstellen oder verwalten müssen.

Ihr Administrator kann EC2-Instanzen, CloudFormation-Stacks, S3-Buckets usw. erstellen. Sie sollten sehr vorsichtig sein, wem Sie diesen Zugriff gewähren.

Berechtigungen festlegen

  1. Klicken Sie auf dem nächsten Bildschirm auf Weiter: Überprüfen

Tags hinzufügen

  1. Klicken Sie auf dem nächsten Bildschirm auf Benutzer erstellen.

Admin-Benutzer hinzufügen

  1. Auf dem nächsten Bildschirm erhalten Sie eine grüne Erfolg-Nachricht. Die Zugriffs-Schlüssel-ID und Geheime Zugriffsschlüssel werden ebenfalls auf diesem Bildschirm angezeigt. Sie benötigen diese Schlüssel, um Ihre CLI-Tools später zu konfigurieren, also notieren Sie sich diese Schlüssel an einem anderen Ort.

Benutzer erfolgreich erstellt

Erstellen einer EC2-Instanz

Jetzt, da Sie den Administrationsbenutzer erstellt haben, lassen Sie uns eine EC2-Instanz erstellen, die Sie als Ihren Kubernetes-Master-Knoten verwenden können.

  1. Geben Sie EC2 in das Suchfeld ein. Klicken Sie auf den EC2-Link. Klicken Sie auf Instanz starten.

Erstellen einer EC2-Instanz

Erstellen einer EC2-Instanz

  1. Wählen Sie das Amazon Linux 2 AMI (HVM) für Ihre EC2-Instanz aus. Wir werden dieses Amazon Linux AMI verwenden, um die Installation von Kubernetes und anderen benötigten Tools später zu erleichtern, wie z.B.: kubectl!, docker usw.

Auswählen eines Amazon Machine Image

  1. Klicken Sie auf dem nächsten Bildschirm auf Weiter: Instanz konfigurieren Details.

Auswählen eines Instanztyps

  1. Aktivieren Sie auf dem nächsten Bildschirm die Option Öffentliche IP automatisch zuweisen. Da der Server sich in einem privaten Subnetz befindet, ist er extern nicht zugänglich. Sie können Ihren Server öffentliche IP-Adressen zuweisen, indem Sie eine Elastic IP-Adresse mit der Instanz verknüpfen. Dadurch sind Ihre EC2 und ELK zugänglich. Klicken Sie auf Weiter: Speicher.

Konfigurieren der Instanzdetails

  1. Klicken Sie auf dem nächsten Bildschirm auf Weiter: Tags hinzufügen > Weiter: Sicherheitsgruppe konfigurieren.

Tags hinzufügen

Sicherheit

  1. Klicken Sie auf dem nächsten Bildschirm auf Überprüfen und starten > Starten.

Überprüfen und starten

Überprüfen und starten

  1. Ein Dialogfeld für ein Schlüsselpaar wird angezeigt. Klicken Sie auf Neues Schlüsselpaar erstellen. Geben Sie ihm einen Namen, laden Sie die .pem-Datei herunter und speichern Sie sie an einem sicheren Ort. Klicken Sie auf Instanz starten.

Neues Schlüsselpaar erstellen.

Konfigurieren der Befehlszeilentools

Jetzt, da Sie eine EC2-Instanz erstellt haben, müssen Sie den Client dafür installieren. In AWS-Begriffen ist ein Client ein Befehlszeilentool, mit dem Sie Cloud-Objekte verwalten können. In diesem Abschnitt lernen Sie, wie Sie die Befehlszeilenoberfläche (CLI) konfigurieren.

  1. Navigieren Sie zu Ihrem EC2-Dashboard. Sie sollten Ihre neue EC2-Instanz sehen, die läuft. Wenn nicht, könnte Ihre Instanz ihren ersten Bootvorgang benötigen, warten Sie 5 Minuten und versuchen Sie es erneut. Sobald Ihre Instanz läuft, klicken Sie auf Verbinden.

  2. Klicken Sie auf dem nächsten Bildschirm auf Verbinden.

Verbinden mit EC2

Sie werden zu einer interaktiven SSH-Sitzung in Ihrem Browser weitergeleitet. SSH ermöglicht es Ihnen, sicher eine Verbindung zu einem Remote-Server herzustellen und auf diesem zu arbeiten. Die interaktive SSH-Sitzung ermöglicht es uns, die Befehlszeilentools für EKS und Kubernetes direkt auf Ihrer EC2-Instanz zu installieren.

Sobald Sie sich in der SSH-Sitzung anmelden, müssen Sie zunächst Ihre aws-cli-Version überprüfen. Dies dient dazu, sicherzustellen, dass Sie die neueste Version der AWS CLI verwenden. Die AWS CLI wird verwendet, um Ihren Cluster zu konfigurieren, zu verwalten und mit ihm zu arbeiten.

Wenn Ihre Version veraltet ist, können während des Erstellungsprozesses des Clusters Probleme und Fehler auftreten. Wenn Ihre Version unter 2.0 liegt, müssen Sie sie aktualisieren.

  1. Führen Sie den folgenden Befehl aus, um Ihre CLI-Version zu überprüfen.
aws --version

Wie Sie in der folgenden Ausgabe sehen können, verwenden wir die Version 1.18.147 von aws-cli, die sehr veraltet ist. Lassen Sie uns die CLI auf die neueste verfügbare Version aktualisieren, die zum Zeitpunkt des Schreibens v2+ ist.

  1. Führen Sie den folgenden Befehl aus, um die neueste verfügbare Version der AWS CLI auf Ihre EC2-Instanz herunterzuladen. curl lädt Ihre Datei von der angegebenen URL herunter, -o benennt sie nach Ihren Wünschen, und “awscli-exe-linux-x86_64.zip” ist die herunterzuladende Datei.
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  1. Sobald der Download abgeschlossen ist, führen Sie den folgenden Befehl aus, um den Inhalt Ihrer heruntergeladenen Datei im aktuellen Verzeichnis zu extrahieren.
unzip awscliv2.zip
  1. Führen Sie als Nächstes den Befehl which aws aus, um Ihren Link zur neuesten Version der AWS CLI festzulegen. Dieser Befehl zeigt Ihnen, wo in Ihrem Umgebungs-PATH es gefunden werden kann, sodass Sie ihn aus jedem Verzeichnis ausführen können.
which aws

Wie Sie in der folgenden Ausgabe sehen können, befindet sich die veraltete AWS CLI unter /usr/bin/aws.

  1. Jetzt müssen Sie Ihre aws-cli konfigurieren, indem Sie einen Aktualisierungsbefehl mit einigen Parametern ausführen. Der erste Parameter ./aws/install hilft uns, die AWS CLI im aktuellen Verzeichnis zu installieren. Der zweite Parameter –bin-dir gibt an, wo in Ihrem Umgebungs-PATH die AWS CLI zu finden sein wird, und der dritte Parameter –install-dir ist ein Pfad relativ zu bin-dir. Dieser Befehl stellt sicher, dass alle Ihre Pfade auf dem neuesten Stand sind.
sudo ./aws/install --bin-dir /usr/bin --install-dir /usr/bin/aws-cli --update
  1. Führen Sie den aws –version-Befehl erneut aus, um sicherzustellen, dass Sie die neueste Version verwenden.
aws --version

Sie sollten die derzeit installierte AWS CLI-Version sehen. Wie Sie in der folgenden Ausgabe sehen können, verwenden wir jetzt v2.4.7 der AWS CLI. Dies ist die neueste Version und wird Ihnen bei der Konfiguration der nächsten Schritte keine Probleme bereiten.

  1. Jetzt, da Ihre Umgebung ordnungsgemäß konfiguriert ist, ist es an der Zeit, zu konfigurieren, mit welchem AWS-Konto Sie über die AWS CLI kommunizieren möchten. Führen Sie den folgenden Befehl aus, um Ihre derzeit konfigurierten Kontoumgebungsvariablen mit dem Alias, den Sie verwenden möchten, aufzulisten.
aws configure

Dies zeigt Ihnen alle Ihre AWS-Kontoumgebungsvariablen, die derzeit konfiguriert sind. Sie sollten etwas wie das Folgende in der Ausgabe sehen. Sie müssen einige Konfigurationsparameter einrichten, damit die AWS CLI mit Ihren erforderlichen Konten kommunizieren kann. Führen Sie den folgenden Befehl aus, der Sie durch einen Konfigurationsassistenten führt, um Ihr AWS-Konto einzurichten.

  • AWS Access Key ID [None]: Geben Sie den AWS-Zugriffsschlüssel ein, den Sie zuvor notiert haben.
  • AWS Secret Access Key [None]: Geben Sie den AWS Secret Access Key ein, den Sie zuvor notiert haben.
  • Sie müssen auch den Standardregionnamen angeben, in dem sich Ihr EKS-Cluster befinden wird. Sie sollten eine AWS-Region wählen, in der sich Ihr gewünschter EKS-Cluster befindet und die Ihnen am nächsten ist. In diesem Tutorial haben wir us-east-1 aufgrund seiner geografischen Lage in der Nähe von uns und der Benutzerfreundlichkeit für die nächsten Schritte im Tutorial gewählt.
  • Standardausgabeformat [None]: Geben Sie json als Ihr Standardausgabeformat ein, da es für uns sehr nützlich sein wird, die Konfigurationsdateien später anzuzeigen.

Jetzt, da Sie Ihre AWS CLI-Tools eingerichtet haben, ist es an der Zeit, das Kubernetes-CLI-Tool namens kubectl in Ihrer Umgebung zu konfigurieren, damit Sie mit Ihrem EKS-Cluster interagieren können.

Kubectl ist die Befehlszeilenoberfläche für Kubernetes. Mit Kubectl können Sie Anwendungen verwalten, die auf Kubernetes-Clustern ausgeführt werden. Kubectl ist standardmäßig nicht auf Linux- und MacOS-Systemen installiert. Sie können Kubectl auf anderen Systemen installieren, indem Sie die Anweisungen auf der Kubernetes-Website befolgen.

  1. Führen Sie den folgenden Befehl aus, um die kubectl-Binärdatei herunterzuladen. Eine Binärdatei ist eine Computerdatei mit der Erweiterung “.bin”, die nur auf bestimmten Computertypen ausführbar ist. Es ist eine einfache Möglichkeit für unterschiedliche Computertypen, Dateien auszutauschen. Wir verwenden die kubectl-Binärdatei, da die kubectl-Binärdatei plattformunabhängig ist. Sie funktioniert auf jedem System, das ein Unix-ähnliches Betriebssystem ausführen kann, einschließlich Linux und Mac OS.
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.16.8/2020-04-16/bin/linux/amd64/kubectl
  1. Führen Sie den chmod-Befehl unten aus, um die kubectl-Binärdatei ausführbar zu machen. Der chmod-Befehl ist ein Unix- und Linux-Befehl, der verwendet wird, um die Zugriffsberechtigungen für Dateien oder Verzeichnisse zu ändern. Der Linux chmod-Befehl verwendet das oktale Zahlensystem, um die Berechtigungen für jeden Benutzer anzugeben. Kubectl kann jetzt auf Ihrem lokalen Computer verwendet werden.
chmod +x ./kubectl
  1. Führen Sie den folgenden Befehl aus, um ein kubectl-Verzeichnis in Ihrem $HOME/bin-Ordner zu erstellen und die kubectl-Binärdatei dorthin zu kopieren. Der mkdir -p $HOME/bin-Befehl erstellt ein bin-unterverzeichnis in Ihrem Home-Verzeichnis. Der mkdir-Befehl wird verwendet, um neue Verzeichnisse oder Ordner zu erstellen. Die -p-Option weist den mkdir-Befehl an, automatisch alle erforderlichen übergeordneten Verzeichnisse für das neue Verzeichnis zu erstellen. Der $HOME/bin ist eine Umgebungsvariable, die den Pfad zu Ihrem Home-Verzeichnis speichert. Jeder Linux-Benutzer hat das $HOME/bin-Verzeichnis in seinem Dateisystem. Der &&-Operator wird als logischer UND-Operator bezeichnet. Er wird verwendet, um Befehle zusammenzufassen, sodass mehr als ein Befehl gleichzeitig ausgeführt werden kann. Der &&-Operator ist für das Funktionieren dieses Befehls nicht erforderlich, aber er ist als Best Practice vorhanden.

Der cp ./kubectl $HOME/bin/kubectl-Befehl kopiert die lokale kubectl-Binärdatei in Ihr kubectl-Verzeichnis und benennt die Datei in kubectl um. Schließlich exportiert der export-Befehl eine Umgebungsvariable in den Speicher der Shell, sodass sie von jedem Programm verwendet werden kann, das aus dieser Shell ausgeführt wird. In unserem Fall müssen wir kubectl mitteilen, wo sich unser kubectl-Verzeichnis befindet, damit es die kubectl-Binärdatei finden kann.

mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
  1. Führen Sie den kubectl version-Befehl unten aus, um zu überprüfen, ob kubectl korrekt installiert ist. Der kubectl version –short –client-Befehl gibt eine verkürzte Version der kubectl-Version in einer gut formatierten, menschenlesbaren Kubernetes REST API-Antwort aus. Die –client-Option lässt kubectl die formatierte Version der REST API-Antwort von Kubernetes drucken, die über Versionen hinweg konsistent ist.

Die –short-Option weist kubectl an, grundlegende Informationen in kompakter Form mit einer Dezimalstelle für Fließkommazahlen und einem abgekürzten Zeitformat bereitzustellen, das dasselbe wie –format ist. Sie sollten eine Ausgabe wie die folgende sehen. Diese Ausgabe zeigt uns, dass wir kubectl erfolgreich installiert haben und es die richtige Version verwendet.

Das Letzte, was Sie in diesem Abschnitt tun müssen, ist, das eksctl-cli-Tool zu konfigurieren, um Ihren Amazon EKS-Cluster zu verwenden. Das eksctl-cli-Tool ist eine Befehlszeilenoberfläche, die Amazon EKS-Cluster verwalten kann. Es kann Clusteranmeldeinformationen generieren, die Cluster-Spezifikation aktualisieren, Arbeitsknoten erstellen oder löschen und viele andere Aufgaben ausführen.

  1. Führen Sie die folgenden Befehle aus, um das eksctl-cli-Tool zu installieren und seine Version zu überprüfen.
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp && sudo mv /tmp/eksctl /usr/bin
eksctl version

Bereitstellen eines EKS-Clusters

Jetzt, da Sie Ihre EC2- und AWS-CLI-Tools haben, können Sie jetzt Ihren ersten EKS-Cluster bereitstellen.

  1. Führen Sie den eksctl create cluster-Befehl unten aus, um einen Cluster mit dem Namen dev in der Region us-east-1 mit einem Master und drei Kernknoten bereitzustellen.
eksctl create cluster --name dev --version 1.21 --region us-east-1 --nodegroup-name standard-workers --node-type t3.micro --nodes 3 --nodes-min 1 --nodes-max 4 --managed

Der eksctl create cluster-Befehl erstellt einen EKS-Cluster in der Region us-east-1 unter Verwendung der von Amazon für diese spezifische Konfiguration empfohlenen Standardeinstellungen und übergibt alle Argumente in Anführungszeichen ( “ ) oder als Variablen ( ${ } ) entsprechend.

Der Parameter name wird verwendet, um den Namen dieses EKS-Clusters zu definieren, und es ist nur ein freundliches Label zu Ihrem Komfort. version ist die Version, die Sie für den Cluster verwenden möchten, für dieses Beispiel bleiben wir bei Kubernetes v1.21.2, aber fühlen Sie sich frei, auch andere Optionen zu erkunden.

nodegroup-name ist der Name einer Knotengruppe, die dieser Cluster verwenden sollte, um Arbeitsknoten zu verwalten. In diesem Beispiel halten Sie es einfach und verwenden nur standard-workers, was bedeutet, dass Ihre Arbeitsknoten standardmäßig einen vCPU und 3 GB RAM haben.

nodes ist die Gesamtzahl der Kernarbeitsknoten, die Sie in Ihrem Cluster haben möchten. In diesem Beispiel werden drei Knoten angefordert. nodes-min und nodes-max steuern die minimale und maximale Anzahl von Knoten, die in Ihrem Cluster zulässig sind. In diesem Beispiel werden mindestens ein, aber nicht mehr als vier Arbeitsknoten erstellt.

  1. Sie können zu Ihrer CloudFormation-Konsole navigieren, um den Bereitfortschritt zu überwachen.

Navigieren zu Ihrer CloudFormation

Wie unten gezeigt, sehen Sie, dass Ihr dev-Stack erstellt wird.

Ihr dev-Stack wird erstellt

  1. Klicken Sie auf den Hyperlink dev-Stack > Ereignis. Sie sehen eine Liste von Ereignissen, die mit dem Erstellungsprozess verbunden sind. Warten Sie, bis der Bereitstellungsprozess abgeschlossen ist - dies kann je nach Ihren spezifischen Umständen bis zu 15 Minuten dauern - und überprüfen Sie den Status des Stacks in der CloudFormation-Konsole.

Überprüfen des Status des Stacks

  1. Nachdem Sie gewartet haben, bis der Stack die Bereitstellung abgeschlossen hat, navigieren Sie zu Ihrer CloudFormation-Konsole, Sie werden den Status Ihres dev-Stacks als CREATE_COMPLETE sehen.

Navigieren Sie nun zu Ihrer EC2-Konsole. Sie werden einen Master-Knoten und drei Kernknoten im EC2-Dashboard sehen. Diese Ausgabe bestätigt, dass Sie den EKS-Cluster erfolgreich eingerichtet haben.

  1. Führen Sie den eksctl-Befehl unten aus, um die Details des dev-Clusters, wie Cluster-ID und Region, zu erhalten.
eksctl get cluster
  1. Führen Sie den aws eks update-Befehl unten aus, um die Anmeldeinformationen der Remote-Arbeitsknoten zu erhalten. Dieser Befehl muss auf jedem Computer ausgeführt werden, mit dem Sie eine Verbindung zum Cluster herstellen möchten. Er lädt Anmeldeinformationen für Ihr kubectl herunter, um remote auf den EKS Kubernetes-Cluster zuzugreifen, ohne AWS-Zugriffsschlüssel zu verwenden.
aws eks update-kubeconfig --name dev --region us-east-1

Bereitstellung Ihrer Anwendung im EKS-Cluster

Jetzt, da Sie Ihren EKS-Cluster bereitgestellt haben. Lassen Sie uns Ihre erste Anwendung in Ihrem EKS-Cluster bereitstellen. In diesem Abschnitt lernen Sie, wie Sie einen nginx-Webserver zusammen mit einem Lastenausgleich als Beispielanwendung bereitstellen.

  1. Führen Sie den Befehl unten aus, um git auf Ihrem System zu installieren. Sie benötigen git, um den nginx-Webserver-Code von GitHub zu klonen.
sudo yum install -y git 
  1. Führen Sie den git clone-Befehl unten aus, um den nginx-Webserver-Code von GitHub in Ihr aktuelles Verzeichnis zu klonen.
git clone https://github.com/ata-aws-iam/htf-elk.git
  1. Führen Sie den cd htf-elk-Befehl aus, um das Arbeitsverzeichnis in das Verzeichnis der nginx-Konfigurationsdateien zu ändern.
cd htf-elk
  1. Führen Sie den ls-Befehl aus, um die Dateien im aktuellen Verzeichnis aufzulisten.
ls

Sie werden die folgenden Dateien in Ihrem nginx-Verzeichnis sehen.

  1. Führen Sie den cat-Befehl unten aus, um die nginx-deployment.yaml-Datei zu öffnen, und Sie werden die folgenden Inhalte in dieser Datei sehen.
cat nginx-deployment.yaml

Öffnen der nginx-Bereitstellungsdatei

  • apiVersion: apps/v1 ist die Kern-Kubernetes-API
  • kind: Deployment ist die Art der Ressource, die für diese Datei erstellt wird. In einer Bereitstellung wird ein Pod pro Container erstellt.
  • metadata: gibt die Metadatenwerte an, die beim Erstellen eines Objekts verwendet werden
  • name: nginx-deployment ist der Name oder das Label für diese Bereitstellung. Wenn es keinen Wert hat, wird der Bereitstellungsname aus dem Verzeichnisnamen übernommen.
  • labels: bietet Labels für die Anwendung. In diesem Fall wird es für den Dienstrouting über Elastic Load Balancing (ELB) verwendet.
  • env: dev beschreibt eine Umgebungsvariable, die durch einen Stringwert definiert ist. So können Sie dynamische Konfigurationsdaten an Ihren Container bereitstellen.
  • spec: hier definieren Sie, wie viele Replikate erstellt werden sollen. Sie können die Eigenschaften angeben, auf denen jedes Replikat basieren soll.
  • replicas: 3 erstellt drei Replikate dieses Pods in Ihrem Cluster. Diese werden auf den verfügbaren Arbeitsknoten verteilt, die dem Label-Selektor entsprechen.
  • containerPort: 80 wird einen Port vom Container auf einen Port auf dem Host abbilden. In diesem Fall wird Port 80 im Container auf Port 30000 Ihres lokalen Computers abgebildet.
  1. Führen Sie den cat-Befehl unten aus, um die Dienstdatei nginx-svc.yaml zu öffnen. Sie werden die folgenden Inhalte in dieser Datei sehen.
cat nginx-svc.yaml

Öffnen der Dienstdatei

  1. Führen Sie den kubectl apply-Befehl unten aus, um den nginx-Dienst in Ihrem Kubernetes-Cluster zu erstellen. Es wird einige Minuten dauern, bis der EKS-Cluster ELB für diesen Dienst bereitstellt.
kubectl apply -f ./nginx-svc.yaml
  1. Führen Sie den kubectl get service-Befehl aus, um die Details über den nginx-Dienst, den Sie gerade erstellt haben, zu erhalten.
kubectl get service

Sie erhalten die folgende Ausgabe. ClusterIP ist die interne Kubernetes-IP, die diesem Dienst zugewiesen ist. Der LoadBalancer-ELB-Name ist ein eindeutiger Bezeichner für diesen Dienst. Er wird automatisch einen ELB auf AWS erstellen und einen öffentlichen Endpunkt für diesen Dienst bereitstellen, der von Diensten Ihrer Wahl, wie z.B. Webbrowser (Domain-Name) oder API-Clients, erreicht werden kann. Er ist über eine IP-Adresse Ihrer Wahl zugänglich.

Der Load Balancer ELB mit dem Namen a6f8c3cf0fe3a468d8828db6059ef05e-953361268.us-east-1.elb.amazonaws.com hat Port 32406, der auf den Containerport 80 abgebildet wird. Notieren Sie sich den DNS-Hostnamen des Lastenausgleichs ELB aus der Ausgabe; Sie benötigen ihn, um später auf den Dienst zuzugreifen.

  1. Führen Sie den kubectl apply-Befehl unten aus, um die Bereitstellung für Ihren Cluster anzuwenden.
kubectl apply -f ./nginx-deployment.yaml
  1. Führen Sie den kubectl get deployment-Befehl aus, um die Details über die nginx-Bereitstellung, die Sie gerade erstellt haben, zu erhalten.
kubectl get deployment
  1. Führen Sie den Befehl unten aus, um auf Ihre nginx-Anwendung über den Lastenausgleich zuzugreifen. Sie werden die Willkommensseite von nginx in Ihrem Terminal/Konsole sehen, was bestätigt, dass Ihre nginx-Anwendung wie erwartet funktioniert. Ersetzen Sie durch den DNS-Hostnamen des Lastenausgleichs, den Sie oben notiert haben.
curl ""

Zugriff auf Ihre nginx-Anwendung

  1. Sie können auch über den Browser auf Ihre nginx-Anwendung zugreifen, indem Sie den DNS-Hostnamen des Lastenausgleichs in den Browser kopieren und einfügen.

Zugriff auf Ihre nginx-Anwendung über den Browser

Überprüfen der Hochverfügbarkeitsfunktion (HA) für Ihren Cluster

Jetzt, da Sie Ihren Cluster erfolgreich erstellt haben, können Sie die HA-Funktion testen, um sicherzustellen, dass sie wie erwartet funktioniert.

Kubernetes unterstützt Multi-Node-Bereitstellungen mit speziellen Controllern, die zusammenarbeiten, um replizierte Pods oder Dienste zu erstellen und zu verwalten. Einige dieser Controller sind Deployments, ReplicationController, Job und DaemonSet.

Ein Bereitstellungscontroller wird verwendet, um die Replikation auf Pod- oder Diensteebene zu steuern. Wenn Ihr Pod keine Ressourcen mehr hat, werden alle Pods dieses Replikationscontrollers (außer dem, der auf dem Master-Knoten läuft) gelöscht und neue Replikate dieses Pods erstellt. Dies hilft Ihnen, eine sehr hohe Betriebszeit für Ihre Anwendungen zu erreichen.

  1. Navigieren Sie zu Ihrem EC2-Dashboard und stoppen Sie alle drei Arbeitsknoten.

Stoppen Sie alle drei Arbeitsknoten

  1. Führen Sie den Befehl unten aus, um den Status Ihrer Pods zu überprüfen. Sie erhalten unterschiedliche Status: Terminating, Running und Pending für alle Ihre Pods. Denn sobald Sie alle Arbeitsknoten stoppen, wird EKS versuchen, alle Arbeitsknoten und Pods erneut zu starten. Sie können auch einige neue Knoten sehen, die Sie an ihrem Alter (50s) erkennen können.
kubectl get pod

Es dauert eine Weile, bis die neue EC2-Instanz und die Pods hochgefahren sind. Sobald alle Arbeitsknoten hochgefahren sind, sehen Sie, dass alle neuen EC2-Instanzen wieder den Status Running haben.

Überprüfen aller neuen EC2-Instanzen

  1. Führen Sie den kubectl get service-Befehl erneut aus. Sie können sehen, dass EKS einen neuen nginx-Dienst und einen neuen DNS-Namen für Ihren Lastenausgleich erstellen wird.
kubectl get service 

Kopieren Sie den neuen DNS in Ihren Browser. Sie werden wieder die Willkommensseite von Nginx erhalten. Diese Ausgabe bestätigt, dass Ihre HA wie beabsichtigt funktioniert.

Überprüfen Ihres nginx-Lastenausgleichs

Fazit

In diesem Artikel haben Sie gelernt, wie Sie Ihren EKS-Cluster einrichten. Sie haben auch überprüft, dass die Hochverfügbarkeitsfunktion funktioniert, indem Sie alle Ihre Arbeitsknoten gestoppt und den Status Ihrer Pods überprüft haben. Sie sollten jetzt in der Lage sein, EKS-Cluster mit kubectl zu erstellen und zu verwalten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.