2.2 DockerSwarm集群学习和上机实验

概念

Docker 集群化部署

在这里插入图片描述

Docker sworm 工作机制 - 官网链接

概念的总结

swarm

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

Node

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

Service

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

Task

容器内的命令、细节任务!

在这里插入图片描述

service

在这里插入图片描述

AVAILABILITY 的三种状态 可用性

  • Active:调度器能够安排任务到该节点
  • Pause:调度器不能够安排任务到该节点,但是已经存在的任务会继续运行
  • Drain:调度器不能够安排任务到该节点,而且会停止已存在的任务,并将这些任务分配到其他 Active 状态的节点

MANAGER STATUS 的三种状态

  • Leader:为群体做出所有群管理和编排决策的主要管理者节点
  • Reachable:如果 Leader 节点变为不可用,该节点有资格被选举为新的 Leader
  • Unavailable:该节点不能和其他 Manager 节点产生任何联系,这种情况下,应该添加一个新的 Manager 节点到集群,或者将一个 Worker 节点提升为 Manager 节点

升级降级

[升级] docker node promote WorkerA
[降级] docker node demote WorkerA

操作命令

docker node update --availability 修改节点可用性

  • 使node不可调度:
docker node update --availability drain <node_name>
  • 停止node:
docker node update --availability pause <node_name>
  • 使node可调度:
docker node update --availability active <node_name>

docker swarm leave 节点离开集群

  • 使当前work节点离开集群:
[root@iZ2zeeea01dfr0ijz61q5bZ ~]# docker swarm leave
Node left the swarm.
  • leader/Reachable节点离开集群
[root@iZ2zeeea01dfr0ijz61q5cZ /]# docker swarm leave
Error response from daemon: You are attempting to leave the swarm on a node that is participating as a manager. Removing this node leaves 1 managers out of 2. Without a Raft quorum your swarm will be inaccessible. The only way to restore a swarm that has lost consensus is to reinitialize it with `--force-new-cluster`. Use `--force` to suppress this message.

  • 为了删除leader或者Reachable节点我们可以先进行降级为Work节点之后进行离开集群
[升级] docker node promote WorkerA
[降级] docker node demote WorkerA

docker node rm 删除节点

  • 删除node:
docker node rm <node-id>

删除节点

-f可以删除运行的工作节点,但是不能是主节点

docker node promote/demote 升级降级节点

[升级] docker node promote WorkerA
[降级] docker node demote WorkerA

docker service create 部署服务到集群

docker service create --replicas 1 --name redis --update-delay 10s redis:3.0.6

运行了三个nginx服务,被分配给了三个容器

[root@iZ2zeeea01dfr0ijz61q5cZ /]# docker service create -p 8080:80 --replicas 3 --name my-nginx nginx
nb0p3u573jvu8wcfruhp04ri6
overall progress: 3 out of 3 tasks 
1/3: running   [==================================================>] 
2/3: running   [==================================================>] 
3/3: running   [==================================================>] 
verify: Service converged 

每个服务器查询容器状况

[root@iZ2zeeea01dfr0ijz61q5bZ ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS     NAMES
5ce1bc85f035   nginx:latest   "/docker-entrypoint.…"   44 seconds ago   Up 43 seconds   80/tcp    my-nginx.1.s0q9r0qhb1yajsel1i20tdlum

[root@iZ2zeeea01dfr0ijz61q5aZ ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS     NAMES
5ca14540ba74   nginx:latest   "/docker-entrypoint.…"   48 seconds ago   Up 46 seconds   80/tcp    my-nginx.3.y9ddyamakd7411sgvhyl24nw2

[root@iZ2zeeea01dfr0ijz61q59Z ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS          PORTS     NAMES
7baa823ebdc7   nginx:latest   "/docker-entrypoint.…"   About a minute ago   Up 59 seconds   80/tcp    my-nginx.2.wzp7a77pu4f2lu9fk38yme2ni

#5cZ是没有的
[root@iZ2zeeea01dfr0ijz61q5cZ /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

动态扩容两种方式

docker service scale my-nginx=5
docker service update --replicas 10 my-nginx
  • 方式一:

docker service update --replicas 10 my-nginx

[root@iZ2zeeea01dfr0ijz61q5cZ /]# docker service update --replicas 10 my-nginx
my-nginx
overall progress: 10 out of 10 ta
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值