侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Docker SwarmMode笔记

2023-11-18 星期六 / 0 评论 / 0 点赞 / 46 阅读 / 2770 字

swarm基本概念Swarm是去中心化的,并集成进了Docker Engine,通过Docker CLI管理。swarm集群包含两类节点Manager Node —— 负责调度Task(不推荐超过7个

swarm基本概念

  • Swarm是去中心化的,并集成进了Docker Engine,通过Docker CLI管理。
  • swarm集群包含两类节点
    • Manager Node —— 负责调度Task(不推荐超过7个,其有两种状态:leader、reachable,集群操作需在管理节点)
    • Worker Node —— 接受Manager Node调度并指派的Task
  • 每个swarm nodeavailability包括:
    • Active:接受task
    • Pause:不接受task,已有task仍运转
    • Drain:不接受task,已有task被交接
  • 通过routing mesh策略(基于lvs),swarm集群所有节点都会监听服务端口(没有启动服务的节点会自动将流量路由到服务驻留节点)
  • 集群内服务开放到外部端口后,节点由preparing转为running状态
  • 一个集群节点上可以驻留多个重复服务

swarm变迁

  • Docker1.6引入Swarm
    • 独立于Docker engine
    • 使用Docker CLI
  • Docker 1.12前几周发布了Swarm Kit
    • 使用自己的CLI(swarmd负责管理,swarmctl用于控制)
    • 是Swarm mode的基础
  • Docker 1.12发布了Swarm Mode(功能较完整的容器编排工具)
    • 集成到了Docker engine中(docker swarm子命令)
    • 使用Docker CLI,引入服务的概念
    • 基于Swarmkit编写

构建swarm集群

# 转入SwarmMode(当前机即作为集群管理节点)docker swarm init --advertise-addr Manager节点ip:端口# 新建tokendocker swarm join-token worker|manager# node加入集群成为一个工作副本docker swarm join --token 令牌 Manager节点ip:端口# 查看集群节点docker node ls# 检查指定节点docker node inspect self|NODE# 节点状态变更docker node update --availability drain manager # 设置Manager Node只具有管理功能# 节点打标签docker node update --label-add 键名称=值# 节点提权/降权docker node promote 节点 # 升级为manager nodedocker node demote 节点 # 降级为worker node# 节点退出集群docker swarm node leave [--force]

构建集群网络

  • 集群构建时,节点通信默认2377端口
  • 集群负载均衡网络的服务发现工作在端口:
    • 7946 TCP/UDP:集群的服务发现
    • 4789 UDP:集群服务的路由网络
docker network create --driver overlay 网络名 #创建网络(网络是隔离和安全加密的,同一网络节点才能互访)docker network ls #列表网络docker network inspect 网络名 #监控网络

广告 广告

评论区