Estamos utilizando Ansible junto con AWS Autoscaling Groups para escalar nuestro clúster de enjambre de Docker. En este momento, esto funciona porque ejecutamos los servicios en modo global, por lo que automáticamente obtenemos uno de cada tipo de contenedor por nodo acoplable. Sin embargo, esto no es muy eficiente porque terminamos con más contenedores de algunos servicios de los que necesitamos.
¿Alguien está haciendo algo similar pero tiene un enjambre acoplable escalando servicios específicos en función de su utilización de recursos? Parece que sería posible aprovechar las estadísticas de la ventana acoplable para averiguar qué contenedores deben escalarse, pero no quiere reinventar la rueda si ya hay una buena solución para esto.
EDITAR: no busca cómo escalar el clúster de enjambre en sí, sino los servicios individuales que se ejecutan en él.
Eche un vistazo a Kubernetes.
Kubernetes (comúnmente conocido como "K8s") es un administrador de clústeres de contenedores de código abierto diseñado originalmente por Google. Su objetivo es proporcionar una "plataforma para automatizar la implementación, el escalado y las operaciones de contenedores de aplicaciones en grupos de hosts". Por lo general, funciona con la herramienta de contenedor Docker y se coordina entre un amplio grupo de hosts que ejecutan Docker.
Ahora vayamos al grano:
Ajuste de escala automático horizontal de Kubernetes:
Con el escalado automático horizontal de pods, Kubernetes escala automáticamente la cantidad de pods en un controlador de replicación, implementación o conjunto de réplicas en función de la utilización de la CPU observada (o, con soporte alfa, en alguna otra métrica proporcionada por la aplicación).