Wie erstelle ich eine verwaltete Knotengruppe mithilfe von Bottlerocket AMI in Amazon EKS?
Ich möchte eksctl verwenden, um Bottlerocket Amazon Machine Image (Bottlerocket AMI) zu starten und eine verwaltete Knotengruppe in Amazon Elastic Kubernetes Service (Amazon EKS) zu erstellen.
Lösung
Voraussetzung
1. Stellen Sie sicher, dass Sie eksctl Version 0.124.0 oder höher haben.
2. Führen Sie den folgenden Befehl aus, um Ihre Version zu überprüfen:
$ eksctl version
Erstellen Sie eine bottlerocket.yaml-Datei
1. Öffnen Sie das Terminal, in dem Sie eksctl installiert haben. Führen Sie dann die folgenden Schritte aus, um eine neue Datei zu erstellen.
2. Ersetzen Sie mybottlerocket-cluster durch den Namen Ihres Clusters. Der Name darf nur alphanumerische Zeichen (Groß- und Kleinschreibung beachten) und Bindestriche enthalten. Es muss mit einem alphabetischen Zeichen beginnen und darf nicht länger als 100 Zeichen sein.
3. Ersetzen Sie bottlerocket-nodegroup durch einen Namen für Ihre Knotengruppe. Der Name darf nur alphanumerische Zeichen (Groß- und Kleinschreibung beachten) und Bindestriche enthalten. Es muss mit einem alphabetischen Zeichen beginnen und darf nicht länger als 100 Zeichen sein.
4. Geben Sie den Instancetyp an. Um beispielsweise auf einer ARM-Instance bereitzustellen, ersetzen Sie m5.xlarge durch einen ARM-Instancetyp.
5. Ersetzen Sie eks_bottlerocket durch den Namen eines Amazon Elastic Compute Cloud (Amazon EC2) SSH-Schlüsselpaars. Verwenden Sie nach dem Start SSH, um eine Verbindung zu den Knoten herzustellen.
Hinweis: Wenn Sie kein Amazon EC2-SSH-Schlüsselpaar haben, erstellen Sie eines in der AWS-Managementkonsole. Weitere Informationen finden Sie unter Amazon EC2-Schlüsselpaare und Linux-Instances.
6. Ersetzen Sie alle verbleibenden Werte im Beispiel durch Ihre eigenen Werte. Nachdem Sie die Ersetzungen vorgenommen haben, speichern Sie die Datei bottlerocket.yaml.
--- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: mybottlerocket-cluster region: us-west-2 version: '1.23' managedNodeGroups: - name: bottlerocket-nodegroup instanceType: m5.xlarge minSize: 2 maxSize: 4 desiredCapacity: 3 amiFamily: Bottlerocket labels: { role: br-worker } tags: nodegroup-type: Bottlerocket ssh: allow: true publicKeyName: eks_bottlerocket
Hinweis: Sie können von Bottlerocket verwaltete Knotengruppen für alle Standard-Instancetypen erstellen. Dies sind statische Skalierung (T-Serie), Allzweckinstanzen (M-Serie), rechneroptimierte (C-Serie), speicheroptimierte (R-Serie) und die ARM-basierten Graviton2-Instancetypen. Bottlerocket AMI unterstützt keine beschleunigte Computing-Instances (P, G, Inf1).
Weitere Informationen zu Bottlerocket AMI finden Sie unter Amazon EKS-optimierte Bottlerocket-AMIs.
Erstellen Sie die Knotengruppe und listen Sie ihre Knoten im EKS-Cluster auf
1. Führen Sie den folgenden eksctl-Befehl aus, um eine Knotengruppe zu erstellen:
$ eksctl create nodegroup -f bottlerocket.yaml [✔] created 1 nodegroup(s) in cluster "mybottlerocket-cluster"
2. Listen Sie die Knoten im EKS-Cluster zusammen mit Ihren Attributen auf:
$ kubectl get nodes -o=custom-columns=NODE:.metadata.name,ARCH:.status.nodeInfo.architecture,OS-Image:.status.nodeInfo.osImage,OS:.status.nodeInfo.operatingSystem NODE ARCH OS-Image OS ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.11.1 (aws-k8s-1.23) linux ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.11.1 (aws-k8s-1.23) linux ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.11.1 (aws-k8s-1.23) linux
Stellen Sie eine Verbindung zu den Bottlerocket-AMI-Knoten her (optional)
Stellen Sie über eine AWS Systems Manager (AWS SSM) -Sitzung eine Verbindung zu den neuen Bottlerocket-Knoten her. Der AWS SSM-Agent wird auf dem Knoten ausgeführt, da Sie die AWS-SSM-Berechtigung für die Knoten-Instance-Rolle bereits aktiviert haben. Weitere Informationen zu AWS SSM finden Sie unter Was ist der AWS Systems Manager?
1. Führen Sie den folgenden Befehl aus, um die Instance-IDs zu finden:
$ kubectl get nodes -o=custom-columns=NODE:.metadata.name,ARCH:.status.nodeInfo.architecture,OS-Image:.status.nodeInfo.osImage,OS:.status.nodeInfo.operatingSystem,InstanceId:.spec.providerID NODE ARCH OS-Image OS InstanceId ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.11.1 (aws-k8s-1.23) linux aws:///us-west-2b/i-0cf32f13f60c2f501 ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.11.1 (aws-k8s-1.23) linux aws:///us-west-2b/i-0f31328a5d21cb092 ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.11.1 (aws-k8s-1.23) linux aws:///us-west-2b/i-08c218b729ecf9b5d
Starten Sie eine SSM-Sitzung
Standardmäßig hat Bottlerocket einen Kontrollcontainer, der auf einer separaten Instance von containerd läuft. Dieser Container führt den AWS SSM-Agenten aus und ermöglicht es Ihnen, Befehle auszuführen oder interaktive Shell-Sitzungen auf Bottlerocket-Knoten zu starten.
1. Wählen Sie eine der zuvor identifizierten Instances aus und starten Sie eine SSM-Sitzung. Das folgende Beispiel zeigt einen SSM-Sitzungsbefehl für die i-0cf32f13f60c2f501-Instance:
$ aws ssm start-session --target i-0cf32f13f60c2f501 --region us-west-2 Starting session with SessionId: EKS-Test-User-0077e4c89ad2bc888 Welcome to Bottlerocket's control container!
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Monat
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Monat
- AWS OFFICIALAktualisiert vor einem Monat