Swarm集群弹性创建服务(8)

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

posted @ 2022-11-22 15:06  yutoujun  阅读(41)  评论(0编辑  收藏  举报