使用docker swarm进行集群,并部署服务

绝地灬酷狼 2024-04-18 17:07 168阅读 0赞

环境准备

Linux虚拟机三台(使用的是centos7)

三台虚拟机安装好docker,swarm(这个就不介绍了,毕竟这是最基本的)

开始搭建

关闭所有主机的防火墙

  1. systemctl stop firewalld

监听端口

Swarm是通过监听2375端口进行通信的,所以在使用Swarm进行集群管理之前,需要设置一下2375端口的监听。所有主机节点docker开启2375监听,docker版本不同,配置方式不一样

vim /lib/systemd/system/docker.service
在ExecStart加入-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

重启docker

  1. systemctl daemon-reload ##使配置文件生效
  2. systemctl restart docker

初始化主节点

比如我有三台虚拟机,ip地址分别是172.20.10.6,172.20.10.7,172.20.10.8

由于我们用的不是云服务器,没有公共ip,所以,必须保证三台虚拟机在同一个网段,保证他们之间能够相互访问得到

可以试一下ping命令,看看有没有反应,这里我们选择172.20.10.6作为主节点manager/leader,拥有管理的权限

  1. docker swarm init --advertise-addr 172.20.10.6

运行完会出现一个token

我们也可以使用docker swarm join-token worker来查找加入集群需要的token

  1. docker swarm join-token worker

加入集群

然后在另外两个虚拟机使用命令加入集群

  1. docker swarm join --token 获取到的token 172.20.10.6:2377

运行命令,成功会提示:作为一个worker节点加入集群

查看集群中的节点

  1. docker node ls

20190910001828941.png

集群中运行服务

创建集群网络

  1. 集群里的服务器使用一种 overlay 类型的网络,我们可以创建一种这样的网络,然后在集群里运行服务的时候可以指定使用这个网络。在集群的 manager 上,执行:
  2. docker network create --driver overlay skynet

运行服务

  1. docker service create --name web --network skynet --publish 3000:3000 --replicas 1 ninghao/node
  2. --name指定服务名称
  3. --network指定网络
  4. --publish指定端口映射,将容器的3000端口映射到本机的3000端口,前面的是主机的,后面的是容器的
  5. --replicas指定运行几个容器

运行成功后,我们来看一下,使用命令docker service ls查看运行的服务

可以看到只有一个服务在运行,在浏览器访问三个虚拟机的3000端口,都会看到hello页面,使用的是同一个运行的容器

现在我们增加运行该服务的容器数量,提升为4,我们会看到有四个容器在运行这个服务

  1. docker service scale web=4

20190910002333977.png

现在在浏览器中输入不同虚拟机的3000端口,都会看到hello页面,但是其中的containerid 不一样

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FiY18xMjM0NTZfX18_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FiY18xMjM0NTZfX18_size_16_color_FFFFFF_t_70 1

但是,这个所谓的集群并不是真正意义上的集群,还是要通过访问ip:端口来进行流量的分发

应该使用Nginx对这几台虚拟机进行端口转发

发表评论

表情:
评论列表 (有 0 条评论,168人围观)

还没有评论,来说两句吧...

相关阅读

    相关 docker swarm更新服务流程

    这里只记录的在集群环境中重启单一服务的流程,没有详细说明配置文件。注意有些餐桌需要三台服务器同事操作,有的只需要在一台服务器操作即可。 首先将集群服务器配置共享挂载点,

    相关 docker-swarm

    一、Swarm Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各

    相关 Docker Swarm

    Docker Swarm集群的搭建 Docker Swarm是一个用于创建和管理Docker集群的工具。它具有以下的特点: 方便集群的管理 可扩展 可