Wie verwende ich das Bottlerocket-AMI, um eine verwaltete Knotengruppe in Amazon EKS zu erstellen?
Ich möchte wissen, wie man mit dem Amazon Machine Image (AMI) von Bottlerocket und eksctl eine von Bottlerocket verwaltete Knotengruppe in Amazon Elastic Kubernetes Service (Amazon EKS) erstellt.
Lösung
Voraussetzung
Vergewissern Sie sich, dass Sie eksctl 0.124.0 oder eine neuere Version verwenden, bevor Sie die Lösungsschritte umsetzen.
Führen Sie den folgenden Befehl aus, um Ihre Version zu ermitteln:
$ eksctl version
Erstellen einer bottlerocket.yaml-Datei
Öffnen Sie das Terminal, in dem Sie eksctl installiert haben. Verwenden Sie dann das folgende Beispiel, um die Datei bottlerocket.yaml zu erstellen und zu speichern.
Hinweis:
- Ersetzen Sie mybottlerocket-cluster durch den Namen Ihres Clusters. Der Name darf nur Bindestriche und alphanumerische Zeichen enthalten, wobei zwischen Groß- und Kleinschreibung unterschieden wird. Er muss mit einem alphabetischen Zeichen beginnen und darf eine Länge von 100 Zeichen nicht überschreiten.
- Ersetzen Sie bottlerocket-nodegroup durch einen Namen für Ihre Knotengruppe. Der Name darf nur Bindestriche und alphanumerische Zeichen enthalten, wobei zwischen Groß- und Kleinschreibung unterschieden wird. Er muss mit einem alphabetischen Zeichen beginnen und darf eine Länge von 100 Zeichen nicht überschreiten.
- Geben Sie den Instance-Typ an. Um beispielsweise auf einer Arm-Instance bereitzustellen, ersetzen Sie m5.xlarge durch einen Arm-Instance-Typ.
- Ersetzen Sie eks_bottlerocket durch den Namen eines SSH-Schlüsselpaars von Amazon Elastic Compute Cloud (Amazon EC2). Nachdem Sie die Knoten gestartet haben, verwenden Sie SSH, um eine Verbindung zu ihnen herzustellen.
Hinweis: Wenn Sie kein SSH-Schlüsselpaar von Amazon EC2 haben, erstellen Sie eines in der AWS-Managementkonsole. Weitere Informationen finden Sie unter Amazon EC2 key pairs and Amazon EC2 instances.
--- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: mybottlerocket-cluster region: us-west-2 version: '1.27' 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 allgemeine, rechenoptimierte, arbeitsspeicheroptimierte und speicheroptimierte Instance-Typen erstellen. Das Bottlerocket-AMI unterstützt keine beschleunigten Computing-Instances.
Erstellen der Knotengruppe und Auflisten ihrer Knoten im EKS-Cluster
-
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"
-
Listen Sie die Knoten im EKS-Cluster und Ihre Attribute auf:
$ kubectl get nodes -o=custom-columns=NODE:.metadata.name,ARCH:.status.nodeInfo.architecture,OS-Image:.status.nodeInfo.osImage,OS:.status.nodeInfo.operatingSystemNODE ARCH OS-Image OS ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux
Herstellen einer Verbindung zu den Bottlerocket-AMI-Knoten (optional)
Stellen Sie über AWS Systems Manager eine Verbindung zu den neuen Bottlerocket-Knoten her. Der AWS Systems Manager Agent (SSM Agent) wird auf dem Knoten ausgeführt, da Sie die Systems-Manager-Berechtigung für die Knoten-Instance-Rolle bereits aktiviert haben.
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.providerIDNODE ARCH OS-Image OS InstanceId ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux aws:///us-west-2b/i-0cf32f13f60c2f501 ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux aws:///us-west-2b/i-0f31328a5d21cb092 ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux aws:///us-west-2b/i-08c218b729ecf9b5d
Starten einer Systems-Manager-Sitzung
Standardmäßig verfügt Bottlerocket über einen Kontrollcontainer, der auf einer separaten Instance von containerd ausgeführt wird. In diesem Container wird der SSM Agent ausgeführt. Sie können damit Befehle ausführen oder interaktive Shell-Sitzungen auf Bottlerocket-Knoten starten.
Wählen Sie eine Instance aus und starten Sie eine Systems-Manager-Sitzung. Das folgende Beispiel zeigt einen Systems-Manager-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!
Verwandte Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 9 Monaten