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/
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.