Cluster Autoscaler

Quando si abilita il componente aggiuntivo Cluster Autoscaler, è possibile passare come argomenti le seguenti coppie chiave/valore.

Argomenti di configurazione comuni a tutti i componenti aggiuntivi cluster
Chiave (API e CLI) Nome visualizzato chiave (console) Descrizione Obbligatorio/Facoltativo Valore predefinito Valore di esempio
affinity affinità

Gruppo di regole di pianificazione affinità.

Formato JSON in testo normale o codificato in Base64.

Facoltativo nullo nullo
nodeSelectors selettori nodi

È possibile utilizzare i selettori nodo e le etichette nodo per controllare i nodi di lavoro sui quali vengono eseguiti i pod componente aggiuntivo.

Affinché un pod venga eseguito su un nodo, il selettore nodo del pod deve avere la stessa chiave/valore dell'etichetta del nodo.

Impostare nodeSelectors su una coppia chiave/valore corrispondente sia al selettore nodo del pod che all'etichetta del nodo di lavoro.

Formato JSON in testo normale o codificato in Base64.

Facoltativo nullo {"foo":"bar", "foo2": "bar2"}

Il pod verrà eseguito solo sui nodi con l'etichetta foo=bar o foo2=bar2.

numOfReplicas numOfReplicas Numero di repliche della distribuzione del componente aggiuntivo.

Per CoreDNS, utilizzare invece nodesPerReplica.

Obbligatorio 1

Crea una replica della distribuzione del componente aggiuntivo per cluster.

2

Crea due repliche della distribuzione componente aggiuntivo per cluster.

rollingUpdate rollingUpdate

Controlla il funzionamento desiderato dell'aggiornamento in sequenza tramite maxSurge e maxUnavailable.

Formato JSON in testo normale o codificato in Base64.

Facoltativo nullo nullo
tolerations tolleranze

È possibile utilizzare le tenute e le tolleranze per controllare i nodi di lavoro sui quali vengono eseguiti i pod dei componenti aggiuntivi.

Affinché un pod venga eseguito su un nodo che presenta una torsione, il pod deve avere una tolleranza corrispondente.

Impostare tolerations su una coppia chiave/valore corrispondente sia alla tolleranza del pod che alla tendenza del nodo di lavoro.

Formato JSON in testo normale o codificato in Base64.

Facoltativo nullo [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Solo i pod con questa tolleranza possono essere eseguiti sui nodi di lavoro che hanno la caratteristica tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Come diffondere pod corrispondenti tra la topologia specificata.

Formato JSON in testo normale o codificato in Base64.

Facoltativo nullo nullo
Argomenti di configurazione specifici per questo componente aggiuntivo cluster
Chiave (API e CLI) Nome visualizzato chiave (console) Descrizione Obbligatorio/Facoltativo Valore predefinito Valore di esempio
annotations annotazioni

Annotazioni da passare alla distribuzione di Cluster Autoscaler.

Ad esempio, "{\"prometheus.io/scrape\":\"true\",\"prometheus.io/port\":\"8086\"}"

Formato JSON in testo normale o codificato in Base64.

Facoltativo ""
authType authType Il tipo di autenticazione utilizzato da Cluster Autoscaler durante l'esecuzione delle richieste è uno dei seguenti:
  • instance specifica il principal dell'istanza
  • workload specifica l'identità del carico di lavoro
Obbligatorio instance
balanceSimilarNodeGroups balanceSimilarNodeGroups Rileva gruppi di nodi simili e bilancia il numero di nodi tra loro. Facoltativo false
balancingIgnoreLabel balancingIgnoreLabel Definire un'etichetta nodo che deve essere ignorata quando si considera la somiglianza del gruppo di nodi. Un'etichetta per occorrenza flag. Il formato è label1, label2. Facoltativo ""
balancingLabel balancingLabel Definire un'etichetta nodo da utilizzare durante il confronto della somiglianza del gruppo di nodi. Se impostata, tutte le altre logiche di confronto vengono disabilitate e vengono prese in considerazione solo le etichette durante il confronto dei gruppi. Un'etichetta per occorrenza flag. Il formato è label1, label2. Facoltativo ""
cluster-autoscaler.ContainerResources risorse contenitore cluster-autoscaler

È possibile specificare le quantità di risorse richieste dai container aggiuntivi e impostare i limiti di utilizzo delle risorse che i container aggiuntivi non possono superare.

Formato JSON in testo normale o codificato in Base64.

Facoltativo nullo {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Crea container aggiuntivi che richiedono 100 millilitri di CPU e 100 mebibyte di memoria. Limita i contenitori aggiuntivi a 500 milllicires di CPU e 200 mebibyte di memoria.

cordonNodeBeforeTerminating (Non visualizzato nella console) Indica se i nodi dei cavi CA devono essere terminati durante il processo di downscale. Facoltativo false
coresTotal (Non visualizzato nella console) Numero minimo e massimo di memorie centrali nel cluster, nel formato <min>:<max>. Cluster autoscaler non ridimensionerà il cluster oltre questi numeri. Facoltativo 0:320000
daemonsetEvictionForEmptyNodes (Non visualizzato nella console) Indica se i pod DaemonSet verranno terminati in modo esteso dai nodi vuoti. Facoltativo false
daemonsetEvictionForOccupiedNodes (Non visualizzato nella console) Indica se i pod DaemonSet verranno terminati in modo esteso da nodi non vuoti. Facoltativo true
debuggingSnapshotEnabled (Non visualizzato nella console) Indica se lo snapshot di debug della funzione di ridimensionamento automatico del cluster è abilitato. Facoltativo false
emitPerNodegroupMetrics (Non visualizzato nella console) Se true, emetti le metriche per gruppo di nodi. Facoltativo false
enforceNodeGroupMinSize (Non visualizzato nella console) Se necessario, CA deve eseguire lo scale up del gruppo di nodi alla dimensione minima configurata. Facoltativo false
estimator (Non visualizzato nella console) Tipo di stimatore risorse da utilizzare per lo scale up. Facoltativo binpacking
expander espandi Tipo di espansione del gruppo di nodi da utilizzare nello scale up.

Si noti che expander=price non è supportato.

Facoltativo random
expendablePodsPriorityCutoff (Non visualizzato nella console) I pod con priorità inferiore al limite saranno spendibili. Possono essere uccisi senza alcuna considerazione durante lo scale down e non causano lo scale up. I pod con priorità nulla (PodPriority disabilitato) non sono eseguibili. Facoltativo -10
ignoreDaemonsetsUtilization (Non visualizzato nella console) Indica se i pod DaemonSet verranno ignorati durante il calcolo dell'utilizzo delle risorse per il ridimensionamento. Facoltativo false
ignoreMirrorPodsUtilization (Non visualizzato nella console) Indica se i pod mirror verranno ignorati durante il calcolo dell'utilizzo delle risorse per il ridimensionamento. Facoltativo false
leaderElect (Non visualizzato nella console) Avviare un cliente di elezione leader e acquisire leadership prima di eseguire il ciclo principale. Abilitare questa opzione quando si eseguono componenti replicati per l'alta disponibilità. Facoltativo true
leaderElectLeaseDuration (Non visualizzato nella console) La durata che i candidati non leader aspetteranno dopo aver osservato un rinnovo della leadership fino a quando non tenteranno di acquisire la leadership di uno slot leader guidato ma non rinnovato. Questa è effettivamente la durata massima che un leader può essere fermato prima di essere sostituito da un altro candidato. Questo è applicabile solo se l'elezione del leader è abilitata. Facoltativo 15s
leaderElectRenewDeadline (Non visualizzato nella console) Intervallo tra i tentativi da parte del cluster autoscaler attivo di rinnovare uno slot di leadership prima che smetta di guidare. La durata del leasing deve essere minore o uguale a quella del leasing. Questo è applicabile solo se l'elezione del leader è abilitata. Facoltativo 10s
leaderElectResourceLock (Non visualizzato nella console) Tipo di oggetto risorsa utilizzato per il blocco durante la selezione del leader. Le opzioni supportate sono leases (impostazione predefinita), endpoints, endpointsleases, configmaps e configmapsleases. Facoltativo leases
leaderElectRetryPeriod (Non visualizzato nella console) La durata di attesa dei clienti tra il tentativo di acquisizione e il rinnovo di una leadership. Questo è applicabile solo se l'elezione del leader è abilitata. Facoltativo 2s
maxAutoprovisionedNodeGroupCount (Non visualizzato nella console) Numero massimo di gruppi con provisioning automatico nel cluster. Facoltativo 15
maxEmptyBulkDelete maxEmptyBulkDelete Numero massimo di nodi vuoti che possono essere eliminati contemporaneamente. Facoltativo 10
maxFailingTime (Non visualizzato nella console) Tempo massimo dall'ultima esecuzione di autoscaler riuscita registrata prima del riavvio automatico. Facoltativo 15m
maxGracefulTerminationSec (Non visualizzato nella console) Numero massimo di secondi durante i quali l'autorità di certificazione attende l'interruzione del pod durante il tentativo di eseguire lo scale down di un nodo. Facoltativo 600
maxInactivity (Non visualizzato nella console) Tempo massimo dall'ultima attività di ridimensionamento automatico registrata prima del riavvio automatico. Facoltativo 10m
maxNodeProvisionTime maxNodeProvisionTime Tempo massimo durante il quale l'autorità di certificazione attende il provisioning del nodo. Facoltativo 15m
maxNodesTotal (Non visualizzato nella console) Numero massimo di nodi in tutti i pool di nodi. Cluster autoscaler non aumenterà il cluster oltre questo numero. Facoltativo 0
maxTotalUnreadyPercentage (Non visualizzato nella console) Percentuale massima di nodi non pronti nel cluster. Una volta superato questo limite, CA interrompe le operazioni. Facoltativo 45
memoryTotal (Non visualizzato nella console) Numero minimo e massimo di gigabyte di memoria nel cluster, nel formato <min>:<max>. Cluster autoscaler non ridimensionerà il cluster oltre questi numeri. Facoltativo 0:6400000
minReplicaCount (Non visualizzato nella console) Numero minimo di repliche o repliche che un set di repliche o un controller di replica dovrebbe avere per consentire l'eliminazione dei pod in scale down. Facoltativo 0
nodes nodi

Lista del numero minimo di nodi, del numero massimo di nodi e dell'OCID del nodepool che deve essere gestito da Cluster Autoscaler.

Il formato è <min>:<max>:<node-pool1-ocid>, <min>:<max>:<node-pool2-ocid>.

Utilizzare nodes o nodeGroupAutoDiscovery, ma non entrambi.

Formato JSON in testo normale o codificato in Base64.

Obbligatorio, se nodeGroupAutoDiscovery non è impostato ""
nodeGroupAutoDiscovery (Non visualizzato nella console)

Lista di coppie chiave-valore tag, numero minimo di nodi, numero massimo di nodi e OCID del compartimento in cui si trova il pool di nodi da gestire da Cluster Autoscaler.

Il formato è compartmentId:<compartment-ocid>,nodepoolTags:<tagKey1>=<tagValue1>&<tagKey2>=<tagValue2>,min:<min-nodes>,max:<max-nodes>

Utilizzare nodeGroupAutoDiscovery o nodes, ma non entrambi.

Supportato con Cluster Autoscaler versione 1.30.3, versione 1.31.1, e versione 1.32.0 e successive.

Formato JSON in testo normale o codificato in Base64.

Obbligatorio, se nodes non è impostato
okTotalUnreadyCount (Non visualizzato nella console) Numero di nodi non pronti consentiti, indipendentemente da maxTotalUnreadyPercentage. Facoltativo 3
recordDuplicatedEvents (Non visualizzato nella console) Consente al ridimensionatore automatico di stampare gli eventi duplicati in una finestra di 5 minuti. Facoltativo false
scaleDownCandidatesPoolMinCount (Non visualizzato nella console)

Numero minimo di nodi considerati come candidati non vuoti aggiuntivi per lo scale down quando alcuni candidati dell'iterazione precedente non sono più validi. Quando calcoliamo la dimensione del pool per i candidati aggiuntivi prendiamo.

max(#nodes * scale-down-candidates-pool-ratio,
              scale-down-candidates-pool-min-count)
Obbligatorio 50
scaleDownCandidatesPoolRatio (Non visualizzato nella console) Rapporto di nodi considerati come candidati non vuoti aggiuntivi per lo scale down quando alcuni candidati dell'iterazione precedente non sono più validi. Valore inferiore significa una migliore reattività CA ma una possibile latenza di scale-down più lenta. Un valore più elevato può influire sulle prestazioni della CA con cluster di grandi dimensioni (centinaia di nodi). Imposta su 1.0 per disattivare questa euristica - CA prenderà tutti i nodi come candidati aggiuntivi. Obbligatorio 0.1
scaleDownDelayAfterAdd scaleDownDelayAfterAdd Riprende quanto tempo dopo lo scale up la valutazione dello scale down. Obbligatorio 10m
scaleDownDelayAfterDelete (Non visualizzato nella console) Quanto tempo dopo l'eliminazione del nodo che esegue lo scale down della valutazione riprende, per impostazione predefinita viene utilizzato l'intervallo di scansione. Obbligatorio 10s
scaleDownDelayAfterFailure (Non visualizzato nella console) Riprende quanto tempo dopo l'errore di scale down che comporta lo scale down della valutazione. Obbligatorio 3m
scaleDownEnabled scaleDownEnabled La CA deve ridimensionare il cluster. Facoltativo true
scaleDownNonEmptyCandidatesCount (Non visualizzato nella console) Numero massimo di nodi non vuoti considerati in un'iterazione come candidati per lo scale down con scarico. Valore inferiore significa una migliore reattività CA ma una possibile latenza di scale-down più lenta. Un valore più elevato può influire sulle prestazioni della CA con cluster di grandi dimensioni (centinaia di nodi). Impostare su un valore non positivo per disattivare questa euristica. CA non limiterà il numero di nodi considerati. Obbligatorio 30
scaleDownUnneededTime scaleDownUnneededTime Per quanto tempo un nodo deve essere non necessario prima di essere idoneo per lo scale down. Obbligatorio 10m
scaleDownUnreadyTime (Non visualizzato nella console) Per quanto tempo un nodo non pronto deve essere non necessario prima di essere idoneo per lo scale down. Obbligatorio 20m
scaleDownUtilizationThreshold (Non visualizzato nella console) Livello di utilizzo dei nodi, definito come la somma delle risorse richieste diviso per la capacità, al di sotto del quale un nodo può essere considerato per lo scale down. Obbligatorio 0.5
scanInterval scanInterval Frequenza con cui il cluster viene rivalutato per lo scale up o lo scale down. Facoltativo 10s
skipNodesWithCustomControllerPods (Non visualizzato nella console) Se true, il ridimensionatore automatico del cluster non eliminerà mai i nodi con pod di proprietà dei controller personalizzati. Facoltativo true
skipNodesWithLocalStorage (Non visualizzato nella console) Se true, il cluster autoscaler non eliminerà mai i nodi con pod con storage locale, ad esempio EmptyDir o HostPath. Facoltativo true
skipNodesWithSystemPods (Non visualizzato nella console) Se true, il cluster autoscaler non eliminerà mai i nodi con pod dal sistema kube (ad eccezione dei pod DaemonSet o mirror). Facoltativo true
statusConfigMapName (Non visualizzato nella console) Il nome dello stato ConfigMap scritto da CA. Facoltativo cluster-autoscaler-status
stderrthreshold (Non visualizzato nella console) La soglia di severità del log, oltre la quale i log vengono inviati a stderr. Ad esempio, se si imposta questa opzione su error, tutti i log con severità superiore a error vengono inviati a stderr. Facoltativo info
unremovableNodeRecheckTimeout unremovableNodeRecheckTimeout Timeout prima di controllare di nuovo un nodo che non è stato possibile rimuovere prima. Obbligatorio 5m
v (Non visualizzato nella console) Numero per il dettaglio del log. Facoltativo 0
writeStatusConfigmap (Non visualizzato nella console) La CA deve scrivere le informazioni sullo stato in una mappa di configurazione. Facoltativo true