Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Avvio dei nodi Bottlerocket autogestiti
Nota
I gruppi di nodi gestiti potrebbero offrire alcuni vantaggi per il tuo caso d'uso. Per ulteriori informazioni, consulta Gruppi di nodi gestiti.
Questo argomento descrive come avviare gruppi Auto Scaling di nodi Bottlerocket registratieksctl
.
Per informazioni sugli aggiornamenti sul posto, consulta Operatore aggiornamenti di Bottlerocket
Importante
I nodi Amazon EKS sono istanze Amazon EC2 standard e la loro fatturazione è basata sui normali prezzi dell'istanza Amazon EC2. Per ulteriori informazioni, consulta Prezzi di Amazon EC2
. -
Puoi avviare nodi Bottlerocket nei cluster estesi di Amazon EKS su AWS Outposts, ma non puoi avviarli in cluster locali su Outposts. AWS Per ulteriori informazioni, consulta Amazon EKS su AWS Outposts.
-
È possibile eseguire l'implementazione su istanze Amazon EC2 con processori
x86
o Arm. Tuttavia, non è possibile eseguire l'implementazione su istanze con chip Inferentia. -
Bottlerocketè compatibile con. AWS CloudFormation Tuttavia, non esiste un CloudFormation modello ufficiale che possa essere copiato per distribuire Bottlerocket nodi per Amazon EKS.
-
Le immagini Bottlerocket non vengono fornite con una shell o un server SSH. Puoi utilizzare metodi di out-of-band accesso per consentire l'SSHattivazione del contenitore di amministrazione e per eseguire alcuni passaggi di configurazione di bootstrap con i dati utente. Per ulteriori informazioni, consulta le seguenti sezioni nel README.md di Bottlerocket
su GitHub:
Per avviare i nodi Bottlerocket utilizzando eksctl
Questa procedura richiede eksctl
versione 0.175.0
o successiva. Puoi verificare la versione con il comando seguente:
eksctl version
Per istruzioni sull'installazione o sull'aggiornamento di eksctl
, consulta la sezione Installationeksctl
.
Nota
Questa procedura funziona solo per i cluster creati con eksctl
.
-
Copia i seguenti contenuti sul dispositivo. Sostituisci
con il nome del cluster. Il nome può contenere solo caratteri alfanumerici (con distinzione tra lettere maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfabetico e non può avere una lunghezza superiore a 100 caratteri. Sostituiscimy-cluster
con un nome per il gruppo di nodi. Il nome del gruppo di nodi non può contenere più di 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura. Per implementare su istanze Arm, sostituireng-bottlerocket
con un tipo di istanza Arm. Sostituiscim5.large
con il nome di una coppia di chiavi SSH Amazon EC2; che puoi utilizzare per connetterti utilizzando SSH nei nodi dopo l'avvio. Se non disponi di una coppia di chiavi Amazon EC2, puoi crearla nella AWS Management Console. Per ulteriori informazioni, consulta Coppie di chiavi Amazon EC2 nella Guida per l'utente di Amazon EC2 per le istanze Linux. Sostituisci tutti imy-ec2-keypair-name
rimanenti con i valori in tuo possesso. Dopo aver effettuato le sostituzioni, eseguire il comando modificato per creareexample values
bottlerocket.yaml
.Se si specifica un tipo di istanza Amazon EC2 Arm, esaminare le considerazioni in AMI Amazon Linux Arm ottimizzate per Amazon EKS prima dell'implementazione. Per istruzioni su come eseguire l'implementazione utilizzando un'AMI personalizzata, consulta Creazione di Bottlerocket
su GitHub e Supporto per AMI personalizzate nella documentazione di eksctl
. Per implementare un gruppo di nodi gestito, implementare un'AMI personalizzata utilizzando un modello di avvio. Per ulteriori informazioni, consulta Personalizzazione di nodi gestiti con un modello di avvio.Importante
Per distribuire un gruppo di nodi nelle sottoreti della zona AWS locale AWS Outposts AWS Wavelength, don't pass AWS Outposts AWS Wavelength, o nelle sottoreti della zona AWS locale quando si crea il cluster. È necessario specificare le sottoreti nell'esempio seguente. Per ulteriori informazioni, vedere Creare un gruppo di nodi da un file di configurazione
e lo Schema del file config nella documentazione su eksctl
. Sostituiscilo
con quello in cui si trova il Regione AWS cluster.region-code
cat >bottlerocket.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:
my-cluster
region:region-code
version:'1.29'
iam: withOIDC: true nodeGroups: - name:ng-bottlerocket
instanceType:m5.large
desiredCapacity:3
amiFamily:Bottlerocket
ami: auto-ssm iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy ssh: allow: true publicKeyName:my-ec2-keypair-name
EOF -
Implementare i nodi mediante il comando seguente.
eksctl create nodegroup --config-file=bottlerocket.yaml
Di seguito viene riportato un output di esempio:
Durante la creazione dei nodi vengono generate diverse righe. Una delle ultime righe di output è simile alla seguente riga di esempio.
[✔] created 1 nodegroup(s) in cluster "
my-cluster
" -
(Facoltativo) Crea un volume persistente
Kubernetes su un nodo Bottlerocket usando il plug-in CSI di Amazon EBS . Il driver Amazon EBS di default si basa su strumenti di file system non inclusi in Bottlerocket. Per ulteriori informazioni sulla creazione di una classe di archiviazione utilizzando il driver, consultare Driver CSI per Amazon EBS. -
(Facoltativo) Per impostazione predefinita,
kube-proxy
imposta il parametro kernelnf_conntrack_max
su un valore predefinito che può differire da quello che Bottlerocket imposta originariamente all'avvio. Per mantenere l'impostazione di defaultdi Bottlerocket, modificare la configurazione kube-proxy
con il comando seguente.kubectl edit -n kube-system daemonset kube-proxy
Aggiungi
--conntrack-max-per-core
e--conntrack-min
agli argomentikube-proxy
nell'esempio seguente. Un'impostazione di0
non implica alcun cambiamento.containers: - command: - kube-proxy - --v=2 - --config=/var/lib/kube-proxy-config/config
- --conntrack-max-per-core=0 - --conntrack-min=0
-
(Facoltativo) implementa un'applicazione di esempio per testare i nodi Bottlerocket.
Consigliamo di bloccare l'accesso dei Pod a IMDS se si verificano le seguenti condizioni:
Prevedi di assegnare ruoli IAM a tutti gli account di servizio Kubernetes in modo che i Pods dispongano solo delle autorizzazioni minime necessarie.
Nessuno Pods nel cluster richiede l'accesso al servizio di metadati delle istanze Amazon EC2 (IMDS) per altri motivi, come il recupero della corrente. Regione AWS
Per ulteriori informazioni, consulta Limita l'accesso al profilo dell'istanza assegnato al nodo (worker)
.