View a markdown version of this page

Creazione e gestione di cluster - Guida per l'utente di Eksctl

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

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

Crea un cluster semplice con il seguente comando:

eksctl create cluster

Questo creerà un cluster EKS nella tua regione predefinita (come specificato dalla tua 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 nodegroup autogestito, passate a or. --managed=false eksctl create cluster eksctl create nodegroup

Considerazioni

  • Quando crei cluster inus-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 sarà necessario utilizzare la --zone bandiera.

Crea un cluster utilizzando il file di configurazione

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

Innanzitutto, crea un filecluster.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 il nome del nodegroup 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 Create a stack from the CloudFormation console nella guida per l' CLoudFormation utente di AWS.

Aggiorna kubeconfig per un nuovo cluster

Dopo aver creato il cluster, la configurazione kubernetes appropriata verrà aggiunta al file kubeconfig. Questo è il file che hai configurato nella variabile di ambiente o per impostazione predefinita. KUBECONFIG ~/.kube/config Il percorso del file kubeconfig può essere sovrascritto utilizzando 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

--auto-kubeconfig

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

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 siano 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 causare il fallimento dell'eliminazione del cluster. Se l'eliminazione ha esito negativo o si dimentica il flag di attesa, potrebbe essere necessario 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 nodegroups, le policy Pod Disruption Budget (PDB) possono impedire la corretta rimozione dei nodi. Ad esempio, i cluster aws-ebs-csi-driver installati in genere hanno due pod con una policy PDB che consente a un solo pod di non essere disponibile alla volta, rendendo l'altro pod inevitabile durante l'eliminazione. Per eliminare correttamente il cluster in questi scenari, usa il flag per bypassare i controlli delle disable-nodegroup-eviction policy PDB:

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

Consulta la examples/ directory nel GitHub repository eksctl per altri file di configurazione di esempio.

Esecuzione a secco

La funzionalità 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 possono essere trovate nella pagina Dry Run. Corsa a secco