Escala automática del cluster
Al activar el complemento de escala automática del cluster, puede transferir los siguientes pares clave/valor como argumentos.
| Clave (API y CLI) | Nombre mostrado de clave (consola) | Descripción | Necesario/Opcional | Valor por defecto | Valor de ejemplo |
|---|---|---|---|---|---|
affinity |
afinidad |
Grupo de reglas de programación de afinidad. Formato JSON en texto sin formato o codificado con Base64. No utilizado por:
Posibles equivalentes:
|
Opcional | nulo | nulo |
nodeSelectors |
selectores de nodos |
Puede utilizar selectores de nodos y etiquetas de nodos para controlar los nodos de trabajador en los que se ejecutan los pods de complementos. Para que un pod se ejecute en un nodo, el selector de nodos del pod debe tener la misma clave/valor que la etiqueta del nodo. Defina Formato JSON en texto sin formato o codificado con Base64. No utilizado por:
Posibles equivalentes:
|
Opcional | nulo | {"foo":"bar", "foo2": "bar2"}El pod solo se ejecutará en nodos que tengan la etiqueta |
numOfReplicas |
numOfReplicas | Número de réplicas del despliegue del complemento. No utilizado por:
Posibles equivalentes:
|
Obligatorio | 1Crea una réplica del despliegue del complemento por cluster. |
2Crea dos réplicas del despliegue del complemento por cluster. |
rollingUpdate |
rollingUpdate |
Controla el comportamiento deseado de la actualización sucesiva mediante maxSurge y maxUnavailable. Formato JSON en texto sin formato o codificado con Base64. No utilizado por:
Posibles equivalentes:
|
Opcional | nulo | nulo |
tolerations |
tolerancias |
Puede utilizar contaminantes y tolerancias para controlar los nodos de trabajador en los que se ejecutan los pods de complementos. Para que un pod se ejecute en un nodo que tenga un tinte, el pod debe tener una tolerancia correspondiente. Defina Formato JSON en texto sin formato o codificado con Base64. Posibles equivalentes:
|
Opcional | nulo | [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]Solo los pods que tienen esta tolerancia se pueden ejecutar en nodos de trabajador que tengan el mantenimiento |
topologySpreadConstraints |
topologySpreadConstraints |
Cómo difundir vainas coincidentes entre la topología dada. Formato JSON en texto sin formato o codificado con Base64. No utilizado por:
|
Opcional | nulo | nulo |
| Clave (API y CLI) | Nombre mostrado de clave (consola) | Descripción | Necesario/Opcional | Valor por defecto | Valor de ejemplo |
|---|---|---|---|---|---|
| annotations | anotaciones |
Anotaciones para transferir al despliegue de la escala automática del cluster. Por ejemplo, Formato JSON en texto sin formato o codificado con Base64. |
Opcional | "" | |
| authType | authType | Tipo de autenticación que utiliza la escala automática del cluster al realizar solicitudes, como una de las siguientes:
|
Obligatorio |
instance
|
|
| balanceSimilarNodeGroups | balanceSimilarNodeGroups | Detecte grupos de nodos similares y equilibre el número de nodos entre ellos. | Opcional |
false
|
|
| balancingIgnoreLabel | balancingIgnoreLabel | Defina una etiqueta de nodo que se debe ignorar al considerar la similitud de grupos de nodos. Una etiqueta por incidencia de indicador. El formato es label1, label2. |
Opcional | "" | |
| balancingLabel | balancingLabel | Defina una etiqueta de nodo que se utilizará al comparar la similitud de grupos de nodos. Si se establece, el resto de la lógica de comparación se desactiva y solo se tienen en cuenta las etiquetas al comparar grupos. Una etiqueta por incidencia de indicador. El formato es label1, label2. |
Opcional | "" | |
| cluster-autoscaler.ContainerResources | recursos de contenedor de escala automática de cluster |
Puede especificar las cantidades de recursos que solicitan los contenedores complementarios y establecer límites de uso de recursos que los contenedores complementarios no pueden superar. Formato JSON en texto sin formato o codificado con Base64. |
Opcional | nulo |
{"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}
Cree contenedores complementarios que soliciten 100 millicores de CPU y 100 mebibytes de memoria. Limite los contenedores complementarios a 500 millicores de CPU y 200 mebibytes de memoria. |
| cordonNodeBeforeTerminating | (No se muestra en la consola) | Debe acordonar los nodos de CA antes de terminar durante el proceso de escala descendente. | Opcional |
false
|
|
| coresTotal | (No se muestra en la consola) | Número mínimo y máximo de núcleos en el cluster, con el formato <min>:<max>. La escala automática del cluster no ampliará el cluster más allá de estos números. |
Opcional |
0:320000
|
|
| daemonsetEvictionForEmptyNodes | (No se muestra en la consola) | Si los pods DaemonSet se terminarán correctamente desde nodos vacíos. | Opcional |
false
|
|
| daemonsetEvictionForOccupiedNodes | (No se muestra en la consola) | Si los pods DaemonSet se terminarán correctamente desde nodos que no están vacíos. | Opcional |
true
|
|
| debuggingSnapshotEnabled | (No se muestra en la consola) | Si la instantánea de depuración de la función de escala automática del cluster está activada. | Opcional |
false
|
|
| emitPerNodegroupMetrics | (No se muestra en la consola) | Si es verdadero, emita métricas por grupo de nodos. | Opcional |
false
|
|
| enforceNodeGroupMinSize | (No se muestra en la consola) | Si es necesario, CA debe escalar verticalmente el grupo de nodos al tamaño mínimo configurado. | Opcional |
false
|
|
| estimator | (No se muestra en la consola) | Tipo de estimador de recursos que se utilizará en la escala vertical. | Opcional |
binpacking
|
|
| expander | expansor | Tipo de expansor de grupo de nodos que se utilizará en la ampliación. Tenga en cuenta que |
Opcional |
random
|
|
| expendablePodsPriorityCutoff | (No se muestra en la consola) | Los pods con prioridad por debajo del corte serán prescindibles. Pueden ser asesinados sin ninguna consideración durante la reducción y no causan aumento. Los pod con prioridad nula (PodPriority desactivado) no son fungibles. | Opcional |
-10
|
|
| ignoreDaemonsetsUtilization | (No se muestra en la consola) | Si se ignorarán los pods DaemonSet al calcular el uso de recursos para la reducción vertical. | Opcional |
false
|
|
| ignoreMirrorPodsUtilization | (No se muestra en la consola) | Si los pods duplicados se ignorarán al calcular el uso de recursos para la reducción vertical. | Opcional |
false
|
|
| leaderElect | (No se muestra en la consola) | Iniciar un cliente de elección de líder y ganar liderazgo antes de ejecutar el bucle principal. Active esta opción al ejecutar componentes replicados para alta disponibilidad. | Opcional |
true
|
|
| leaderElectLeaseDuration | (No se muestra en la consola) | La duración que los candidatos que no son líderes esperarán después de observar una renovación de liderazgo hasta intentar adquirir el liderazgo de un líder liderado pero no renovado. Es la duración máxima que un líder puede detener antes de ser reemplazado por otro candidato. Esto solo es aplicable si la elección de líder está habilitada. | Opcional |
15s
|
|
| leaderElectRenewDeadline | (No se muestra en la consola) | El intervalo entre los intentos de la escala automática del cluster activo para renovar una ranura de liderazgo antes de que deje de conducir. Debe ser menor o igual que la duración del leasing. Esto solo es aplicable si la elección de líder está habilitada. | Opcional |
10s
|
|
| leaderElectResourceLock | (No se muestra en la consola) | Tipo de objeto de recurso que se utiliza para bloquear durante la elección de líder. Las opciones soportadas son leases (valor por defecto), endpoints, endpointsleases, configmaps y configmapsleases. |
Opcional |
leases
|
|
| leaderElectRetryPeriod | (No se muestra en la consola) | La duración que los clientes deben esperar entre intentar la adquisición y la renovación de un liderazgo. Esto solo es aplicable si la elección de líder está habilitada. | Opcional |
2s
|
|
| maxAutoprovisionedNodeGroupCount | (No se muestra en la consola) | Número máximo de grupos aprovisionados automáticamente en el cluster. | Opcional |
15
|
|
| maxEmptyBulkDelete | maxEmptyBulkDelete | Número máximo de nodos vacíos que se pueden suprimir al mismo tiempo. | Opcional |
10
|
|
| maxFailingTime | (No se muestra en la consola) | Tiempo máximo desde la última ejecución correcta de la escala automática registrada antes del reinicio automático. | Opcional |
15m
|
|
| maxGracefulTerminationSec | (No se muestra en la consola) | Número máximo de segundos que la CA espera la terminación del pod al intentar reducir verticalmente un nodo. | Opcional |
600
|
|
| maxInactivity | (No se muestra en la consola) | Tiempo máximo desde la última actividad de escala automática registrada antes del reinicio automático. | Opcional |
10m
|
|
| maxNodeProvisionTime | maxNodeProvisionTime | Tiempo máximo que espera CA para que se aprovisione el nodo. | Opcional |
15m
|
|
| maxNodesTotal | (No se muestra en la consola) | Número máximo de nodos en todos los pools de nodos. La escala automática del cluster no ampliará el cluster más allá de este número. | Opcional |
0
|
|
| maxTotalUnreadyPercentage | (No se muestra en la consola) | Porcentaje máximo de nodos no listos en el cluster. Una vez que se supera, CA detiene las operaciones. | Opcional |
45
|
|
| memoryTotal | (No se muestra en la consola) | Número mínimo y máximo de gigabytes de memoria en el cluster, con el formato <min>:<max>. La escala automática del cluster no ampliará el cluster más allá de estos números. |
Opcional |
0:6400000
|
|
| minReplicaCount | (No se muestra en la consola) | Número mínimo o réplicas que un juego de réplicas o un controlador de replicación deben tener para permitir la supresión de sus pods en la reducción vertical. | Opcional |
0
|
|
| nodes | nodos |
Lista del número mínimo de nodos, el número máximo de nodos y el OCID del pool de nodos que va a gestionar la escala automática del cluster. El formato es Utilice Formato JSON en texto sin formato o codificado con Base64. |
Necesario, si nodeGroupAutoDiscovery no está definido |
"" | |
| nodeGroupAutoDiscovery | (No se muestra en la consola) |
Lista de pares clave/valor de etiqueta, número mínimo de nodos, número máximo de nodos y el OCID del compartimento en el que se encuentra el pool de nodos que va a gestionar la escala automática del cluster. El formato es Utilice Tenga en cuenta que las etiquetas de pool de nodos Compatible con la escala automática de cluster versión 1.30.3, versión 1.31.1, versión 1.32.0 y posteriores. Formato JSON en texto sin formato o codificado con Base64. |
Necesario, si no se ha definido nodes |
||
| okTotalUnreadyCount | (No se muestra en la consola) | Número de nodos no listos permitidos, independientemente de maxTotalUnreadyPercentage. |
Opcional |
3
|
|
| recordDuplicatedEvents | (No se muestra en la consola) | Active la escala automática para imprimir eventos duplicados en una ventana de 5 minutos. | Opcional |
false
|
|
| scaleDownCandidatesPoolMinCount | (No se muestra en la consola) |
Número mínimo de nodos que se consideran candidatos no vacíos adicionales para la reducción vertical cuando algunos candidatos de la iteración anterior ya no son válidos. Al calcular el tamaño del grupo para los candidatos adicionales que tomamos.
|
Obligatorio |
50
|
|
| scaleDownCandidatesPoolRatio | (No se muestra en la consola) | Ratio de nodos que se consideran candidatos no vacíos adicionales para la reducción vertical cuando algunos candidatos de la iteración anterior ya no son válidos. Un valor más bajo significa una mejor capacidad de respuesta de CA, pero una latencia de reducción vertical más lenta. Un valor más alto puede afectar al rendimiento de CA con clusters grandes (cientos de nodos). Establézcalo en 1.0 para desactivar esta heurística: CA tomará todos los nodos como candidatos adicionales. | Obligatorio |
0.1
|
|
| scaleDownDelayAfterAdd | scaleDownDelayAfterAdd | Cuánto tiempo después de escalar verticalmente se reanuda la evaluación de reducción vertical. | Obligatorio |
10m
|
|
| scaleDownDelayAfterDelete | (No se muestra en la consola) | Cuánto tiempo después de la supresión del nodo se reanuda la evaluación de reducción vertical, el valor por defecto es scan-interval (intervalo de exploración). | Obligatorio |
10s
|
|
| scaleDownDelayAfterFailure | (No se muestra en la consola) | Cuánto tiempo después del fallo de reducción vertical se reanuda la evaluación de reducción vertical. | Obligatorio |
3m
|
|
| scaleDownEnabled | scaleDownEnabled | ¿Debe CA reducir verticalmente el cluster? | Opcional |
true
|
|
| scaleDownNonEmptyCandidatesCount | (No se muestra en la consola) | Número máximo de nodos no vacíos considerados en una iteración como candidatos para la reducción con drenaje. Un valor más bajo significa una mejor capacidad de respuesta de CA, pero una latencia de reducción vertical más lenta. Un valor más alto puede afectar al rendimiento de CA con clusters grandes (cientos de nodos). Establézcalo en un valor no positivo para desactivar esta heurística: CA no limitará el número de nodos que considera. | Obligatorio |
30
|
|
| scaleDownUnneededTime | scaleDownUnneededTime | Cuánto tiempo se debe dejar de necesitar un nodo antes de que sea elegible para la reducción vertical. | Obligatorio |
10m
|
|
| scaleDownUnreadyTime | (No se muestra en la consola) | Cuánto tiempo se debe dejar de necesitar un nodo no preparado antes de que sea elegible para la reducción vertical. | Obligatorio |
20m
|
|
| scaleDownUtilizationThreshold | (No se muestra en la consola) | Nivel de utilización de nodos, definido como la suma de los recursos solicitados dividida por la capacidad, por debajo de la cual se puede considerar la reducción vertical de un nodo. | Obligatorio |
0.5
|
|
| scanInterval | scanInterval | Con qué frecuencia se vuelve a evaluar el cluster para escalar o reducir verticalmente. | Opcional |
10s
|
|
| skipNodesWithCustomControllerPods | (No se muestra en la consola) | Si true, la escala automática del cluster nunca suprimirá nodos con pods propiedad de controladores personalizados. |
Opcional |
true
|
|
| skipNodesWithLocalStorage | (No se muestra en la consola) | Si es true, la escala automática del cluster nunca suprimirá nodos con pods con almacenamiento local, por ejemplo, EmptyDir o HostPath. |
Opcional |
true
|
|
| skipNodesWithSystemPods | (No se muestra en la consola) | Si es true, la escala automática del cluster nunca suprimirá nodos con pods de kube-system (excepto DaemonSet o pods de reflejo).
|
Opcional |
true
|
|
| statusConfigMapName | (No se muestra en la consola) | Nombre del estado ConfigMap que escribe CA. | Opcional |
cluster-autoscaler-status
|
|
| stderrthreshold | (No se muestra en la consola) | Umbral de gravedad de log, más allá del cual se envían los logs a stderr. Por ejemplo, si se define en error, todos los logs con una gravedad superior a error se envían a stderr. |
Opcional |
info
|
|
| unremovableNodeRecheckTimeout | unremovableNodeRecheckTimeout | Timeout antes de volver a comprobar un nodo que no se pudo eliminar antes. | Obligatorio |
5m
|
|
| v | (No se muestra en la consola) | El número para el nivel de detalle del registro. | Opcional |
0
|
|
| writeStatusConfigmap | (No se muestra en la consola) | ¿Debe CA escribir información de estado en un mapa de configuración? | Opcional |
true
|
En la siguiente tabla, se describen las consideraciones para configurar este complemento de cluster en clusters de gran tamaño.
| Nombre del Argumento | Número de nodos ordenado de roles | Descripción | A medida que aumenta el tamaño del cluster | Riesgos | Recomendación |
|---|---|---|---|---|---|
cluster-autoscaler.ContainerResources
|
Y |
Define las solicitudes de CPU y memoria y los límites para el pod de escala automática del cluster. |
A medida que aumenta el tamaño del cluster, la escala automática del cluster experimenta:
|
Si los recursos tienen un tamaño insuficiente:
|
Aumente los recursos de CPU y memoria según corresponda:
|
balanceSimilarNodeGroups
|
N |
Controla si la escala automática del cluster equilibra los nodos en pools de nodos similares. |
Los clusters grandes suelen utilizar varios pools de nodos, lo que aumenta la posibilidad de una escala desigual en los pools. La activación de este argumento agrega sobrecarga de cálculo y aumenta ligeramente la complejidad de las decisiones de escalado. |
Si este argumento está desactivado:
|
Active este argumento para entornos con varios pools de nodos y para escenarios de alta disponibilidad que requieren una escala equilibrada. |
numOfReplicas
|
N |
Controla el número de pods de escala automática del cluster. |
La escala automática del cluster utiliza la elección de líder. Solo una instancia activa toma decisiones de ampliación, mientras que otras réplicas proporcionan alta disponibilidad. |
Si el recuento es demasiado bajo, un fallo de nodo, un bloqueo de pod o una actualización pueden detener temporalmente las decisiones de escala automática. Esto puede retrasar la ampliación de nodos para cargas de trabajo pendientes y la reducción vertical de nodos sin utilizar hasta que la escala automática del cluster vuelva a estar disponible. |
Utilice dos o tres réplicas para proporcionar alta disponibilidad. |
affinity / nodeSelectors / tolerations
|
N |
La escala automática del cluster es un componente crítico del plano de control. |
La colocación de pod afecta a la estabilidad y fiabilidad de la escala automática del cluster. |
Si estos argumentos no están configurados correctamente:
|
|
authType
|
N |
Define cómo se autentica la escala automática del cluster con las API de OCI. |
La escala automática del cluster se basa en las API de OCI para crear nodos durante las operaciones de ampliación y suprimir nodos durante las operaciones de reducción. |
|
|
rollingUpdate
|
N |
Controla la estrategia de actualización de despliegue para la escala automática del cluster. |
El tiempo de inactividad de la escala automática del cluster deja de tomar decisiones de ampliación y reduce la capacidad de respuesta del cluster durante una actualización. |
Si este argumento no está configurado correctamente:
|
|
maxNodesTotal
|
Y |
Define el número máximo de nodos que puede gestionar la escala automática del cluster. |
Este argumento establece un límite superior estricto para el tamaño del cluster y evita la ampliación no controlada. |
Si el valor es demasiado bajo, la escala automática del cluster deja de escalarse incluso cuando los pods permanecen en el estado Si el valor es demasiado alto:
|
Defina el valor ligeramente superior al tamaño máximo de cluster esperado. Por ejemplo, defina un valor superior a |
coresTotal
|
Y |
Define el número total mínimo y máximo de núcleos de CPU en el cluster. |
Este argumento controla la escala agregada de capacidad de CPU y ayuda a evitar el aprovisionamiento insuficiente o excesivo. |
Si el valor máximo es demasiado bajo, la escala automática del cluster bloquea las operaciones de escala vertical. Si el valor máximo es demasiado alto, el aprovisionamiento excesivo de nodos puede aumentar los costos. |
Defina |
memoryTotal
|
Y |
Define la memoria total mínima y máxima en el cluster. |
Este argumento controla el aprovisionamiento total de memoria del cluster y es especialmente importante para las cargas de trabajo que hacen un uso intensivo de la memoria. |
Si el valor máximo es demasiado bajo, la escala automática del cluster impide las operaciones de ampliación, lo que puede dejar cargas de trabajo sin suficiente memoria. Si el valor máximo es demasiado alto, es posible que el cluster esté sobreaprovisionado y que los costos aumenten. |
Alinee los valores mínimo y máximo con la estrategia de ajuste de tamaño del pool de nodos. |
maxEmptyBulkDelete
|
Y |
Define el número máximo de nodos vacíos que se pueden suprimir simultáneamente. |
Este argumento controla la velocidad de las operaciones de reducción vertical. |
Si el valor es demasiado bajo:
Si el valor es demasiado alto, se puede suprimir un gran número de nodos al mismo tiempo. |
|
nodes
|
Y |
Define el número mínimo y máximo de nodos para cada pool de nodos. |
Este argumento controla los límites de escala para cada pool de nodos. |
Si los límites son demasiado restrictivos, el pool de nodos no se puede escalar lo suficiente. Si los límites son demasiado permisivos, los nodos se pueden distribuir de forma desigual entre los pools de nodos. |
|