微服务实战之春云与刀客(四)—— docker swarm 集群实战

  • 时间:
  • 浏览:0
  • 来源:5分排列3_5分排列3官网

通过 docker service ps nginx 命令查看服务分布请况。

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm

参考:

https://docs.docker.com/engine/swarm/swarm-mode/https://docs.docker.com/engine/reference/commandline/service/

随后目前是单管理节点,最好是备份信息,主要步骤是停止docker,备份目录/var/lib/docker/swarm/

参考:https://docs.docker.com/engine/swarm/admin_guide/#back-up-the-swarm

systemctl enable docker

随后

chkconfig docker on

1)查看要怎样添加work节点

docker swarm join-token worker

2)查看要怎样添加manager节点

docker swarm join-token manager

systemctl start docker

当你节点不都要的随后还并能从集群剥离,

docker swarm leave -f

都要互相访问2377等端口(为方便,直接关闭防火墙,随后随后会有不可意料的事情)

systemctl disable firewalld

docker network create --attachable --driver overlay tiejia

--attachable 参数为了兼容单机的容器还并能加入此网络。

tiejia是网络名称。

systemctl is-enabled firewalld

客户端访问docker hub拉取镜像,缺省走https的,会报https://192.168.0.37:500镜像没找到或不位于(No such image: 192.168.0.37:500/cehome/operation-service:),处置依据 四种 是通过nginx 添加https代理,我门 采用是另四种 是非安全依据 :

https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/

https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/#replicated-and-global-services

docker swarm init --advertise-addr 192.168.0.37

yum install docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm

默认请况下,会将仓库存放于容器内的/var/lib/registry目录下,原先随后容器被删除,则存放于容器中的镜像也会丢失,所以我门 一般请况下会指定本地原先目录挂载。

通过顶端的命令还并能查出执行的脚本,随后拷贝到0.38并执行(即来源于0.37顶端执行docker swarm join-token worker的打印结果),执行后0.38就加入了集群。

docker swarm join\

--token SWMTKN-1-3jcd5cjgwy8ct1gfyqqy8oqnokz4jjaul7el97h77qii4e6zw3-1vrjlin1bl5k9whzc4fulqfh2 192.168.0.37:2377

仓库是用来存放docker镜像的,在创建和启动服务的随后,多个节点都要从仓库中拉取镜像。

都要在管理节点并能执行:

docker node ls

添加其它节点到集群,都要先在管理节点执行如下命令,它会打印出在其它节点将要执行的带有token的详细脚本。

vi /etc/hosts 把原先节点的host和ip添加。

节点有192.168.0.37和192.168.0.38 原先节点,分别为管理节点和工作节点。工作节点还并能运行服务,管理节点也还并能运行服务,但比工作节点多了“管理控制”的功能,即还并能创建服务。为了处置脑裂现象,管理节点数量为1,3,5奇数。

分别在0.37和0.38上安装docker。

本文基于centos 版本7.2搭建的docker 集群,用的是17.09版本的docker。

在manager节点0.37上部署nginx服务,服务数量为五个,公开指定端口是5050映射容器50,使用nginx镜像。这里直接会从官网下载nginx镜像,顶端部署的私有仓库还用不上。

( 多ip的请况:docker swarm init --advertise-addr ,一般要添加,随后会有网络现象)

systemctl stop firewalld.service

docker swarm 是原先非常简单的docker 原生集群部署环境。在docker swarm 出来随后,要搭建原先docker 集群都要错综复杂的网络运维和配置能力,而docker swarm 把这俩 切都解放了。

简单来说呢,docker swarm把多个docker节点连接成原先集群,还并能认为是原先还并能互通的独立局域网,通过服务的依据 管理应用的生命周期。累似 有原先MyService的微服务,在单机的模式都要你分别在原先节点上启动相应的docker 容器,而docker swarm直接都是“服务”的概念,随后在某一管理节点上执行创建服务命令,一同指定节点数为2,则集群自动找原先节点分别运行你的MyService微服务。当原先节点扛不住的随后,我想增加到原先节点,则只都要执行原先扩展命令就行。

为那些都要overlay 网络?保证多台机器不同容器之间通信!

https://github.com/docker/docker.github.io/blob/master/registry/index.md