05 Docker集群/基础设施 - DevOps之路

05 Docker集群/基础设施 - DevOps之路

文章Github地址,欢迎starthttps://github.com/li-keli/DevOps-WiKinode

Docker的集群目前主流的方案:git

Docker Swarm 集群

是用Swarm集群来部署一个无状态的服务:docker

目前有三台物理机node0一、node0二、node03,在node01上初始化Swarm:shell

docker swarm init --advertise-addr 192.168.0.10 # 你的IP地址

这个时候会建立一个swarm的manage节点,并输出一段join的命令样例。在其余的docker机器上运行上面输出的docker swarm join命令就能够加入集群了。api

docker swarm join \
--token SWMTKN-1-2apg79ozshm0x9hgqgm7v3qo4ks6qcgqzqir5z03g6y90qolf8-***************** \
192.168.0.10:2377

如果忘记了init输出的密码和令牌,能够经过命令docker swarm join-token worker查看。网络

建立服务

在manager node上执行命令:负载均衡

docker service create --name web_server --publish 8080:80 --replicas=2 192.168.0.10:60000/test/api:1.0

命令是在集群中建立一个叫作web_server的服务,并暴露8080端口出来code

经过docker service ls能够查看目前集群中全部的服务

经过ocker service ps [服务名]能够查看指定的服务的全部容器[副本] 运行状况

服务的网络

默认状况下,以下建立的服务:

docker service create --name web_server --replicas=2 192.168.0.10:60000/test/api:1.0

此种建立的服务,只能在容器内访问,并不能在外部访问

如果新建立服务,加上--publish 8080:80则会映射并暴露8080到外部。

如果已经建立的服务,则执行:

docker service update --publish-add 8080:80 web_server

弹性伸缩service

如果咱们要作负载均衡,就须要不少的节点,那么在swarm-manager执行:

docker service scale web_server=5

这样就能够将service中的副本数量增长且恒定到5个的数量

默认配置下 manager node 也是 worker node,因此 swarm-manager 上也运行了副本。若是不但愿在 manager 上运行 service,能够执行以下命令:

docker node update --availability drain swarm-manager

不但愿在 manager 上运行 service

默认配置下 manager node 也是 worker node,因此 swarm-manager 上也运行了副本。若是不但愿在 manager 上运行 service,能够执行以下命令:

docker node update --availability drain swarm-manager

另外因为做者自己知识有限,都是摸索着来的,因此不必定全部的作法都对,或者某些实践会有更好的方案,望各位读者不吝指正,有任何疑问,请留 issues

相关文章
相关标签/搜索