Aiutaci a migliorare questa pagina
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à.
Vuoi contribuire a questa guida per l'utente? Scegli il GitHub link Modifica questa pagina che si trova nel riquadro destro di ogni pagina. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
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à.
Crea sistemi autogestiti Bottlerocket nodi
Nota
I gruppi di nodi gestiti potrebbero offrire alcuni vantaggi per il tuo caso d'uso. Per ulteriori informazioni, consulta Semplifica il ciclo di vita dei nodi con gruppi di nodi gestiti.
Questo argomento descrive come avviare gruppi Auto Scaling di nodi Bottlerocket registratieksctl
documentazione.
Per informazioni sugli aggiornamenti in loco, consulta Bottlerocket
Importante
-
I nodi Amazon EKS sono EC2 istanze Amazon standard e vengono fatturati in base ai normali prezzi delle EC2 istanze Amazon. Per ulteriori informazioni, consulta i EC2 prezzi di Amazon
. -
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 Implementa Amazon EKS in locale con Outposts AWS.
-
Puoi eseguire la distribuzione su EC2 istanze Amazon con o
x86
Arm processori. Tuttavia, non è possibile eseguire la distribuzione su istanze che hanno Inferentia patatine. -
Bottlerocket è compatibile con AWS CloudFormation. Tuttavia, non esiste un CloudFormation modello ufficiale che possa essere copiato per la distribuzione Bottlerocket nodi per Amazon EKS.
-
Bottlerocket le immagini non vengono fornite con un SSH server o shell. È possibile utilizzare metodi di out-of-band accesso per consentire SSH abilitare il contenitore di amministrazione e passare alcuni passaggi di configurazione di bootstrap con i dati dell'utente. Per ulteriori informazioni, consulta queste sezioni nel file README.md di bottlerocket
su GitHub:
Questa procedura richiede eksctl
versione 0.199.0
o successiva. Puoi verificare la versione con il comando seguente:
eksctl version
Per istruzioni su come installare o aggiornareeksctl
, vedere Installazioneeksctl
documentazione.Nota: questa procedura funziona solo per i cluster creati con. eksctl
+. Copia i seguenti contenuti sul tuo dispositivo. Sostituisci my-cluster
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 alfanumerico e non può superare i 100 caratteri. Il nome deve essere univoco all'interno della AWS regione e AWS dell'account in cui stai creando il cluster. Sostituisci ng-bottlerocket
con un nome per il gruppo di nodi. Il nome del gruppo di nodi non può superare i 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura. Per implementare su istanze Arm, sostituire m5.large
con un tipo di istanza Arm. Sostituisci my-ec2-keypair-name
con il nome di una coppia di chiavi Amazon EC2 SSH che puoi usare per connetterti tramite SSH ai nodi dopo il loro avvio. Se non disponi già di una coppia di EC2 chiavi Amazon, puoi crearne una in AWS Management Console. Per ulteriori informazioni, consulta le coppie di EC2 chiavi Amazon nella Amazon EC2 User Guide. Sostituisci tutti i example values
rimanenti con i valori in tuo possesso. Dopo aver effettuato le sostituzioni, esegui il comando modificato per creare il bottlerocket.yaml
file.
+ Se specifichi un tipo di EC2 istanza Amazon Arm, esamina le considerazioni in Arm Amazon Linux ottimizzato per Amazon EKS AMIs prima della distribuzione. Per istruzioni su come implementare utilizzando un'AMI personalizzata, consulta Building Bottlerocketeksctl
documentazione. Per implementare un gruppo di nodi gestito, implementare un'AMI personalizzata utilizzando un modello di avvio. Per ulteriori informazioni, consulta Personalizza i nodi gestiti con modelli di lancio.
+ IMPORTANTE: per distribuire un gruppo di nodi nelle sottoreti AWS Outposts, AWS Wavelength AWS o Local Zone, non passare sottoreti AWS Outposts, AWS Wavelength o Local Zone quando crei il cluster. AWS È necessario specificare le sottoreti nell'esempio seguente. Per ulteriori informazioni, vedere Creare un gruppo di nodi da un file di configurazioneeksctl
. AWS Sostituiscilo con la regione in cui si trova il cluster. region-code
+
cat >bottlerocket.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: '1.31' 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 Kubernetes volume persistente
su un Bottlerocket nodo che utilizza il plugin Amazon EBS CSI . Il driver Amazon EBS predefinito si basa su strumenti di file system non inclusi in Bottlerocket. Per ulteriori informazioni sulla creazione di una classe di archiviazione utilizzando il driver, vedereArchiviare Kubernetes volumi con Amazon EBS. -
(Facoltativo) Per impostazione predefinita,
kube-proxy
imposta il parametro delnf_conntrack_max
kernel su un valore predefinito che può differire da cosa Bottlerocket impostato originariamente all'avvio. Da conservare Bottlerocket’s impostazione predefinita, edit the `kube-proxy configurazione con il seguente comando.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) Implementate un'applicazione di esempio per testare il Bottlerocket nodi.
-
Ti consigliamo di bloccare Pod accesso a IMDS se sono soddisfatte le seguenti condizioni:
-
Hai intenzione di assegnare ruoli IAM a tutti i tuoi Kubernetes account di servizio in modo che Pods dispongono solo delle autorizzazioni minime di cui hanno bisogno.
-
No Pods nel cluster richiedono l'accesso all'Amazon EC2 Instance Metadata Service (IMDS) per altri motivi, come il recupero della regione corrente. AWS
Per ulteriori informazioni, consulta Limita l'accesso al profilo dell'istanza assegnato al nodo (worker)
. -