Portainer的Agent模式管理Docker Swarm集群

1、创建一个overlay网络
docker network create --driver overlay --attachable --subnet 10.12.0.0/24 portainer_network
  1. 为何要先创建一个overlay网络?是为了保持后续创建的全局服务portainer_agent与Portainer容器位于一个网络内,便于相互通信。
  2. 为何要手动创建网络?为了手动指定网段,防止自动创建时与实际网段冲突。
2、在manager节点上安装portainer
# 不挂载数据卷
docker run -d -p 9000:9000 --network portainer_network --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer portainer/portainer
# 挂载数据卷
docker run -d -p 9000:9000 --network portainer_network --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /docker/data/portainer:/data portainer/portainer --name prtainer portainer/portainer
3、在swarm集群上创建portainer_agent服务
docker service create --name portainer_agent --network portainer_network --mode global --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes portainer/agent

mode指定为 global,即,在swarm集群的所有active节点上尝试启动对应的docker容器;

通过manager节点上执行docker service ls,以及各个节点上执行docker ps查看服务及容器启动成功

4、登入Portainer管理UI,添加Agent作为Swarm集群的统一EndPoint
30_1.png

Name根据需要命名,Agent URL填写 tasks.portainer_agent:9001即可。该值由之前创建的服务 portainer_agent决定。 9001是portainer_agent的默认访问端口。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容