Come posso creare un gruppo di nodi gestito utilizzando l'AMI Bottlerocket in Amazon EKS?
Ultimo aggiornamento: 01-02-2023
Voglio usare eksctl per avviare Bottlerocket Amazon Machine Image (Bottlerocket AMI) per creare un gruppo di nodi gestito in Amazon Elastic Kubernetes Service (Amazon EKS).
Risoluzione
Prerequisito
1. Assicurati di avere eksctl versione 0.124.0 o successiva.
2. Esegui il seguente comando per verificare la versione:
$ eksctl version
Crea un file bottlerocket.yaml
1. Apri il terminale in cui hai installato eksctl. Quindi, completa i seguenti passaggi per creare un nuovo file.
2. Sostituisci mybottlerocket-cluster con il nome del tuo cluster. Il nome può contenere solo caratteri alfanumerici (con distinzione tra maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfabetico e non può essere più lungo di 100 caratteri.
3. Sostituisci bottlerocket-nodegroup con un nome per il tuo gruppo di nodi. Il nome può contenere solo caratteri alfanumerici (con distinzione tra maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfabetico e non può essere più lungo di 100 caratteri.
4. Specifica il tipo di istanza. Ad esempio, per eseguire l'implementazione su un'istanza ARM, sostituisci m5.xlarge con un tipo di istanza ARM.
5. Sostituisci eks_bottlerocket con il nome di una coppia di chiavi SSH Amazon Elastic Compute Cloud (Amazon EC2). Dopo il loro avvio, usa SSH per connetterti ai nodi.
Nota: se non disponi di una coppia di chiavi SSH Amazon EC2, creane una nella Console di gestione AWS. Per ulteriori informazioni, consulta le coppie di chiavi Amazon EC2 e le istanze Linux.
6. Sostituisci tutti i valori rimanenti nell'esempio con i tuoi valori. Dopo aver effettuato le sostituzioni, salva il file 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
Nota: puoi creare gruppi di nodi gestiti da BottleRocket per tutti i tipi di istanze predefiniti. Si tratta di tipi di istanze con scalabilità statica (serie T), generica (serie M), ottimizzata per il calcolo (serie C), ottimizzata per la memoria (serie R) e basata su ARM Graviton2. L'AMI Bottlerocket non supporta i tipi di istanze a calcolo accelerato (P, G, Inf1).
Per ulteriori informazioni sulle AMI Bottlerocket, consulta AMI Bottlerocket ottimizzate per Amazon EKS.
Crea il gruppo di nodi ed elenca i suoi nodi nel cluster EKS
1. 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"
2. Elenca i nodi nel cluster EKS insieme ai tuoi attributi:
$ 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
Connettiti ai nodi AMI Bottlerocket (opzionale)
Connettiti ai nuovi nodi Bottlerocket tramite una sessione AWS Systems Manager (AWS SSM). L'agente AWS SSM è in esecuzione sul nodo perché hai già attivato l'autorizzazione AWS SSM per il ruolo di istanza del nodo. Per ulteriori informazioni su AWS SSM, consulta Cos'è AWS Systems Manager?
1. 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.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
Avvia una sessione SSM
Per impostazione predefinita, Bottlerocket ha un contenitore di controllo che viene eseguito su un'istanza separata di containerd. Questo container esegue l'agente AWS SSM e consente di eseguire comandi o avviare sessioni shell (interprete di comandi) interattive sui nodi Bottlerocket.
1. Scegli una delle istanze che hai identificato in precedenza e avvia una sessione SSM. L'esempio seguente mostra un comando di sessione SSM 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
Questo articolo è stato utile?
Hai bisogno della fattura o di supporto tecnico?