Wie erstelle ich eine verwaltete Knotengruppe mithilfe von Bottlerocket AMI in Amazon EKS?

Lesedauer: 4 Minute
0

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

Selbstverwaltete Bottlerocket-Knoten starten

Was ist Amazon EKS?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr