Come posso utilizzare l'AMI Bottlerocket per creare un gruppo di nodi gestiti in Amazon EKS?
Voglio imparare come creare un gruppo di nodi gestiti da Bottlerocket in Amazon Elastic Kubernetes Service (Amazon EKS) utilizzando Bottlerocket Amazon Machine Image (AMI) ed eksctl.
Risoluzione
Prerequisito
Prima di completare i passaggi di risoluzione, conferma di avere eksctl versione 0.124.0 o successiva.
Per verificare la tua versione, esegui il seguente comando:
$ eksctl version
Crea un file bottlerocket.yaml
Apri il terminale in cui hai installato eksctl. Quindi, utilizza il seguente esempio per creare e salvare il file bottlerocket.yaml.
Nota:
- Sostituisci mybottlerocket-cluster con il nome del tuo cluster. Il nome può contenere solo trattini e caratteri alfanumerici con distinzione tra maiuscole e minuscole. Deve iniziare con un carattere alfabetico e non può superare i 100 caratteri.
- Sostituisci bottlerocket-nodegroup con un nome per il tuo gruppo di nodi. Il nome può contenere solo trattini e caratteri alfanumerici con distinzione tra maiuscole e minuscole. Deve iniziare con un carattere alfabetico e non può superare i 100 caratteri.
- Specifica il tipo di istanza. Ad esempio, per eseguire la distribuzione su un'istanza Arm, sostituisci m5.xlarge con un tipo di istanza Arm.
- Sostituisci eks_bottlerocket con il nome di una coppia di chiavi SSH Amazon Elastic Compute Cloud (Amazon EC2). Dopo aver avviato i nodi, usa SSH per connetterti ad essi.
Nota: Se non disponi di una coppia di chiavi SSH Amazon EC2, creane una nella Console di gestione AWS. Per altre informazioni, consulta Amazon EC2 key pairs and Linux 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
Nota: È possibile creare gruppi di nodi gestiti da Bottlerocket per tipi di istanze generici, ottimizzati per il calcolo, ottimizzati per la memoria e ottimizzati per lo storage. L'AMI Bottlerocket non supporta i tipi di istanze di elaborazione accelerata.
Crea il gruppo di nodi ed elenca i suoi nodi nel cluster EKS
-
Esegui il seguente comando eksctl per creare un gruppo di nodi:
$ eksctl create nodegroup -f bottlerocket.yaml[✔] created 1 nodegroup(s) in cluster "mybottlerocket-cluster"
-
Elenca i nodi nel cluster EKS e i tuoi attributi:
$ 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
Connessione ai nodi AMI Bottlerocket (opzionale)
Connettiti ai nuovi nodi Bottlerocket tramite una sessione di AWS Systems Manager. AWS Systems Manager Agent (SSM Agent) viene eseguito sul nodo perché hai già attivato l'autorizzazione Systems Manager per il ruolo dell'istanza del nodo.
Esegui il comando seguente per trovare gli ID delle istanze:
$ 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
Avvio di una sessione di Systems Manager
Per impostazione predefinita, Bottlerocket ha un contenitore di controllo che viene eseguito su un'istanza separata di containerd. Questo contenitore esegue SSM Agent e consente di eseguire comandi o avviare sessioni di shell interattive sui nodi Bottlerocket.
Scegli un'istanza e avvia una sessione di Systems Manager. L'esempio seguente mostra un comando di sessione di Systems Manager per l'istanza i-0cf32f13f60c2f501:
$ 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!
Informazioni correlate
Contenuto pertinente
- AWS UFFICIALEAggiornata 10 mesi fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 9 mesi fa