Увеличивать количество реплик автоматически - PullRequest
1 голос
/ 12 октября 2019

Я запускаю службу в Docker Swarm на одной машине. Вот что я сделал для развертывания службы:

docker swarm init
docker stack deploy -c docker-compose.yml MyApplication

Содержимое docker-compose.yml:

version: "3"
services:
    web:
        image: myimage:1.0
        ports:
            - "9000:80"
            - "9001:443"
        deploy:
            replicas: 3
            resources:
                limits:
                    cpus: "0.5"
                    memory: 256M
                restart_policy:
                    condition: on-failure

Может ли Docker Swarm увеличить количествореплики автоматически на основе текущего трафика? Если да, то как это настроить? Если нет, как мне этого добиться, может быть, использовать Kubernetes?

1 Ответ

1 голос
/ 15 октября 2019

В зависимости от загрузки процессора модульными модулями возможно автоматическое масштабирование развертываний. Вам необходимо использовать команду kubectl autoscale, которая создает объект HorizontalPodAutoscaler, который нацеливается на указанный ресурс и масштабирует его по мере необходимости. HPA периодически корректирует количество реплик цели масштабирования в соответствии с указанным средним использованием ЦП.

При использовании kubectl autoscale вам необходимо указать максимальное и минимальное количество реплик для вашего приложения, кака также цель использования процессора.

Посмотрите на пример: чтобы установить максимальное количество реплик равным пяти, а минимальное - двум, с целевым значением загрузки ЦП 60%, выполните следующую команду:

$ kubectl autoscale deployment my-app --max 5 --min 2 --cpu-percent 60

Пожалуйста, узнайте больше об этом в документации и в следующей статье . Я надеюсь, что это поможет вам.

...