

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

# Creazione e gestione di cluster
<a name="creating-and-managing-clusters"></a>

Questo argomento spiega come creare ed eliminare i cluster EKS utilizzando Eksctl. È possibile creare cluster con un comando CLI o creando un file YAML di configurazione del cluster.

## Creazione di un cluster semplice
<a name="_creating_a_simple_cluster"></a>

Crea un cluster semplice con il seguente comando:

```
eksctl create cluster
```

Ciò creerà un cluster EKS nella tua regione predefinita (come specificato dalla configurazione AWS CLI) con un nodegroup gestito contenente due nodi m5.large.

eksctl ora crea un nodegroup gestito per impostazione predefinita quando non viene utilizzato un file di configurazione. Per creare un gruppo di nodi autogestito, passa a o. `--managed=false` `eksctl create cluster` `eksctl create nodegroup`

### Considerazioni
<a name="_considerations"></a>
+ Durante la creazione di cluster in`us-east-1`, potresti incontrare un. `UnsupportedAvailabilityZoneException` Se ciò accade, copia le zone suggerite e passa la `--zones` bandiera, per esempio:`eksctl create cluster --region=us-east-1 --zones=us-east-1a,us-east-1b,us-east-1d`. Questo problema può verificarsi in altre regioni, ma è meno comune. Nella maggior parte dei casi, non è necessario utilizzare la `--zone` bandiera.

## Crea un cluster utilizzando il file di configurazione
<a name="_create_cluster_using_config_file"></a>

È possibile creare un cluster utilizzando un file di configurazione anziché i flag.

Innanzitutto, crea il file`cluster.yaml`:

```
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: basic-cluster
  region: eu-north-1

nodeGroups:
  - name: ng-1
    instanceType: m5.large
    desiredCapacity: 10
    volumeSize: 80
    ssh:
      allow: true # will use ~/.ssh/id_rsa.pub as the default ssh key
  - name: ng-2
    instanceType: m5.xlarge
    desiredCapacity: 2
    volumeSize: 100
    ssh:
      publicKeyPath: ~/.ssh/ec2_id_rsa.pub
```

Quindi, esegui questo comando:

```
eksctl create cluster -f cluster.yaml
```

Questo creerà un cluster come descritto.

Se hai bisogno di usare un VPC esistente, puoi usare un file di configurazione come questo:

```
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: cluster-in-existing-vpc
  region: eu-north-1

vpc:
  subnets:
    private:
      eu-north-1a: { id: subnet-0ff156e0c4a6d300c }
      eu-north-1b: { id: subnet-0549cdab573695c03 }
      eu-north-1c: { id: subnet-0426fb4a607393184 }

nodeGroups:
  - name: ng-1-workers
    labels: { role: workers }
    instanceType: m5.xlarge
    desiredCapacity: 10
    privateNetworking: true
  - name: ng-2-builders
    labels: { role: builders }
    instanceType: m5.2xlarge
    desiredCapacity: 2
    privateNetworking: true
    iam:
      withAddonPolicies:
        imageBuilder: true
```

Il nome del cluster o del gruppo di nodi deve contenere solo caratteri alfanumerici (con distinzione tra maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfabetico e non può superare i 128 caratteri, altrimenti riceverai un errore di convalida. Per ulteriori informazioni, consulta [Creare uno stack dalla CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-parameters.html) nella guida per l' CLoudFormation utente di AWS.

## Aggiorna kubeconfig per un nuovo cluster
<a name="_update_kubeconfig_for_new_cluster"></a>

Dopo la creazione del cluster, la configurazione kubernetes appropriata verrà aggiunta al file kubeconfig. Questo è il file che hai configurato nella variabile di ambiente o di default. `KUBECONFIG` `~/.kube/config` Il percorso del file kubeconfig può essere sovrascritto usando il flag. `--kubeconfig`

Altri flag che possono cambiare il modo in cui viene scritto il file kubeconfig:


| flag | tipo | uso | Valore predefinito | 
| --- | --- | --- | --- | 
| --kubeconfig | stringa | percorso per scrivere kubeconfig (incompatibile con --auto-kubeconfig) | $KUBECONFIG o \~/. kube/config | 
| --set-kubeconfig-context | bool | se vero allora current-context verrà impostato in kubeconfig; se un contesto è già impostato, verrà sovrascritto | true | 
| --configurazione autokubeconfig | bool | salva il file kubeconfig in base al nome del cluster | true | 
| --write-kubeconfig | bool | attiva la scrittura di kubeconfig | true | 

## Eliminazione di un cluster
<a name="_delete_cluster"></a>

Per eliminare questo cluster, esegui:

```
eksctl delete cluster -f cluster.yaml
```

**avvertimento**  
Usa il `--wait` flag con le operazioni di eliminazione per assicurarti che gli errori di eliminazione vengano segnalati correttamente.

Senza il `--wait` flag, eksctl emetterà solo un'operazione di cancellazione CloudFormation nello stack del cluster e non aspetterà la sua eliminazione. In alcuni casi, le risorse AWS che utilizzano il cluster o il relativo VPC possono impedire l'eliminazione del cluster. Se l'eliminazione fallisce o dimentichi il flag di attesa, potresti dover accedere alla CloudFormation GUI ed eliminare gli stack eks da lì.

**avvertimento**  
Le politiche PDB possono bloccare la rimozione dei nodi durante l'eliminazione del cluster.

Quando si elimina un cluster con gruppi di nodi, le politiche Pod Disruption Budget (PDB) possono impedire che i nodi vengano rimossi correttamente. Ad esempio, i cluster `aws-ebs-csi-driver` installati in genere dispongono di due pod con una policy PDB che consente di non rendere disponibile solo un pod alla volta, rendendo l'altro pod impraticabile durante l'eliminazione. Per eliminare correttamente il cluster in questi scenari, utilizzate il `disable-nodegroup-eviction` flag per aggirare i controlli delle policy PDB:

```
eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction
```

Vedi la [https://github.com/eksctl-io/eksctl/tree/master/examples](https://github.com/eksctl-io/eksctl/tree/master/examples)directory nel GitHub repository eksctl per altri file di configurazione di esempio.

## Esecuzione a secco
<a name="_dry_run"></a>

La funzione dry-run consente di generare un ClusterConfig file che salta la creazione del cluster e genera un ClusterConfig file che rappresenta le opzioni CLI fornite e contiene i valori predefiniti impostati da eksctl.

[Maggiori informazioni sono disponibili nella pagina Dry Run.](dry-run.md)