繁体   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