

 **Contribuisci 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à.

Per contribuire a questa guida per l'utente, scegli il GitHub link **Modifica questa pagina** nel riquadro destro di ogni 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à.

# Crea nodi autogestiti Bottlerocket
<a name="launch-node-bottlerocket"></a>

**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](managed-node-groups.md).

Questo argomento descrive l’avvio di gruppi Auto Scaling di nodi [Bottlerocket](https://aws.amazon.com/bottlerocket/) che si registrano con il cluster Amazon EKS. Bottlerocket è un sistema operativo open source basato su Linux AWS che è possibile utilizzare per eseguire contenitori su macchine virtuali o host bare metal. Dopo che i nodi vengono aggiunti al cluster, puoi implementare applicazioni Kubernetes per gli stessi. Per ulteriori informazioni su Bottlerocket, consulta [Utilizzo di un'AMI Bottlerocket con Amazon EKS attivo](https://github.com/bottlerocket-os/bottlerocket/blob/develop/QUICKSTART-EKS.md) GitHub e supporto [AMI personalizzato](https://eksctl.io/usage/custom-ami-support/) nella documentazione. `eksctl`

[Per informazioni sugli aggiornamenti in loco, consulta Bottlerocket Update Operator su.](https://github.com/bottlerocket-os/bottlerocket-update-operator) GitHub

**Importante**  
I nodi di lavoro 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](https://aws.amazon.com/ec2/pricing/).
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 [Implementazione di Amazon EKS on-premises con AWS Outposts](eks-outposts.md).
Puoi eseguire l’implementazione su istanze Amazon EC2 con processori `x86` o Arm. Tuttavia, non puoi eseguire l’implementazione su istanze con chip Inferentia.
 AWS CloudFormationBottlerocket è compatibile con. Tuttavia, non esiste un CloudFormation modello ufficiale che possa essere copiato per distribuire nodi Bottlerocket per Amazon EKS.
Le immagini Bottlerocket non vengono fornite con un server SSH o una shell. Puoi utilizzare metodi di out-of-band accesso per consentire a SSH di abilitare il 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](https://github.com/bottlerocket-os/bottlerocket) su GitHub:  
 [Esplorazione](https://github.com/bottlerocket-os/bottlerocket#exploration) 
 [Container amministratore](https://github.com/bottlerocket-os/bottlerocket#admin-container) 
 [Impostazioni Kubernetes](https://github.com/bottlerocket-os/bottlerocket#kubernetes-settings) 

Questa procedura richiede `eksctl` versione `0.215.0` o successiva. È possibile verificare la versione con il comando seguente:

```
eksctl version
```

Per istruzioni su come installare o aggiornare `eksctl`, consulta [Installazione](https://eksctl.io/installation) nella documentazione `eksctl`. Nota: questa procedura funziona solo per i cluster creati con `eksctl`.

1. Copia i seguenti contenuti sul 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ò avere una lunghezza superiore a 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ò 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, sostituire *m5.large* con un tipo di istanza Arm. Sostituisci *my-ec2-keypair-name* 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 già di una coppia di chiavi Amazon EC2, puoi crearla nella Console di gestione AWS. Per ulteriori informazioni, consulta la sezione relativa alle [coppie di chiavi Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) nella *Guida per l’utente di Amazon EC2*. Sostituisci tutti i valori esemplificativi rimanenti con i valori in tuo possesso. Dopo aver effettuato le sostituzioni, esegui il comando modificato per creare il file `bottlerocket.yaml`.

   Se specifichi un tipo di istanza Arm Amazon EC2, esamina le considerazioni [in Arm Amazon Linux ottimizzato per Amazon EKS prima della distribuzione AMIs](eks-optimized-ami.md#arm-ami). Per istruzioni su come implementare utilizzando un'AMI personalizzata, consulta [Building Bottlerocket](https://github.com/bottlerocket-os/bottlerocket/blob/develop/BUILDING.md) on e GitHub Custom [AMI support nella documentazione](https://eksctl.io/usage/custom-ami-support/). `eksctl` Per implementare un gruppo di nodi gestito, implementare un’AMI personalizzata utilizzando un modello di avvio. Per ulteriori informazioni, consulta [Personalizzazione dei nodi gestiti con modelli di avvio](launch-templates.md).
**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 configurazione](https://eksctl.io/usage/nodegroups/#creating-a-nodegroup-from-a-config-file) e lo [Schema del file config](https://eksctl.io/usage/schema/) nella documentazione su `eksctl`. *region-code*Sostituiscilo con la regione in cui si trova il cluster. AWS 

   ```
   cat >bottlerocket.yaml <<EOF
   ---
   apiVersion: eksctl.io/v1alpha5
   kind: ClusterConfig
   
   metadata:
     name: my-cluster
     region: region-code
     version: '1.35'
   
   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
   ```

1. 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"
   ```

1. (Facoltativo) Creare un [volume persistente](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) Kubernetes su un nodo Bottlerocket usando il [plug-in CSI di Amazon EBS](https://github.com/kubernetes-sigs/aws-ebs-csi-driver). Il driver Amazon EBS di default si basa su strumenti di file system che non sono inclusi in Bottlerocket. Per ulteriori informazioni sulla creazione di una classe di archiviazione utilizzando il driver, consultare [Utilizzare il volume di archiviazione Kubernetes con Amazon EBS](ebs-csi.md).

1. (Facoltativo) Per impostazione predefinita `kube-proxy` imposta il parametro kernel `nf_conntrack_max` su un valore predefinito che può differire da quello che Bottlerocket imposta originariamente all’avvio. Per mantenere [l’impostazione di default](https://github.com/bottlerocket-os/bottlerocket-core-kit/blob/develop/packages/release/release-sysctl.conf) di Bottlerocket, modifica 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 argomenti `kube-proxy` nell’esempio seguente. Un’impostazione di `0` 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
   ```

1. (Facoltativo) implementare [un’applicazione di esempio](sample-deployment.md) per testare i nodi Bottlerocket.

1. Consigliamo di bloccare l’accesso dei pod a IMDS se si verificano le seguenti condizioni:
   + Prevedi di assegnare ruoli IAM a tutti gli account del servizio Kubernetes in modo che i pod dispongano solo delle autorizzazioni minime necessarie.
   + Nessun pod nel cluster richiede l'accesso al servizio di metadati dell'istanza Amazon EC2 (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)](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node).