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

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

  • Durante la creazione di 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 è 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 il 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 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 nella guida per l'utente di AWS CLoud Formation.

Aggiorna kubeconfig per un nuovo cluster

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

string

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

Elimina 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 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 examples/directory nel GitHub repository eksctl per altri file di configurazione di esempio.

Esecuzione a secco

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.