Escalator es un autocalador horizontal optimizado para lotes o trabajo para Kubernetes
Está diseñado para grandes cargas de trabajo basadas en lotes o trabajo que no pueden drenarse y moverse en la fuerza cuando el clúster necesita escalar hacia abajo; la escalera de escalada se asegurará de que se hayan completado los nodos en los nodos antes de terminarlos. También está optimizado para ampliar el clúster lo más rápido posible para garantizar que las vainas no se dejen en un estado pendiente.
Calcule las solicitudes y la capacidad para determinar si escalar, bajar o permanecer a la escala actual
Espera hasta que se hayan completado las vainas que no sean de Demonset en los nodos antes de terminar el nodo
Diseñado para trabajar en grupos de escala automática seleccionados para permitir que el Autoscaler de Kubernetes predeterminado continúe escalonando las cargas de trabajo basadas en el servicio
Primero termina automáticamente los nodos más antiguos
Soporte para Slack Space para garantizar un espacio adicional en caso de un aumento de las vainas programadas
No termina ni se convierte en los nodos acordonados en los cálculos: permite que los nodos acordonados persistan para la depuración
Soporte para diferentes proveedores de nubes: AWS solo en este momento
Métricas de escala y utilización
Elección del líder para que pueda ejecutar una implementación de HA dentro de un clúster.
Soporte básico para múltiples tipos diferentes de instancias en un grupo de nodos.
La necesidad de este AutoScaler se deriva de nuestras propias experiencias con las cargas de trabajo por lotes muy grandes que se están programando y el Autoscaler predeterminado no amplía el clúster lo suficientemente rápido. Estas cargas de trabajo no pueden ser drenadas por la fuerza por el Autoscaler predeterminado y deben completarse antes de que el nodo pueda ser terminado.
Ver documentos
Kubernetes versión 1.24+. Escalator ha sido probada y desplegada en 1.24+ y más nueva. Las versiones anteriores de Kubernetes pueden tener errores o problemas que evitarán que funcione correctamente.
GO Versión 1.20+
Las dependencias y sus versiones bloqueadas se pueden encontrar en go.mod
y go.sum
.
# Retención de dependencias y construir la compilación escalatormake
Vaya a ejecutar cmd/main.go --kubeConfig = ~/.kube/config - -nodegroups = nodegroups_config.yaml
Consulte el despliegue para la documentación completa de implementación.
# Construya el Docker ImageDocker Build -T Atlassian/Escalator.# Crear rbac ConfigurationKubectl Crear -f Docs/Implementment/Escalator -Rbac.yaml# Crear mapa de configuración: modifique para adaptarse a sus necesidadeskubectl Crear -f docs/implementment/escalator -CM.yaml # Crear implementmentkubectl Crear -f Docs/Implementment/Escalator -Deployment.yaml
Ver configuración
hacer prueba
Por ejemplo, para probar el paquete del controlador:
Vaya a prueba ./pkg/controller
Solicite solicitudes, problemas y comentarios bienvenidos. Para solicitudes de extracción:
Agregar pruebas para nuevas funciones y correcciones de errores
Siga el estilo existente (estamos utilizando Goreturns para formatear y verduras escaleras mecánicas)
Separar cambios no relacionados en múltiples solicitudes de extracción
Vea los problemas existentes para que las cosas comiencen a contribuir.
Para cambios más grandes, asegúrese de comenzar una discusión primero creando un problema y explicando el cambio previsto.
Atlassian requiere que los contribuyentes firmen un acuerdo de licencia de contribuyentes, conocido como CLA. Esto sirve como un registro que indica que el contribuyente tiene derecho a contribuir con el código/documentación/traducción al proyecto y está dispuesto a utilizarlo en distribuciones y trabajos derivados (o está dispuesto a transferir la propiedad).
Antes de aceptar sus contribuciones, le pedimos que siga el enlace apropiado a continuación para firmar digitalmente el CLA. El CLA corporativo es para aquellos que contribuyen como miembro de una organización y el CLA individual es para aquellos que contribuyen como individuo.
CLA para contribuyentes corporativos
Cla para individuos
Copyright (c) 2018 Atlassian y otros. Apache 2.0 con licencia, consulte el archivo de licencia.