Erstellen und Verwalten von Clustern - Eksctl-Benutzerhandbuch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen und Verwalten von Clustern

In diesem Thema wird beschrieben, wie EKS-Cluster mithilfe von Eksctl erstellt und gelöscht werden. Sie können Cluster mit einem CLI-Befehl oder durch Erstellen einer YAML-Datei für die Clusterkonfiguration erstellen.

Einen einfachen Cluster erstellen

Erstellen Sie einen einfachen Cluster mit dem folgenden Befehl:

eksctl create cluster

Dadurch wird ein EKS-Cluster in Ihrer Standardregion (wie in Ihrer AWS-CLI-Konfiguration angegeben) mit einer verwalteten Knotengruppe erstellt, die zwei m5.large-Knoten enthält.

eksctl erstellt jetzt standardmäßig eine verwaltete Knotengruppe, wenn keine Konfigurationsdatei verwendet wird. Um eine selbstverwaltete Knotengruppe zu erstellen, übergeben Sie an oder. --managed=false eksctl create cluster eksctl create nodegroup

Überlegungen

  • Beim Erstellen von Clustern in stoßen us-east-1 Sie möglicherweise auf einen. UnsupportedAvailabilityZoneException In diesem Fall kopieren Sie die vorgeschlagenen Zonen und geben Sie die --zones Markierung weiter, zum Beispiel:eksctl create cluster --region=us-east-1 --zones=us-east-1a,us-east-1b,us-east-1d. Dieses Problem kann in anderen Regionen auftreten, ist aber seltener. In den meisten Fällen müssen Sie die --zone Flagge nicht verwenden.

Erstellen Sie den Cluster mithilfe der Konfigurationsdatei

Sie können einen Cluster mit einer Konfigurationsdatei anstelle von Flags erstellen.

Erstellen Sie zunächst eine cluster.yaml Datei:

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: basic-cluster region: eu-north-1 nodeGroups: - name: ng-1 instanceType: m5.large desiredCapacity: 10 volumeSize: 80 ssh: allow: true # will use ~/.ssh/id_rsa.pub as the default ssh key - name: ng-2 instanceType: m5.xlarge desiredCapacity: 2 volumeSize: 100 ssh: publicKeyPath: ~/.ssh/ec2_id_rsa.pub

Führen Sie als Nächstes diesen Befehl aus:

eksctl create cluster -f cluster.yaml

Dadurch wird wie beschrieben ein Cluster erstellt.

Wenn Sie eine vorhandene VPC verwenden müssen, können Sie eine Konfigurationsdatei wie diese verwenden:

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster-in-existing-vpc region: eu-north-1 vpc: subnets: private: eu-north-1a: { id: subnet-0ff156e0c4a6d300c } eu-north-1b: { id: subnet-0549cdab573695c03 } eu-north-1c: { id: subnet-0426fb4a607393184 } nodeGroups: - name: ng-1-workers labels: { role: workers } instanceType: m5.xlarge desiredCapacity: 10 privateNetworking: true - name: ng-2-builders labels: { role: builders } instanceType: m5.2xlarge desiredCapacity: 2 privateNetworking: true iam: withAddonPolicies: imageBuilder: true

Der Clustername oder der Knotengruppenname darf nur alphanumerische Zeichen (Groß- und Kleinschreibung beachten) und Bindestriche enthalten. Er muss mit einem alphabetischen Zeichen beginnen und darf 128 Zeichen nicht überschreiten. Andernfalls erhalten Sie einen Validierungsfehler. Weitere Informationen finden Sie unter Erstellen eines Stacks von der CloudFormation Konsole aus im AWS CLoud Formation-Benutzerhandbuch.

Aktualisieren Sie kubeconfig für den neuen Cluster

Nachdem der Cluster erstellt wurde, wird die entsprechende Kubernetes-Konfiguration zu Ihrer kubeconfig-Datei hinzugefügt. Dies ist die Datei, die Sie in der Umgebungsvariablen KUBECONFIG oder standardmäßig konfiguriert haben. ~/.kube/config Der Pfad zur kubeconfig-Datei kann mit dem Flag überschrieben werden. --kubeconfig

Andere Flags, die ändern können, wie die kubeconfig-Datei geschrieben wird:

Flag Typ use Standardwert

--kubeconfig

Zeichenfolge

Pfad zum Schreiben von kubeconfig (nicht kompatibel mit --auto-kubeconfig)

$KUBECONFIG oder ~/.kube/config

--set-kubeconfig-context

bool

wenn wahr, wird der aktuelle Kontext in kubeconfig gesetzt; wenn ein Kontext bereits gesetzt ist, wird er überschrieben

true

--auto-kube-Konfiguration

bool

speichert die kubeconfig-Datei nach dem Clusternamen

true

--write-kubeconfig

bool

schaltet das Schreiben von kubeconfig um

true

Cluster löschen

Um diesen Cluster zu löschen, führen Sie folgenden Befehl aus:

eksctl delete cluster -f cluster.yaml
Warnung

Verwenden Sie das --wait Kennzeichen bei Löschvorgängen, um sicherzustellen, dass Löschfehler ordnungsgemäß gemeldet werden.

Ohne das --wait Flag führt eksctl nur einen Löschvorgang für den CloudFormation Stack des Clusters durch und wartet nicht auf dessen Löschung. In einigen Fällen können AWS-Ressourcen, die den Cluster oder seine VPC verwenden, dazu führen, dass das Löschen des Clusters fehlschlägt. Wenn Ihr Löschvorgang fehlschlägt oder Sie das Warte-Flag vergessen, müssen Sie möglicherweise zur CloudFormation GUI gehen und die EKS-Stacks von dort löschen.

Warnung

PDB-Richtlinien können das Entfernen von Knoten beim Löschen des Clusters blockieren.

Beim Löschen eines Clusters mit Knotengruppen können Pod Disruption Budget (PDB) -Richtlinien verhindern, dass Knoten erfolgreich entfernt werden. Beispielsweise haben aws-ebs-csi-driver installierte Cluster in der Regel zwei Pods mit einer PDB-Richtlinie, die es erlaubt, dass jeweils nur ein Pod nicht verfügbar ist, sodass der andere Pod beim Löschen nicht entfernt werden kann. Um den Cluster in diesen Szenarien erfolgreich zu löschen, verwenden Sie das disable-nodegroup-eviction Flag, um die PDB-Richtlinienprüfungen zu umgehen:

eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction

Weitere Beispielkonfigurationsdateien finden Sie im examples/Verzeichnis im GitHub eksctl-Repo.

Probelauf

Die Dry-Run-Funktion ermöglicht das Generieren einer ClusterConfig Datei, die die Clustererstellung überspringt und eine ClusterConfig Datei ausgibt, die die bereitgestellten CLI-Optionen darstellt und die von eksctl festgelegten Standardwerte enthält.

Weitere Informationen finden Sie auf der Dry Run-Seite.