docker-swarm集群搭建 水深无声 2022-05-14 04:54 200阅读 0赞 最近一直在忙公司应用docker化部署,所以很久没发博文了。今天刚好有空,就来介绍下swarm集群,在部署swarm集群之前我一直在考虑用那种集群方式,k8s还是swarm,最后选择了swarm,原因是公司分配的服务器性能有限,无法支持k8s容器,而且相对于k8s swarm比较好学。 这里在了解下swarm的流程注意事项: 当我没在swarm中create服务的时候,首先会把服务的镜像自动拉到运行的node的节点然后启动,如果有mount volume卷的时候 要保证该节点必须要该路径。并且在使用overlay 网络模式的时候必须保证内核版本大于3.16,不然会失效。我在overlay 网络模式主要用来解决跨主机容器的通信问题,还有一点swarm集群模式包含一项内部 *DNS* 组件,其负责自动为 *Swarm* 中的每项服务分配一条 *DNS* 入口,所以完全不用担心服务重启之后跑到其他节点之后如何通信,服务直接的通信通过dns得到解决。比如tomcat中的redis会话共享等都可以直接使用dns 内部解析 我在使用swarm集群的时候使用的是 接下来来了解如何去部署swarm集群 部署swarm集群大致分为3大块: 初始化管理节点 docker swarm init –listen-addr ip:port 蓝色框中就是生成的token 这个是node加入节点必须要使用到的 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70][] 在node服务器加入节点 docker swarm join –token SWMTKN-1-1gr2cqf9nfwlusxqhc2b3z80keqjdynezw9og1fb1tjw24vyrq-2n11u0s0htrc3etdnqbvwddgb 10.1.1.194:8001 之后用docker node ls 去查看状态 ![201811011113133.png][] 其中leader为管理者,但是也可以当作node使用 之后可以来测试 在管理节点创建服务 PS:在swarm中使用service create创建容器相对于docker run docker service create –replicas 1 –name helloworld alpine ping docker.com 在这里我创建了一个名字为helloworld的docker服务 服务内容为ping docker.com 查看服务 docker service ls ![20181101111330759.png][] 查看节点运行节点 docker service ps helloworld ![20181101111346578.png][] 可以看出这个服务运行在master分支上,在这里稍微提一下在swarm中创建的容器 其name是name.docker节点 ID docker service scale web=6web表示服务名称,= 右边表示容器的数量,执行完,回到浏览器查看,会陆陆续续出现其他的5个容器,分别分布在3台机器上 删除service docker service rm helloworld 查看service的配置 docker service inspect helloworld ![20181101111433812.png][] 节点下线: docker node update –availability drain 3h5bpcvo8akrua6cek8syraji 3h5bpcvo8akrua6cek8syraji为id号 节点上线 docker node update –availability active 3h5bpcvo8akrua6cek8syraji ![20181101111538934.png][] 节点下线: docker node update --availability drain 3h5bpcvo8akrua6cek8syraji ![20181101111529720.png][] 测试完swarm集群之后,目前只能通过命令去查看swarm的状态,现在我们来安装可视化swarm 安装Portainer,图形化管理docker docker service create \\ –name portainer \\ –publish 9000:9000 \\ –constraint ‘node.role == manager’ \\ –mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \\ portainer/portainer \\ -H unix:///var/run/docker.sock docker命令参数就不多加解释了 启动完成之后 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70 1][] 新增子节点: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70 2][] 子节点docker服务需要修改docker启动文件 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70 3][] 切换子节点: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70 4][] 在此swarm集群的部署就讲解完毕 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70]: /images/20220514/c215ca666215436a914233ec00b1585b.png [201811011113133.png]: /images/20220514/80d773bb20e9464e9f2040a11770944a.png [20181101111330759.png]: /images/20220514/fb24bd6ecf80408b9a16d75b3af3e632.png [20181101111346578.png]: /images/20220514/eaf27fda6e0f454d992464df55f73bfd.png [20181101111433812.png]: /images/20220514/963c04d67a384effa12cd0720f699657.png [20181101111538934.png]: /images/20220514/b597eb6d88a04d128b5275f7b6c34dab.png [20181101111529720.png]: /images/20220514/fd45188f7d464fd2adbdb213f3ee2175.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70 1]: /images/20220514/e699c55b3bf0441496977b2bee73c1ee.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70 2]: /images/20220514/483da66fed3b418e9de3b7060adef37f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70 3]: /images/20220514/550ec70189f7411b97801c049a780490.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNTQzOTkx_size_16_color_FFFFFF_t_70 4]: /images/20220514/13be45d7e7344afd98ae544cb45b0e34.png
还没有评论,来说两句吧...