Windows Server 2016 - DNS, правильная конфигурация контроллера домена, Active Directory

Чтение в Интернете для правильной сетевой конфигурации для Active Directory Internal и DNS1, services: web: image: registry.gitlab.com/xxxx/xxxx:latest deploy: replicas: 2 ...

Я следую руководству Docker и делаю это в своей собственной версии

version: "3.1"
services:
    web:
        image: registry.gitlab.com/xxxx/xxxx:latest
        deploy:
             replicas: 2
        ports:
             - "8888:80"
    mysql:
        image: mysql:latest
        environment:
           MYSQL_ROOT_PASSWORD: password
           MYSQL_USER: user
           MYSQL_PASS: password
        ports:
             - "8889:3306"
        volumes: 
           - mysql-data:/var/lib/mysql
volumes:
   mysql-data:

Каждый раз, когда я меняю какой-то код, Я перестраиваю новый образ докера и запускаю обновление.

docker stack deploy --compose-file docker-compose.yml xxxx-learn 

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

Одно из решений, о котором я подумал, - это запустить балансировку нагрузки Nginx перед этими двумя репликами веб-сервера. Но есть ли лучшее решение?

1
задан 11 March 2018 в 04:17
2 ответа

Вы должны поместить политику перезапуска и stop_grace_period в свой файл создания:

version: "3.1"
services:
    web:
        stop_grace_period: 10s
        deploy:
             replicas: 2
             restart_policy:
               condition: on-failure
0
ответ дан 4 December 2019 в 04:13

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

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

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

0
ответ дан 4 December 2019 в 04:13

Теги

Похожие вопросы