Cluster Autoscaler

Ao ativar o complemento Cluster Autoscaler, você pode passar os pares de chave/valor a seguir como argumentos.

Argumentos de Configuração Comuns a todos os Complementos de Cluster
Chave (API e CLI) Nome para Exibição da Chave (Console) Descrição Obrigatório/Opcional Valor Padrão Valor de Exemplo
affinity afinidade

Um grupo de regras de programação de afinidade.

Formato JSON em texto simples ou codificado em Base64.

Opcional nulo nulo
nodeSelectors seletores de nó

Você pode usar seletores de nó e labels de nó para controlar os nós de trabalho nos quais os pods complementares são executados.

Para que um pod seja executado em um nó, o seletor de nós do pod deve ter a mesma chave/valor do label do nó.

Defina nodeSelectors como um par de chave/valor que corresponda ao seletor de nós do pod e ao label do nó de trabalho.

Formato JSON em texto simples ou codificado em Base64.

Opcional nulo {"foo":"bar", "foo2": "bar2"}

O pod só será executado em nós que tenham o label foo=bar ou foo2=bar2.

numOfReplicas numOfReplicas O número de réplicas da implantação do complemento.

(Para CoreDNS, use nodesPerReplica.)

Obrigatório 1

Cria uma réplica da implantação do complemento por cluster.

2

Cria duas réplicas da implantação do complemento por cluster.

rollingUpdate rollingUpdate

Controla o comportamento desejado de atualização incremental por maxSurge e maxUnavailable.

Formato JSON em texto simples ou codificado em Base64.

Opcional nulo nulo
tolerations tolerâncias

Você pode usar taints e tolerations para controlar os nós de trabalho nos quais os pods complementares são executados.

Para que um pod seja executado em um nó que tenha uma taint, o pod deve ter uma tolerância correspondente.

Defina tolerations como um par de chave/valor que corresponda à tolerância do pod e à mancha do nó de trabalho.

Formato JSON em texto simples ou codificado em Base64.

Opcional nulo [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Somente pods que têm essa tolerância podem ser executados em nós de trabalho que têm a mancha tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Como distribuir pods correspondentes entre a topologia fornecida.

Formato JSON em texto simples ou codificado em Base64.

Opcional nulo nulo
Argumentos de Configuração Específicos para esta Extensão de Cluster
Chave (API e CLI) Nome para Exibição da Chave (Console) Descrição Obrigatório/Opcional Valor Padrão Valor de Exemplo
annotations anotações

Anotações a serem passadas para a implantação do Cluster Autoscaler.

Por exemplo, "{\"prometheus.io/scrape\":\"true\",\"prometheus.io/port\":\"8086\"}"

Formato JSON em texto simples ou codificado em Base64.

Opcional ""
authType authType O tipo de autenticação que o Cluster Autoscaler usa ao fazer solicitações, como um dos seguintes:
  • instance especifica o controlador de instâncias
  • workload especifica a identidade da carga de trabalho
Obrigatório instance
balanceSimilarNodeGroups balanceSimilarNodeGroups Detecte grupos de nós semelhantes e balanceie o número de nós entre eles. Opcional false
balancingIgnoreLabel balancingIgnoreLabel Definir um rótulo de nó que deve ser ignorado ao considerar a similaridade de grupo de nós. Um label por ocorrência de flag. O formato é label1, label2. Opcional ""
balancingLabel balancingLabel Defina um rótulo de nó a ser usado ao comparar a similaridade de grupo de nós. Se definido, todas as outras lógicas de comparação serão desativadas, e somente os rótulos serão considerados ao comparar grupos. Um label por ocorrência de flag. O formato é label1, label2. Opcional ""
cluster-autoscaler.ContainerResources recursos de contêiner do cluster-autoscaler

Você pode especificar as quantidades de recursos solicitadas pelos contêineres de complementos e definir limites de uso de recursos que os contêineres de complementos não podem exceder.

Formato JSON em texto simples ou codificado em Base64.

Opcional nulo {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Crie contêineres complementares que solicitem 100 mililitros de CPU e 100 mebibytes de memória. Limite os contêineres complementares a 500 milicores de CPU e 200 mebibytes de memória.

cordonNodeBeforeTerminating (Não mostrado na Console) Se CA cordonar nós antes de encerrar durante o processo de downscale. Opcional false
coresTotal (Não mostrado na Console) Número mínimo e máximo de núcleos no cluster, no formato <min>:<max>. O dimensionador automático do cluster não dimensionará o cluster além desses números. Opcional 0:320000
daemonsetEvictionForEmptyNodes (Não mostrado na Console) Se os pods DaemonSet serão normalmente encerrados de nós vazios. Opcional false
daemonsetEvictionForOccupiedNodes (Não mostrado na Console) Se os pods DaemonSet serão normalmente encerrados de nós não vazios. Opcional true
debuggingSnapshotEnabled (Não mostrado na Console) Se o snapshot de depuração do recurso de dimensionamento automático do cluster está ativado. Opcional false
emitPerNodegroupMetrics (Não mostrado na Console) Se verdadeiro, emita métricas por grupo de nós. Opcional false
enforceNodeGroupMinSize (Não mostrado na Console) A CA deve ampliar o grupo de nós para o tamanho mínimo configurado, se necessário. Opcional false
estimator (Não mostrado na Console) Tipo de estimador de recursos a ser usado na ampliação. Opcional binpacking
expander expansor Tipo de expansor do grupo de nós a ser usado na ampliação.

Observe que expander=price não é suportado.

Opcional random
expendablePodsPriorityCutoff (Não mostrado na Console) Pods com prioridade abaixo do limite serão dispensáveis. Eles podem ser mortos sem qualquer consideração durante a redução e eles não causam aumento de escala. Os pods com prioridade nula (PodPriority desativado) não podem ser gastos. Opcional -10
ignoreDaemonsetsUtilization (Não mostrado na Console) Se os pods DaemonSet serão ignorados ao calcular a utilização de recursos para redução. Opcional false
ignoreMirrorPodsUtilization (Não mostrado na Console) Se os pods de Espelho serão ignorados ao calcular a utilização de recursos para redução. Opcional false
leaderElect (Não mostrado na Console) Inicie um cliente de eleição líder e ganhe liderança antes de executar o loop principal. Ative isso ao executar componentes replicados para alta disponibilidade. Opcional true
leaderElectLeaseDuration (Não mostrado na Console) A duração que os candidatos não-líderes vão esperar depois de observar uma renovação de liderança até tentar adquirir a liderança de um líder liderado, mas não renovado slot. Esta é efetivamente a duração máxima que um líder pode ser interrompido antes de ser substituído por outro candidato. Isso só é aplicável se a eleição do líder estiver ativada. Opcional 15s
leaderElectRenewDeadline (Não mostrado na Console) O intervalo entre as tentativas do dimensionador automático de cluster ativo de renovar um slot de liderança antes que ele pare de liderar. Deve ser menor ou igual à duração do leasing. Isso só é aplicável se a eleição do líder estiver ativada. Opcional 10s
leaderElectResourceLock (Não mostrado na Console) O tipo de objeto de recurso usado para bloqueio durante a escolha do líder. As opções suportadas são leases (padrão), endpoints, endpointsleases, configmaps e configmapsleases. Opcional leases
leaderElectRetryPeriod (Não mostrado na Console) A duração que os clientes devem esperar entre a tentativa de aquisição e renovação de uma liderança. Isso só é aplicável se a eleição do líder estiver ativada. Opcional 2s
maxAutoprovisionedNodeGroupCount (Não mostrado na Console) O número máximo de grupos provisionados automaticamente no cluster. Opcional 15
maxEmptyBulkDelete maxEmptyBulkDelete Número máximo de nós vazios que podem ser excluídos ao mesmo tempo. Opcional 10
maxFailingTime (Não mostrado na Console) Tempo máximo da última execução bem-sucedida do dimensionador automático registrada antes da reinicialização automática. Opcional 15m
maxGracefulTerminationSec (Não mostrado na Console) Número máximo de segundos que a CA aguarda o encerramento do pod ao tentar reduzir um nó. Opcional 600
maxInactivity (Não mostrado na Console) Tempo máximo da última atividade do dimensionador automático registrada antes da reinicialização automática. Opcional 10m
maxNodeProvisionTime maxNodeProvisionTime Tempo máximo que a CA aguarda o provisionamento do nó. Opcional 15m
maxNodesTotal (Não mostrado na Console) Número máximo de nós em todos os pools de nós. O dimensionador automático do cluster não aumentará o cluster além desse número. Opcional 0
maxTotalUnreadyPercentage (Não mostrado na Console) Porcentagem máxima de nós não prontos no cluster. Depois que isso é excedido, a CA interrompe as operações. Opcional 45
memoryTotal (Não mostrado na Console) Número mínimo e máximo de gigabytes de memória no cluster, no formato <min>:<max>. O dimensionador automático do cluster não dimensionará o cluster além desses números. Opcional 0:6400000
minReplicaCount (Não mostrado na Console) Número mínimo ou réplicas que um conjunto de réplicas ou controlador de replicação deve ter para permitir a exclusão de seus pods em redução. Opcional 0
nodes nós

Uma lista de Número mínimo de nós, Número máximo de nós e o OCID do pool de nós a ser gerenciado pelo dimensionador automático do cluster.

O formato é <min>:<max>:<node-pool1-ocid>, <min>:<max>:<node-pool2-ocid>.

Use nodes ou nodeGroupAutoDiscovery, mas não ambos.

Formato JSON em texto simples ou codificado em Base64.

Obrigatório, se nodeGroupAutoDiscovery não estiver definido ""
nodeGroupAutoDiscovery (Não mostrado na Console)

Uma lista de pares de chave/valor de tag, Número mínimo de nós, Número máximo de nós e o OCID do compartimento no qual o pool de nós a ser gerenciado pelo dimensionador automático do cluster está localizado.

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

Use nodeGroupAutoDiscovery ou nodes, mas não ambos.

Suportado com o Cluster Autoscaler versão 1.30.3, versão 1.31.1, e versão 1.32.0 e posterior.

Formato JSON em texto simples ou codificado em Base64.

Obrigatório, se nodes não estiver definido
okTotalUnreadyCount (Não mostrado na Console) Número de nós não prontos permitidos, independentemente de maxTotalUnreadyPercentage. Opcional 3
recordDuplicatedEvents (Não mostrado na Console) Ative o dimensionador automático para imprimir eventos duplicados em uma janela de 5 minutos. Opcional false
scaleDownCandidatesPoolMinCount (Não mostrado na Console)

Número mínimo de nós que são considerados candidatos não vazios adicionais para redução quando alguns candidatos da iteração anterior não são mais válidos. Ao calcular o tamanho do pool para candidatos adicionais que tomamos.

max(#nodes * scale-down-candidates-pool-ratio,
              scale-down-candidates-pool-min-count)
Obrigatório 50
scaleDownCandidatesPoolRatio (Não mostrado na Console) Uma proporção de nós que são considerados candidatos não vazios adicionais para redução quando alguns candidatos da iteração anterior não são mais válidos. Menor valor significa melhor capacidade de resposta da CA, mas possível latência de redução mais lenta. Um valor mais alto pode afetar o desempenho da CA com grandes clusters (centenas de nós). Definir como 1.0 para desativar essa heurística - a CA usará todos os nós como candidatos adicionais. Obrigatório 0.1
scaleDownDelayAfterAdd scaleDownDelayAfterAdd Quanto tempo depois de aumentar essa escala, a avaliação é retomada. Obrigatório 10m
scaleDownDelayAfterDelete (Não mostrado na Console) Quanto tempo após a exclusão do nó que a avaliação de redução é retomada, o padrão é scan-interval. Obrigatório 10s
scaleDownDelayAfterFailure (Não mostrado na Console) Quanto tempo após a falha de redução que a avaliação de redução é retomada. Obrigatório 3m
scaleDownEnabled scaleDownEnabled A CA deve reduzir o cluster. Opcional true
scaleDownNonEmptyCandidatesCount (Não mostrado na Console) Número máximo de nós não vazios considerados em uma iteração como candidatos para redução com drenagem. Menor valor significa melhor capacidade de resposta da CA, mas possível latência de redução mais lenta. Um valor mais alto pode afetar o desempenho da CA com grandes clusters (centenas de nós). Definir como valor não positivo para desativar essa heurística - A CA não limitará o número de nós que considera. Obrigatório 30
scaleDownUnneededTime scaleDownUnneededTime Quanto tempo um nó deve ser desnecessário antes de ser elegível para redução. Obrigatório 10m
scaleDownUnreadyTime (Não mostrado na Console) Quanto tempo um nó não pronto deve ser desnecessário antes de ser elegível para redução. Obrigatório 20m
scaleDownUtilizationThreshold (Não mostrado na Console) Nível de utilização do nó, definido como a soma dos recursos solicitados divididos por capacidade, abaixo da qual um nó pode ser considerado para redução. Obrigatório 0.5
scanInterval scanInterval Com que frequência o cluster é reavaliado para expansão ou redução. Opcional 10s
skipNodesWithCustomControllerPods (Não mostrado na Console) Se true, o dimensionador automático do cluster nunca excluirá nós com pods de propriedade de controladores personalizados. Opcional true
skipNodesWithLocalStorage (Não mostrado na Console) Se o true, o dimensionador automático do cluster nunca excluirá nós com pods com armazenamento local, por exemplo, EmptyDir ou HostPath. Opcional true
skipNodesWithSystemPods (Não mostrado na Console) Se true, o dimensionador automático do cluster nunca excluirá nós com pods do kube-system (exceto para DaemonSet ou pods de espelho). Opcional true
statusConfigMapName (Não mostrado na Console) O nome do status ConfigMap que a CA grava. Opcional cluster-autoscaler-status
stderrthreshold (Não mostrado na Console) O limite de severidade do log, além do qual os logs são enviados para stderr. Por exemplo, se você definir isso como error, todos os logs com uma severidade maior que error serão enviados ao stderr. Opcional info
unremovableNodeRecheckTimeout unremovableNodeRecheckTimeout O timeout antes de verificarmos novamente um nó que não pôde ser removido antes. Obrigatório 5m
v (Não mostrado na Console) O número do nível de detalhamento do log. Opcional 0
writeStatusConfigmap (Não mostrado na Console) A CA deve gravar informações de status em um configmap. Opcional true