Количество реплик в рое не начинается в рабочем узле (1/4)

Я запустил службу flask API на кластере docker swarm с 1 главным и 3 рабочими узлами. Я развернул задачу, используя следующий файл для создания докеров,

version: '3'

services:
  xgboost-model-api:
image: xgboost-model-api
  ports:
    - "5000:5000"
deploy:
  mode: global
networks:
  - xgboost-net

networks:
   xgboost-net:

Я развернул задачу, используя следующую команду docker swarm,

docker stack deploy --compose-file docker-compose.yml xgboost-swarm

Однако задача была запущена только на моем главном узле, а не на каком-либо рабочем узле.

$ docker service ls
ID            NAME                             MODE        REPLICAS  IMAGE
pgd8cktr4foz  viz                              replicated  1/1       
dockersamples/visualizer
twrpr4av4c7f  xgboost-swarm_xgboost-model-api  global      1/4       xgboost-model-api
xxrfn1w7eqw6  dockercloud-server-proxy         global      1/1       dockercloud/server-proxy 

Используемый файл Dockerfile находится здесь. Приветствуются любые мысли о том, почему происходит такое поведение.


person Shabaz Patel    schedule 02.10.2017    source источник
comment


Ответы (1)


Как указано в этом потоке (дубликат?):

Если вы используете частный реестр, важно поделиться логином и учетными данными с рабочими узлами, используя

развертывание стека докеров --with-registry-auth

---- ОБНОВИТЬ

Судя по вашему составному файлу, не похоже, что вы используете частный реестр. Вообще говоря, если контейнеры не могут успешно запускаться на рабочих, они заканчиваются на менеджере. Вот несколько возможных причин этого:

  1. Нет доступа к частному реестру (исправить с помощью --with-registry-auth)
  2. Приложение требует некоторых изменений на хосте для запуска (например, для elasticSearch требуется vm.max_map_count = 262144)
  3. HealthCheck не работает на другом узле из-за плохо написанной helthcheck
  4. Проблемы с настройками сети, препятствующие извлечению изображения

Попробуйте удалить свой стек и снова запустить его. Затем выполните docker service ps --no-trunc {serviceName}, это может показать вам задачи, которые должны запускать службу на другом узле, и почему это не удалось.

Ознакомьтесь с этой веткой SO для получения дополнительных сведений об устранении неполадок. чаевые.

person herm    schedule 02.10.2017