docker_swarm_service

docker_swarm运行service replicas global

 

[root@node1 ~]# docker create --name web_server httpd 运行一个httpd服务

注:默认情况下只有一个副本(期望值)正在运行

 

运行的容器会在三个节点中任意一个节点运行:

 

[root@node1 ~]# docker service ls #该命令代表目前有几个service正在运行

一般来讲我们会在一个服务中部署多个副本(replicas)

期望值副本:在集群当中保持副本数量不变

全局模式的副本

[root@node1 ~]# docker service ps web_server #当前web_server的运行状态

 

要想查看正在运行的状态,除了在mananger上用上述命令查看意外,也可以在node上用docker ps查看

进入容器:

 

 

 

docker如何实现service伸缩

 

实现service(副本)的弹性伸缩,当访问量过大的时候可以瞬间增加我们的service数量承接我们的访问量,当访问量减少的时候,所见我们的service数量来减少我们访问量的承接

命令:[root@node1 ~]# docker service scale web_server=5

 

注:除了以上命令可以查看,也可以通过图形界面查看

通过情况下我们不希望manager也参与运算,我们希望manager 是一个高效的、独立的,永远指挥worker端工作的节点。

驱离命令:[root@node1 ~]# docker node update --availability drain node1

回来的命令:[root@node1 ~]# docker node update --availability active node1

可以通过docker node ls查看是否参与运算

 

缩减:[root@node1 ~]# docker service scale web_server=3

 

如何访问service

[root@node1 ~]# docker service rm web_server #删除service

[root@node1 ~]# docker service create --name web_server --replicas 2 httpd #创建两个service,其中两个副本

 

在我们没有添加网络的情况下,我们部署的service全部桥接到docker0上

查看:

 

现在访问httpd可以访问到curl 172.17.0.2(注:此时只能访问到容器内自动分配的网址,物理机的网址(192.168.88.28:80)无法访问,而且由于容器内的地址不是全局地址,所以只能在本机上访问自己的service)

外网访问内网需要走端口映射。

[root@node1 ~]# docker service update --publish-add 8080:80 web_server #增加端口映射

设置端口映射后,三台node节点全部开始监听web_server8080端口,但是因为部署service的node节点只有两台worker,所以并不是三台node都工作,而是三台监听,两台工作

 

在设置完端口映射后,在所有的node节点都可以访问物理机的ip:8080(外网也可访问)

 

在docker swarm环境中routing mesh

routing mesh 将外部请求转发到内部主机。(overlay网络)

命令:[root@node1 ~]# docker network ls #查看所有网络

docker run -it --network container:web_server.1.t6rmod0xcr4e6b8bmr89c4rf6 busybox sh #运行busybox和httpd使用相同的网卡

 

发现多了一块网卡

172.18.0.0/16是桥接到物理机的docker_gwbridge网卡,用于本地上网

10.255.0.0/16是用于外网访问服务,由于分配了这个网络,外网访问三台主机的任意一台都能访问到服务。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值