Swarm集群弹性创建服务

扩缩容功能,创建服务,动态扩展服务,更新服务,日志,灰度发布(更新网站(服务)时依旧提出服务,不挂404)

功能:扩缩容功能(扩容:增加容器,缩容:减少容器),灰度发布

目的:创建 nginx 服务、动态扩展服务、动态更新服务

# docker service --help 

Usage:  docker service COMMAND

Manage services

Commands:
create      # 创建一个新服务
inspect     # 显示一个或多个服务的详细信息
logs        # 获取服务或任务的日志
ls          # 服务列表
ps          # 列出一个或多个服务的任务
rm          # 删除一个或多个服务
rollback    # 回滚恢复对服务配置的更改
scale       # 扩展扩展一个或多个复制业务
update      # 更新服务

1、创建服务(192.168.64.134)
以前是docker run(单机),现在是 docker service (集群)

docker service create -p 8888:80 --name my-nginx nginx

2、查看服务(192.168.64.134)

# docker service ls 
ID             NAME       MODE         REPLICAS   IMAGE          PORTS
cccvbtrm38lt   my-nginx   replicated   1/1        nginx:latest   *:8888->80/tcp

虽然是在192.168.64.134机器上创建的,但也有可能跑在其他机器上

# docker ps 
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS     NAMES
a9c147315120   nginx:latest   "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp    my-nginx.1.z9q9ym9npjh6nx5mrmz0whcfa

查看my-nginx 服务的状态

# docker service ps my-nginx 
ID             NAME         IMAGE          NODE             DESIRED STATE   CURRENT STATE            ERROR     PORTS
z9q9ym9npjh6   my-nginx.1   nginx:latest   192.168.64.134   Running         Running 28 minutes ago

3、动态扩缩容,扩容到3个副本 集群中的任意节点都可访问,实现高可用

# docker service update --replicas 3 my-nginx 
my-nginx
overall progress: 3 out of 3 tasks
1/3: running
2/3: running
3/3: running
verify: Service converged

动态扩容成功

# docker service ls 
ID             NAME       MODE         REPLICAS   IMAGE          PORTS
cccvbtrm38lt   my-nginx   replicated   3/3        nginx:latest   *:8888->80/tcp

4、动态扩缩容(scale 同 updata)
$ docker service scale my-nginx=10

# docker service ls 
ID             NAME       MODE         REPLICAS   IMAGE          PORTS
cccvbtrm38lt   my-nginx   replicated   10/10       nginx:latest   *:8888->80/tcp

动态更新nginx成3个副本,三台主机上都有nginx服务。(但用第四台主机的ip也能访问到nginx)
5、动态缩容,回滚到1个

$ docker service scale my-nginx=1

# docker service scale my-nginx=1 
my-nginx scaled to 1
overall progress: 1 out of 1 tasks
1/1: running   [==================================================>]
verify: Service converged

k8s更难,功能更多。swarm相当于简单版的k8s

Swarm总结

swarm
集群的管理和编号。docker可以初始化一个swarm集群,其他节点可以加入。(管理、工作者)

Node
就是一个docker节点。多个节点就组成了一个网络集群。(管理、工作者)

Service
任务,可以在管理节点或者工作节点来运行。核心。!用户访问!

Task
容器内的命令,细节任务!


:::
image.png

原文地址:http://www.cnblogs.com/yutoujun/p/16915194.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性