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
任务,可以在管理节点或者工作节点来运行。核心。!用户访问!
标签:服务,service,nginx,弹性,Swarm,集群,docker,my
From: https://www.cnblogs.com/yutoujun/p/16915194.html