Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Auto Scaling
Activar Auto Scaling
eksctl create cluster --asg-access
Este indicador también establece k8s.io/cluster-autoscaler/enabled
y k8s.io/cluster-autoscaler/<clusterName>
etiqueta, por lo que la detección de grupos de nodos debería funcionar.
Una vez que el clúster esté en ejecución, tendrá que instalar el propio Cluster Autoscaler
También debes añadir lo siguiente a las definiciones de grupos de nodos gestionados o no gestionados para añadir las etiquetas necesarias para que el escalador automático de clústeres escale el grupo de nodos:
nodeGroups: - name: ng1-public iam: withAddonPolicies: autoScaler: true
Ampliación desde 0
Si desea poder escalar su grupo de nodos desde 0 y tiene etiquetas and/or contaminadas definidas en sus grupos de nodos, necesitará propagarlas como etiquetas en sus grupos de Auto Scaling (). ASGs
Una forma de hacerlo es configurar las etiquetas ASG en el tags
campo de las definiciones de los grupos de nodos. Por ejemplo, dado un grupo de nodos con las siguientes etiquetas y manchas:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: key: feaster value: "true" effect: NoSchedule
Tendrías que añadir las siguientes etiquetas 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"
Tanto para los grupos de nodos gestionados como para los no gestionados, esto se puede hacer automáticamente propagateASGTags
configurándolo entrue
, lo que añadirá las etiquetas y las manchas como etiquetas al grupo Auto Scaling:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" propagateASGTags: true
Auto Scaling con reconocimiento de zonas
Si tus cargas de trabajo son específicas de una zona, tendrás que crear grupos de nodos independientes para cada zona. Esto se debe a que se cluster-autoscaler
supone que todos los nodos de un grupo son exactamente equivalentes. Por ejemplo, si un pod desencadena un evento de ampliación que necesita un PVC específico para una zona (p. ej., un volumen de EBS), es posible que el nuevo nodo se programe en la zona de disponibilidad incorrecta y que el pod no pueda iniciarse.
No necesitará un grupo de nodos independiente para cada zona de disponibilidad si su entorno cumple los siguientes criterios:
-
No hay requisitos de almacenamiento específicos por zona.
-
No se requiere PodAffinity con una topología distinta de la del host.
-
No se requiere NodeAffinity en la etiqueta de zona.
-
No hay ningún NodeSelector en la etiqueta de zona.
Si cumples todos los requisitos anteriores (y posiblemente otros), deberías tener cuidado con un solo grupo de nodos que abarque varios. AZs De lo contrario, querrás crear grupos de nodos independientes en una zona de disponibilidad única:
ANTES DE:
nodeGroups: - name: ng1-public instanceType: m5.xlarge # availabilityZones: ["eu-west-2a", "eu-west-2b"]
DESPUÉS DE:
nodeGroups: - name: ng1-public-2a instanceType: m5.xlarge availabilityZones: ["eu-west-2a"] - name: ng1-public-2b instanceType: m5.xlarge availabilityZones: ["eu-west-2b"]