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

  • 时间:
  • 浏览:1
  • 来源:uu快3官网pk10_uu快3官方邀请码_官网ios版

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

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/how-swarm-mode-works/nodes/

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

需用在管理节点也能执行:

docker node ls

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

换成其它节点到集群,需用先在管理节点执行如下命令,它会打印出在其它节点将要执行的涵盖token的完整性脚本。

systemctl enable docker

意味着着着着

chkconfig docker on

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

客户端访问docker hub拉取镜像,缺省走https的,会报https://192.168.0.37:60 00镜像没找到或不居于(No such image: 192.168.0.37:60 00/cehome/operation-service:),除理最好的方法 同类生活是通过nginx 换成https代理,亲戚亲戚亲们采用是另同类生活是非安全最好的方法 :

( 多ip的清况 :docker swarm init --advertise-addr ,一般要换成,或者 会有网络间题图片)

节点有192.168.0.37和192.168.0.38 另另有二个 节点,分别为管理节点和工作节点。工作节点还能否 运行服务,管理节点也还能否 运行服务,但比工作节点多了“管理控制”的功能,即还能否 创建服务。为了除理脑裂间题图片,管理节点数量为1,3,5奇数。

分别在0.37和0.38上安装docker。

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

默认清况 下,会将仓库存放于容器内的/var/lib/registry目录下,从前意味着着着着容器被删除,则存放于容器中的镜像也会丢失,可是亲戚亲戚亲们一般清况 下会指定本地一另另有二个 目录挂载。

systemctl disable firewalld

参考:

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

仓库是用来存放docker镜像的,在创建和启动服务的前一天,多个节点需用从仓库中拉取镜像。

当你节点不需用的前一天还能否 从集群剥离,

docker swarm leave -f

docker network create --attachable --driver overlay tiejia

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

tiejia是网络名称。

vi /etc/hosts 把另另有二个 节点的host和ip换成。

systemctl start docker

为哪此需用overlay 网络?保证多台机器不同容器之间通信!

1)查看怎样换成work节点

docker swarm join-token worker

2)查看怎样换成manager节点

docker swarm join-token manager

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

systemctl stop firewalld.service

docker swarm init --advertise-addr 192.168.0.37

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

docker swarm join\

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

需用互相访问2377等端口(为方便,直接关闭防火墙,或者 意味着着着着会有不可意料的事情)

docker swarm 是一另另有二个 非常简单的docker 原生集群部署环境。在docker swarm 出来前一天,要搭建一另另有二个 docker 集群需用复杂性的网络运维和配置能力,而docker swarm 把有些切都解放了。

简单来说呢,docker swarm把多个docker节点连接成一另另有二个 集群,还能否 认为是一另另有二个 还能否 互通的独立局域网,通过服务的最好的方法 管理应用的生命周期。同类有一另另有二个 MyService的微服务,在单机的模式需用你分别在另另有二个 节点上启动相应的docker 容器,而docker swarm直接都不 “服务”的概念,我希望在某一管理节点上执行创建服务命令,一同指定节点数为2,则集群自动找另另有二个 节点分别运行你的MyService微服务。当另另有二个 节点扛不住的前一天,我还能否 增加到另另有二个 节点,则只需用执行一另另有二个 扩展命令就行。

systemctl is-enabled firewalld

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

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