簡體   English   中英

Docker swarm 不在集群中分發容器

[英]Docker swarm does not distribute the container in the cluster

我有兩台服務器用於 Docker 集群 Swarm(僅測試),一台是 Manager,另一台是 Worker,但是運行命令docker stack deploy --compose-file docker-compose.yml teste2所有服務都運行在管理器和工作器中沒有收到要運行的容器,由於某種原因,Swarm 沒有實現在集群中分發服務並在管理器服務器中運行所有服務。

我的 docker-compose.yml 會導致問題還是網絡問題?

以下是一些設置:

  • 服務器 CentOs 7,Docker 版本 18.09.4;
  • 我執行命令systemctl stop firewalld && systemctl disable firewalld來禁用防火牆;
  • 我在工人中執行了命令docker swarm join --token ...
  • 結果docker node ls

     ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION 993dko0vu6vlxjc0pyecrjeh0 * name.server.manager Ready Active Leader 18.09.4 2fn36s94wjnu3nei75ymeuitr name.server.worker Ready Active 18.09.4
  • 文件 docker-compose.yml:

     version: "3" services: web: image: testehello deploy: replicas: 5 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure # placement: # constraints: [node.role == worker] ports: - 4000:80 networks: - webnet visualizer: image: dockersamples/visualizer:stable ports: - 8080:8080 stop_grace_period: 1m30s volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: placement: constraints: [node.role == manager] networks: webnet:
  • 我執行了命令docker stack deploy --compose-file docker-compose.yml teste2

在 docker-compose.yml 中,我評論了參數放置約束,因為它們不起作用並且不會在服務器上啟動容器,否則容器會在管理器中啟動。 通過 Visualizer 全部出現在管理器中。

首先,嘗試在沒有更新選項的情況下進行部署,例如:

version: "3.2"

services:
    web:
        image: testehello
        networks:
            - webnet
        deploy:
            mode: replicated
            replicas: 2
            placement:
                constraints: [node.role == worker]
        restart: unless-stopped
        logging:
            options:
                max-size: 1m

networks:
    webnet:
        external: true

接下來,嘗試添加更新選項:

version: "3.2"

services:
    web:
        image: testehello
        networks:
            - webnet
        deploy:
            mode: replicated
            replicas: 2
            placement:
                constraints: [node.role == worker]
        update_config:
            parallelism: 1
            delay: 10s
        restart: unless-stopped
        logging:
            options:
                max-size: 1m

networks:
    webnet:
        external: true

我認為無法從工作節點訪問圖像,這就是為什么它們不接收容器,請嘗試使用 docker https://docs.docker.com/engine/swarm/stack-deploy/ 的本指南

PS 我想你已經解決了,但以防萬一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM