

 **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 Microsoft Windows autogestiti
<a name="launch-windows-workers"></a>

Questo argomento illustra l’avvio di gruppi con scalabilità automatica di nodi Windows che si registrano con il cluster Amazon EKS. Dopo che i nodi vengono aggiunti al cluster, puoi implementare applicazioni Kubernetes per gli stessi.

**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 Windows nei cluster estesi di Amazon EKS su AWS Outposts, ma non puoi avviarli in cluster AWS locali su Outposts. Per ulteriori informazioni, consulta [Implementazione di Amazon EKS on-premises con AWS Outposts](eks-outposts.md).

Abilitare il supporto Windows per il cluster. Si consiglia di rivedere le considerazioni importanti prima di avviare un gruppo di nodi Windows. Per ulteriori informazioni, consulta [Abilitazione del supporto Windows](windows-support.md#enable-windows-support).

Puoi avviare nodi Windows autogestiti con uno dei seguenti modi:
+  [`eksctl`](#eksctl_create_windows_nodes) 
+  [Console di gestione AWS](#console_create_windows_nodes) 

## `eksctl`
<a name="eksctl_create_windows_nodes"></a>

 **Avvio dei nodi Windows autogestiti tramite `eksctl`** 

Questa procedura presuppone che `eksctl` sia installato e che la versione `eksctl` sia almeno `0.215.0`. È possibile verificare la tua versione con il seguente comando.

```
eksctl version
```

Per istruzioni sull'installazione o sull'aggiornamento di `eksctl`, consulta la sezione [Installation](https://eksctl.io/installation) nella documentazione di `eksctl`.

**Nota**  
Questa procedura funziona solo per i cluster creati con `eksctl`.

1. (Facoltativo) Se la policy IAM gestita da **Amazoneks\$1CNI\$1Policy** (se hai `IPv4` un cluster) o la (che hai [creato tu stesso](cni-iam-role.md#cni-iam-role-create-ipv6-policy) se hai un `IPv6` cluster) è collegata al ruolo IAM *AmazonEKS\$1CNI\$1IPv6\$1Policy* del [nodo Amazon EKS, ti consigliamo invece di assegnarlo a un ruolo IAM](create-node-role.md) da associare all'account del servizio Kubernetes. `aws-node` Per ulteriori informazioni, consulta [Configurare il plug-in CNI di Amazon VPC per l’utilizzo di IRSA](cni-iam-role.md).

1. In questa procedura si presuppone la disponibilità di un cluster. Se non disponi ancora di un cluster Amazon EKS e di un gruppo di nodi Amazon Linux a cui aggiungere un gruppo di nodi Windows, ti consigliamo di seguire [Nozioni di base su Amazon EKS: `eksctl`](getting-started-eksctl.md). Questa guida fornisce una spiegazione dettagliata completa per la creazione di un cluster Amazon EKS con nodi Amazon Linux.

   Crea il tuo gruppo di nodi con il comando seguente. *region-code*Sostituiscilo con la regione in cui si trova il cluster. AWS 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 AWS della regione e AWS dell'account in cui stai creando il cluster. Sostituisci *ng-windows* 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. Puoi sostituirlo *2019* con `2022` per usare Windows Server 2022 o `2025` usare Windows Server 2025. Sostituisci il resto dei valori di esempio con quelli in tuo possesso.
**Importante**  
Per distribuire un gruppo di nodi nelle sottoreti AWS Outposts, AWS Wavelength AWS o Local Zone, non passare le sottoreti AWS Outposts, Wavelength o Local Zone quando crei il cluster. Crea il gruppo di nodi con un file di configurazione, specificando le sottoreti AWS Outposts, Wavelength o Local Zone. Per ulteriori informazioni, vedere [Creazione di 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`.

   ```
   eksctl create nodegroup \
       --region region-code \
       --cluster my-cluster \
       --name ng-windows \
       --node-type t2.large \
       --nodes 3 \
       --nodes-min 1 \
       --nodes-max 4 \
       --managed=false \
       --node-ami-family WindowsServer2019FullContainer
   ```
**Nota**  
Se i nodi non riescono a unirsi al cluster, consultare [Impossibile aggiungere i nodi al cluster](troubleshooting.md#worker-node-fail) nella Guida alla risoluzione dei problemi.
Per vedere le opzioni disponibili per i comandi `eksctl`, inserire il comando seguente.  

     ```
     eksctl command -help
     ```

   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. (Opzionale) implementare [un’applicazione di esempio](sample-deployment.md) per testare il cluster e i nodi Windows.

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).

## Console di gestione AWS
<a name="console_create_windows_nodes"></a>

 **Prerequisiti** 
+ Creazione di un cluster Amazon EKS e di un gruppo di nodi Linux. Se non disponi di tali risorse, ti consigliamo di crearle utilizzando una delle nostre guide in [Nozioni di base su Amazon EKS](getting-started.md). Queste guide descrivono come creare un cluster Amazon EKS con nodi Linux.
+ Creazione di un VPC e di un gruppo di sicurezza esistenti che soddisfano i requisiti per un cluster Amazon EKS. Per ulteriori informazioni, consulta [Visualizzazione di requisiti di rete di Amazon EKS per VPC e sottoreti](network-reqs.md) e [Visualizzazione dei requisiti relativi al gruppo di sicurezza Amazon EKS per cluster](sec-group-reqs.md). Le guide in [Nozioni di base su Amazon EKS](getting-started.md) consentono di creare un VPC che soddisfa i requisiti. In alternativa, è possibile anche seguire [Create an Amazon VPC for your Amazon EKS cluster](creating-a-vpc.md) crearne uno nuovo manualmente.
+ Un cluster Amazon EKS esistente che utilizza un VPC e un gruppo di sicurezza in grado di soddisfare i requisiti di un cluster Amazon EKS. Per ulteriori informazioni, consulta [Crea un cluster Amazon EKS.](create-cluster.md). Se sono presenti sottoreti nella AWS regione in cui sono abilitati AWS Outposts, AWS Wavelength o AWS Local Zones, tali sottoreti non devono essere state passate al momento della creazione del cluster.

 **Passaggio 1: avvia i nodi Windows autogestiti utilizzando la Console di gestione AWS ** 

1. Attendi che lo stato del cluster risulti `ACTIVE`. Se i nodi vengono avviati prima che il cluster sia attivo, la registrazione al cluster non riesce e sarà necessario riavviarli.

1. Apri la [console AWS CloudFormation ](https://console.aws.amazon.com/cloudformation/) 

1. Seleziona **Crea stack**.

1. Per **Specifica modello**, selezionare **URL Amazon S3**.

1. Copia il seguente URL e incollalo nell’**URL di Amazon S3**.

   ```
   https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2023-02-09/amazon-eks-windows-nodegroup.yaml
   ```

1. Seleziona due volte **Next** (Avanti).

1. Nella pagina **Quick create stack (Creazione rapida pila)**, inserire i seguenti parametri di conseguenza:
   +  Nome **dello stack: scegli un nome** per lo stack. AWS CloudFormation Ad esempio, è possibile chiamarlo `my-cluster-nodes`.
   +  **ClusterName**: inserisci il nome che hai usato per creare il cluster Amazon EKS.
**Importante**  
Questo nome deve corrispondere esattamente a quello presente in [Step 1: Create your Amazon EKS cluster](getting-started-console.md#eks-create-cluster). In caso contrario, i nodi non possono aggiungersi al cluster.
   +  **ClusterControlPlaneSecurityGroup**: scegli il gruppo di sicurezza dall' AWS CloudFormation output che hai generato quando hai creato il tuo [VPC](creating-a-vpc.md). Nella procedura seguente viene illustrato un metodo per recuperare il gruppo applicabile.

     1. Aprire la [Console Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

     1. Scegli il nome del cluster.

     1. Scegli la scheda **Reti**.

     1. Utilizza il valore dei **gruppi di sicurezza aggiuntivi** come riferimento quando selezioni dall'**ClusterControlPlaneSecurityGroup**elenco a discesa.
   +  **NodeGroupName**: inserisci un nome per il tuo gruppo di nodi. Questo nome può essere utilizzato in seguito per identificare il gruppo di nodi con dimensionamento automatico creato per i tuoi 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.
   +  **NodeAutoScalingGroupMinSize**: Inserisci il numero minimo di nodi su cui il gruppo Auto Scaling del nodo può scalare.
   +  **NodeAutoScalingGroupDesiredCapacity**: Inserisci il numero di nodi desiderato su cui scalare quando viene creato lo stack.
   +  **NodeAutoScalingGroupMaxSize**: Inserisci il numero massimo di nodi su cui il gruppo Auto Scaling del nodo può scalare orizzontalmente.
   +  **NodeInstanceType**: scegli un tipo di istanza per i tuoi nodi. Per ulteriori informazioni, consulta [Scelta di una tipologia di istanza di nodo Amazon EC2 ottimale](choosing-instance-type.md).
**Nota**  
[I tipi di istanza supportati per l'ultima versione del [plug-in Amazon VPC CNI per Kubernetes sono elencati in vpc\$1ip\$1resource\$1limit.go](https://github.com/aws/amazon-vpc-cni-k8s) on.](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/pkg/vpc/vpc_ip_resource_limit.go) GitHub Potrebbe essere necessario aggiornare la versione CNI per utilizzare i tipi di istanze supportati più recenti. Per ulteriori informazioni, consulta [Assegna IPs ai pod con Amazon VPC CNI](managing-vpc-cni.md).
   +  **NodeImageIdSSMParam**: precompilato con il parametro Amazon EC2 Systems Manager dell'attuale ID AMI Windows Core ottimizzato per Amazon EKS. Per utilizzare la versione completa di Windows, sostituire *Core* con `Full`.
   +  **NodeImageId**: (Facoltativo) Se utilizzi un'AMI personalizzata (anziché un'AMI ottimizzata per Amazon EKS), inserisci un ID AMI del nodo per la tua AWS regione. Se specifichi un valore per questo campo, questo sostituisce tutti i valori presenti nel **NodeImageIdSSMParam**campo.
   +  **NodeVolumeSize**: Specificate la dimensione del volume root per i nodi, in GiB.
   +  **KeyName**: inserisci il nome di una coppia di chiavi SSH Amazon EC2 che puoi usare per connetterti tramite SSH ai tuoi nodi dopo il loro avvio. Se non hai già 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/WindowsGuide/ec2-key-pairs.html) nella *Guida per l’utente di Amazon EC2*.
**Nota**  
Se non fornisci una key pair qui, lo AWS CloudFormation stack non viene creato.
   +  **BootstrapArguments**: Specificate eventuali argomenti opzionali da passare allo script di bootstrap del nodo, come ad esempio l'utilizzo di `kubelet` argomenti aggiuntivi. `-KubeletExtraArgs`
   +  **Disabilita IMDSv1**: per impostazione predefinita, ogni nodo supporta Instance Metadata Service versione 1 (IMDSv1) e. IMDSv2 È possibile disabilitare IMDSv1. Per impedire l'utilizzo di nodi e Pod futuri nel gruppo di nodi MDSv1, imposta **Disable** su IMDSv1 **true**. Per ulteriori informazioni su IMDS, consulta [Configurazione del servizio di metadati dell’istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).
   +  **VpcId**: Seleziona l'ID per il [VPC](creating-a-vpc.md) che hai creato.
   +  **NodeSecurityGroups**: Seleziona il gruppo di sicurezza che è stato creato per il tuo gruppo di nodi Linux quando hai creato il tuo [VPC](creating-a-vpc.md). Se ai nodi Linux è collegato più di un gruppo di sicurezza, specificarli tutti. Questo, ad esempio, se il gruppo di nodi Linux è stato creato con`eksctl`.
   +  **Sottoreti**: scegliere le sottoreti create. Se hai creato il VPC utilizzando i passaggi descritti in [Create an Amazon VPC for your Amazon EKS cluster](creating-a-vpc.md), specifica solo le sottoreti private all’interno del VPC per avviare i nodi.
**Importante**  
Se una qualsiasi delle sottoreti è pubblica, devi abilitare l’impostazione di assegnazione automatica degli indirizzi IP pubblici. Se l'impostazione non è abilitata per la sottorete pubblica, a tutti i nodi distribuiti in quella sottorete pubblica non verrà assegnato un indirizzo IP pubblico e non saranno in grado di comunicare con il cluster o altri servizi. AWS Se la sottorete è stata distribuita prima del 26 marzo 2020 utilizzando uno dei [modelli AWS CloudFormation VPC di Amazon EKS](creating-a-vpc.md) o utilizzando`eksctl`, l'assegnazione automatica degli indirizzi IP pubblici è disabilitata per le sottoreti pubbliche. Per informazioni su come abilitare l'assegnazione di indirizzi IP pubblici per una sottorete, consulta [Modifica](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip) dell'attributo di indirizzamento pubblico per la sottorete. IPv4 Se il nodo viene distribuito in una sottorete privata, è in grado di comunicare con il cluster e altri AWS servizi tramite un gateway NAT.
Se le sottoreti non hanno accesso a Internet, leggi con attenzione le considerazioni e i passaggi aggiuntivi descritti in [Deploy private clusters with limited internet access](private-clusters.md).
Se si AWS selezionano le sottoreti Outposts, Wavelength o Local Zone, le sottoreti non devono essere state passate al momento della creazione del cluster.

1. Confermare che la pila sia in grado di creare risorse IAM, quindi scegliere **Crea pila**.

1. Al termine della creazione della pila, selezionala nella console e scegli **Outputs (Uscite)**.

1. Registra il per il gruppo di nodi che è stato **NodeInstanceRole**creato. Questo servirà durante la configurazione dei nodi Windows Amazon EKS.

 **Passaggio 2: abilita l’aggiunta di nodi al cluster** 

1. Verifica se disponi già di una `ConfigMap` per `aws-auth`.

   ```
   kubectl describe configmap -n kube-system aws-auth
   ```

1. Se ti viene mostrata una `ConfigMap` per `aws-auth`, aggiornala se necessario.

   1. Apri `ConfigMap` per la modifica.

      ```
      kubectl edit -n kube-system configmap/aws-auth
      ```

   1. Aggiungi nuove voci `mapRoles`, se necessario. Imposta i `rolearn` valori **NodeInstanceRole**sui valori che hai registrato nelle procedure precedenti.

      ```
      [...]
      data:
        mapRoles: |
      - rolearn: <ARN of linux instance role (not instance profile)>
            username: system:node:{{EC2PrivateDNSName}}
            groups:
              - system:bootstrappers
              - system:nodes
          - rolearn: <ARN of windows instance role (not instance profile)>
            username: system:node:{{EC2PrivateDNSName}}
            groups:
              - system:bootstrappers
              - system:nodes
              - eks:kube-proxy-windows
      [...]
      ```

   1. Salva il file ed esci dall’editor di testo.

1. Se hai ricevuto un messaggio di errore che indica "`Error from server (NotFound): configmaps "aws-auth" not found`", applica lo `ConfigMap` di stock.

   1. Scarica la mappa di configurazione.

      ```
      curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm-windows.yaml
      ```

   1. Nel `aws-auth-cm-windows.yaml` file, impostate i `rolearn` valori **NodeInstanceRole**sui valori applicabili registrati nelle procedure precedenti. Per eseguire questa operazione, utilizza un editor di testo o sostituisci i valori di esempio tramite il comando seguente:

      ```
      sed -i.bak -e 's|<ARN of linux instance role (not instance profile)>|my-node-linux-instance-role|' \
          -e 's|<ARN of windows instance role (not instance profile)>|my-node-windows-instance-role|' aws-auth-cm-windows.yaml
      ```
**Importante**  
Non modificare altre righe in questo file.
Non utilizzare lo stesso ruolo IAM sia per i nodi Windows che per quelli Linux.

   1. Applica la configurazione. L’esecuzione di questo comando potrebbe richiedere alcuni minuti.

      ```
      kubectl apply -f aws-auth-cm-windows.yaml
      ```

1. Guarda lo stato dei nodi e attendi che raggiungano lo stato `Ready`.

   ```
   kubectl get nodes --watch
   ```

   Inserisci `Ctrl`\$1`C` per tornare a un prompt dello shell (interprete di comandi).
**Nota**  
Se ricevi qualsiasi altro errore di tipo di risorsa o autorizzazione, consulta la sezione [Accesso negato o non autorizzato (`kubectl`)](troubleshooting.md#unauthorized) nell’argomento relativo alla risoluzione dei problemi.

   Se i nodi di lavoro non riescono a unirsi al cluster, consulta [Impossibile aggiungere i nodi al cluster](troubleshooting.md#worker-node-fail) nel capitolo sulla risoluzione dei problemi.

 **Fase 3: Azioni aggiuntive** 

1. (Opzionale) implementare [un’applicazione di esempio](sample-deployment.md) per testare il cluster e i nodi Windows.

1. (Facoltativo) Se la policy IAM gestita da **Amazoneks\$1CNI\$1Policy** (se hai `IPv4` un cluster) o la (che hai [creato tu stesso](cni-iam-role.md#cni-iam-role-create-ipv6-policy) se hai un `IPv6` cluster) è collegata al ruolo IAM *AmazonEKS\$1CNI\$1IPv6\$1Policy* del [nodo Amazon EKS, ti consigliamo invece di assegnarlo a un ruolo IAM](create-node-role.md) da associare all'account del servizio Kubernetes. `aws-node` Per ulteriori informazioni, consulta [Configurare il plug-in CNI di Amazon VPC per l’utilizzo di IRSA](cni-iam-role.md).

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).