docker的Service相关虽然已有介绍,docker新增的特性Service update和service scale,体现了KISS的原则,把复杂的事情简单化,或者简单的事情回归简单,这样极其复杂的现实业务才有可能在数字的世界里被优化实现。
没有Service被创建
[root@host31 ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND [root@host31 ~]#使用service create创建
[root@host31 ~]# docker service create --name sonar_service --replicas 1 -p 9000:9000/tcp sonarqube 9ilfvujalehsup1tlzvj0s2rt [root@host31 ~]#成功创建Service并运行
[root@host31 ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND 9ilfvujalehs sonar_service 1/1 sonarqube [root@host31 ~]#replicas实际运行状况
[root@host31 ~]# docker service ps sonar_service ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 5q01gp5jrbhtt1ad0kd92d7a3 sonar_service.1 sonarqube host33 Running Running 3 minutes ago [root@host31 ~]# 节点名称replicas个数host331干脆利落地调整到5个,但是实际的动作可能要稍微等几秒。
[root@host31 ~]# docker service scale sonar_service=5 sonar_service scaled to 5 [root@host31 ~]#service的replicas被成功调解到5,并且自动考虑到了负载平衡,5个replicas分别在3个node上以2/2/1的布局
[root@host31 ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND 9ilfvujalehs sonar_service 5/5 sonarqube [root@host31 ~]# [root@host31 ~]# docker service ps sonar_service ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 5q01gp5jrbhtt1ad0kd92d7a3 sonar_service.1 sonarqube host33 Running Running 10 minutes ago 25bj4wltshc2wawlyytx7l452 sonar_service.2 sonarqube host31 Running Running about a minute ago 0jg9v8vtyhanlm2ei124u7hfp sonar_service.3 sonarqube host31 Running Running about a minute ago 77z6pqwhsrerzze7e74rkj4gr sonar_service.4 sonarqube host33 Running Running about a minute ago 2vv980h1zeykfti3p4r7fqtkm sonar_service.5 sonarqube host34 Running Running about a minute ago [root@host31 ~]# 节点名称replicas个数host312host332host341当然也可以使用service update进行replicas的调整,比如: docker service update –replicas 3 sonar_service 即可将其调整到3 而update更多的应用场景在于image的升级导致的运行中的服务需要更新等等