docker service无法在worker节点部署的解决办法

在Docker Swarm集群环境中尝试将Apollo从单机部署转换为集群模式,遇到worker节点无法获取镜像的问题。通过在worker节点上手动拉取镜像并修改配置文件`/etc/docker/daemon.json`以允许访问不安全的私有镜像仓库,最终成功部署。此过程涉及Docker Swarm的节点配置、镜像拉取以及容器部署策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的环境介绍:

本地三台虚拟机,搭建了docker swarm集群,一台manager节点,两台worker节点,并在主节点搭建了镜像仓库。

(base) [root@master apps]# docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
i2534x5pj3vvcmtvyi7ihqlnd *   master     Ready     Active         Leader           20.10.8
jp9uhzum8qz8qyq7ia3ova2hc     slave1     Ready     Active                          20.10.7
ody26k2fpyajkyhmbfnrcewqb     slave2     Ready     Active                          1.13.1

问题前置操作:

今日在manager节点部署Apollo单机版正常运行,遂进一步希望部署成集群版本。

具体排查过程:

于是开始修改worker节点环境:
根据yml配置文件中的限制性条件,为worker节点添加label,创建volume路径
以apollo-admin为例:

(base) [root@master apps]# cat apollo-admin.yml 
version: '3.4'
services:
  app:
    image: 192.168.40.128:5000/gion-apollo-adminservice:1.2.0
    networks:
      - hostnet
    deploy:
      placement:
        constraints:
          - node.labels.is_apollo_admin==true
      mode: global
      update_config:
        parallelism: 1
        delay: 10s
        order: stop-first
    volumes:
      - /log/apollo/admin/:/opt/logs/100003172/
    environment:
    ............................

修改完后通过docker stack deploy 启动后,发现并没有部署到任何其他节点上:
经排查发现worker节点并没有yml文件中所需的镜像,原以为会直接调用看来不是。
在这里插入图片描述于是手动pull镜像:

[root@slave2 ~]# docker pull 192.168.40.128:5000/gion-apollo-adminservice:1.2.0
Trying to pull repository 192.168.40.128:5000/gion-apollo-adminservice ... 
Get https://192.168.40.128:5000/v1/_ping: http: server gave HTTP response to HTTPS client

拉取不到是因为没有修改这个配置文件:/etc/docker/daemon.json
在该配置文件中添加"insecure-registries" : [ “192.168.40.128:5000” ]

[root@slave1 ~]# cat /etc/docker/daemon.json 
{
  "exec-opts": ["native.cgroupdriver=systemd"],
 "insecure-registries" : [ "192.168.40.128:5000" ] 
}

重启docker验证:

[root@slave1 ~]# curl -XGET http://192.168.40.128:5000/v2/_catalog
{"repositories":["gion-apollo-adminservice","gion-apollo-configservice","gion-apollo-portal","gion-eureka","gion-zuul"]}

在这里插入图片描述
问题已解决。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值