使用swarm进行集群管理

Swarm集群管理

概念:

  • 管理节点(manager):负责集群的管理工作,包括集群配置,服务管理等
  • 工作节点(work node):负责执行具体的任务
  • 节点(Node)
  • 服务(Service)
  • 任务(Task)

亮点:

  • Docker Engine集成集群管理
  • 去中心化设计
  • 扩容缩容
  • 期望状态协调
  • 多主机网络
  • 服务发现
  • 负载均衡
  • 安全传输
  • 滚动更新

使用:

  1. docker swarm init 初始化swarm集群
  2. docker swarm join --token {TOKEN} {IP}:{PORT} 加入集群
  3. docker swarm join-token worker/manager 查看加入节点token
  4. docker node ls 查看集群节点
  5. docker info 查看集群信息
  6. docker service create --replicas 1 --name {NAME} {IMAGE} {CMD} 创建一个服务
  7. docker service ls 查看服务列表
  8. docker service ps {SERVICE_NAME}查看服务
  9. docker service inspect --pretty {SERVICE_NAME} 查看部署信息
  10. docker service scale {SERVICE_NAME}=2 将服务扩展到两个节点
  11. docker service rm {SERVICE_NAME} 删除服务
  12. docker service update --image {IMAGE:VERSION} {CMD} 滚动升级服务
  13. docker service rollback {SSERVICE_NAME} 服务回滚
  14. docker node update --availability drain {NODE} 停止节点
  15. docker node update --availability active {NODE} 重新激活节点

数据挂载:

  • volume
  • bind

NFS(网络文件系统):

Network File System 用于在集群中,不同服务器之间共享文件

基于nfs和rpc

创建nfs挂载命令:mount -t nfs {SERVICE_NAME}:/var/ /mnt/var/

取消挂载:umount /mnt/var

创建服务

创建 docker service create --name redis redis:3.0.6

docker service ls

docker service create --name --replicas=5 redis:3.0.6 期望的任务数

docker service create --replicas 10 \

–name redis
–update-delay 10s
–update-parallelism 2 \调度器同时更新最大2个任务,间隔更新时间为10s
redis:3.0.6

docker service create --name redis_2 --replicas 5 --env MYENV=foo redis:3.0.6 设置环境变量

–label 设置metadata

–bind-mounts 挂载文件

–volumes 挂载数据卷容器

–mode global 指定服务模式

–constraint 指定服务约束

Swarm调度策略

Swarm在schedule节点运行容器的时候,会根据指定的策略来计算最适合运行容器的节点,目前支持的策略有:spread, binpack, random.

Random顾名思义,就是随机选择一个Node来运行容器,一般用作调试用,spread和binpack策略会根据各个节点的可用的CPU, RAM以及正在运行的容器的数量来计算应该运行容器的节点。

在同等条件下,Spread策略会选择运行容器最少的那台节点来运行新的容器,binpack策略会选择运行容器最集中的那台机器来运行新的节点(The binpack strategy causes Swarm to optimize for the container which is most packed.)。

使用Spread策略会使得容器会均衡的分布在集群中的各个节点上运行,一旦一个节点挂掉了只会损失少部分的容器。

Binpack策略最大化的避免容器碎片化,就是说binpack策略尽可能的把还未使用的节点留给需要更大空间的容器运行,尽可能的把容器运行在一个节点上面。

资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值