1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > docker--swarm集群管理(结合harbor仓库 docker stack部署 Portainer可视化)

docker--swarm集群管理(结合harbor仓库 docker stack部署 Portainer可视化)

时间:2021-10-24 22:28:36

相关推荐

docker--swarm集群管理(结合harbor仓库 docker stack部署 Portainer可视化)

文章目录

一、swarm结合harbor私有仓库1.启动配置好的harbor仓库2.在各个节点上配置私有仓库及证书二、docker stack部署1.docker stack与docker-compose的区别2.docker stack相关命令3.编写compose文件部署服务三、结合Portainer可视化

一、swarm结合harbor私有仓库

上篇文章中在swarm部署时需要提前在各个节点先拉取镜像,如果配置好私有仓库,直接指定从私有仓库拉取镜像将会大大提升效率

1.启动配置好的harbor仓库

2.在各个节点上配置私有仓库及证书

<1> cat daemon.json%编辑每个节点上的daemon.json文件,配置好私有仓库路径{"registry-mirrors": [""]}<2> scp -r /etc/docker/certs.d/ serverx:/etc/docker/%复制证书到每个节点上的相应目录下<3> 记得每个节点都要加仓库的解析

可以在私有仓库中查询到已经上传的镜像:

配置好私有镜像后swarm部署速度明显提升:

二、docker stack部署

1.docker stack与docker-compose的区别

Docker stack不支持“build”指令,它是需要镜像是预先已经构建好的, 所以docker-compose更适合于开发场景;

Docker Compose是一个Python项目,使用Docker API规范来操作容器。

Docker Stack功能包含在Docker引擎中,是swarm mode的一部分。

Docker stack不支持基于第2版写的docker-compose.yml ,也就是version版本至少为3。然而Docker Compose对版本为2和3的 文件仍然可以处理;

docker stack把docker compose的所有工作都做完了,因此docker stack将占主导地位

2.docker stack相关命令

3.编写compose文件部署服务

[root@server2 compose]# pwd/root/compose [root@server2 compose]# lsdocker-compose.yml[root@server2 compose]# cat docker-compose.yml version: '3.9'services:web:image: myapp:v1 networks:- mynet deploy:replicas: 2 %副本个数update_config: parallelism: 2 %每次更新个数delay: 10s %更新时间间隔restart_policy:condition: on-failurevisualizer:image: visualizer:latestports:- "8080:8080"stop_grace_period: 1m30svolumes:- "/var/run/docker.sock:/var/run/docker.sock"deploy:placement:constraints:- "node.role == manager"networks:mynet:docker stack deploy -c docker-compose.yml my_cluster %通过指定docker-compose.yml文件部署my_cluster集群删除原来部署好的服务:docker service rm vizdocker service rm my_web

三、结合Portainer可视化

1、yml部署文件下载地址:https://downloads.portainer.io/portainer-agent-stack.yml cat portainer-agent-stack.yml version: '3.2'services:agent:image: agent %修改镜像的名字environment:# REQUIRED: Should be equal to the service name prefixed by "tasks." when# deployed inside an overlay networkAGENT_CLUSTER_ADDR: tasks.agent# AGENT_PORT: 9001# LOG_LEVEL: debugvolumes:- /var/run/docker.sock:/var/run/docker.sock- /var/lib/docker/volumes:/var/lib/docker/volumesnetworks:- agent_networkdeploy:mode: globalplacement:constraints: [node.platform.os == linux]portainer:image: portainercommand: -H tcp://tasks.agent:9001 --tlsskipverifyports:- "9000:9000" %访问的时候ip加端口volumes:- portainer_data:/datanetworks:- agent_networkdeploy:mode: replicatedreplicas: 1placement:constraints: [node.role == manager]networks:agent_network:driver: overlayattachable: truevolumes:portainer_data:2、下载yml部署文件中的相关镜像并上传到私有仓库,从私有仓库下载更快一点,当然也可以直接从网上下载

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。