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 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
È 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/
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.