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à.
Auto Scaling
Abilita Auto Scaling
eksctl create cluster --asg-access
Questo flag imposta anche k8s.io/cluster-autoscaler/<clusterName>
tag, quindi la scoperta k8s.io/cluster-autoscaler/enabled
dei gruppi di nodi dovrebbe funzionare.
Una volta che il cluster è in esecuzione, sarà necessario installare Cluster Autoscaler
È inoltre necessario aggiungere quanto segue alle definizioni dei gruppi di nodi gestiti o non gestiti per aggiungere i tag necessari affinché Cluster Autoscaler possa scalare il gruppo di nodi:
nodeGroups: - name: ng1-public iam: withAddonPolicies: autoScaler: true
Scalabilità verso l'alto da 0
Se desideri essere in grado di scalare il tuo gruppo di nodi da 0 e hai delle etichette and/or definite sui tuoi gruppi di nodi, dovrai propagarle come tag sui tuoi Auto Scaling Groups (). ASGs
Un modo per farlo è impostare i tag ASG nel campo delle definizioni dei gruppi di nodi. tags
Ad esempio, dato un gruppo di nodi con le seguenti etichette e sfumature:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: key: feaster value: "true" effect: NoSchedule
Dovresti aggiungere i seguenti tag ASG:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" tags: k8s.io/cluster-autoscaler/node-template/label/my-cool-label: pizza k8s.io/cluster-autoscaler/node-template/taint/feaster: "true:NoSchedule"
Sia per i gruppi di nodi gestiti che per quelli non gestiti, questa operazione può essere eseguita automaticamente impostando propagateASGTags
sutrue
, che aggiungerà le etichette e le tonalità come tag al gruppo Auto Scaling:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" propagateASGTags: true
Auto Scaling con riconoscimento della zona
Se i tuoi carichi di lavoro sono specifici per zona, dovrai creare gruppi di nodi separati per ogni zona. Questo perché cluster-autoscaler
presuppone che tutti i nodi di un gruppo siano esattamente equivalenti. Quindi, ad esempio, se un evento di scale-up viene attivato da un pod che richiede un PVC specifico per una zona (ad esempio un volume EBS), il nuovo nodo potrebbe essere programmato nella AZ sbagliata e il pod non si avvierà.
Non avrai bisogno di un gruppo di nodi separato per ogni AZ se il tuo ambiente soddisfa i seguenti criteri:
-
Nessun requisito di archiviazione specifico per zona.
-
Nessun PodAffinity richiesto con topologia diversa dall'host.
-
Nessun NodeAffinity richiesto sull'etichetta della zona.
-
Nessun NodeSelector su un'etichetta di zona.
Se soddisfi tutti i requisiti di cui sopra (e forse anche altri), dovresti essere al sicuro con un singolo gruppo di nodi che si estende su più nodi. AZs Altrimenti ti consigliamo di creare gruppi di nodi Single-AZ separati:
PRIMA:
nodeGroups: - name: ng1-public instanceType: m5.xlarge # availabilityZones: ["eu-west-2a", "eu-west-2b"]
DOPO:
nodeGroups: - name: ng1-public-2a instanceType: m5.xlarge availabilityZones: ["eu-west-2a"] - name: ng1-public-2b instanceType: m5.xlarge availabilityZones: ["eu-west-2b"]