前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker-swarm

docker-swarm

作者头像
用户10325771
发布2023-03-01 17:27:00
5420
发布2023-03-01 17:27:00
举报

文章目录[隐藏]

基础命令

代码语言:javascript
复制
# 初始化 
 前提开放
用于群集管理通信的TCP端口2377
TCP和UDP端口7946,用于节点之间的通信
UDP端口4789,用于覆盖网络流量,云服务器该端口不可用data-path-port 可修改该端口。
docker swarm init --advertise-addr 172.172.172.172 --data-path-port=7777 
# 2377是集群管理端口,2375是docker服务监听端口 
出现表示成功 docker swarm join --token SWMTKN-1-3oeem1x4sd5cugqfattkxpyuz4-2dsfjkhfskhfss2y7qiuhlw2g25j000no5gh7  172.172.172.172:2377
#加入集群
在其他节点服务器运行上面出现的命令出现This node joined a swarm as a worker表示加入成功
#查看所有节点
docker node ls
# 删除节点
##排空节点上的集群容器 。
docker node update --availability drain g36lvv23ypjd8v7ovlst2n3yt 
##主动离开集群,让节点处于down状态,才能删除 
docker swarm leave 
##删除指定节点 (管理节点上操作) 
docker node rm g36lvv23ypjd8v7ovlst2n3yt 
#管理节点,解散集群 docker swarm leave --force 

服务service

代码语言:javascript
复制
#创建服务
 docker service create --name web-sqgs -p 81:80 --replicas 5
 dqgs/dqgs-docker-ci
#查看所有服务
docker service ls # 查看某服务下的任务状态 docker service ps nginx # 删除服务 docker service rm [SERVICE_NAME] # 服务的扩缩容 docker service scale web-dqgs=10 会将服务副本数由 5 个增加到 10 个。后台会将服务的期望状态从 5 个增加到 10 个 再次执行 docker service scale 命令将副本数从 10 个降为 5 个。 docker service scale web-fe=5

使用Label控制service的位置

使用 label可以精细控制 Service 的运行位置呢。 逻辑分两步: 1、为每个 node 定义 label。 2、设置 service 运行在指定 label 的 node 上。

label 可以灵活描述 node 的属性,其形式是 key=value,用户可以任意指定,例如将 swarm-worker1 作为测试环境,为其添加 label env=test: docker node update –label-add env=test swarm-worker1。对应的,将 swarm-worker2 作为生产环境,添加 label env=prod: docker node update –label-add env=prod swarm-worker2

代码语言:javascript
复制
#现在部署 service 到测试环境:
docker service create --constraint node.labels.env==test --replicas 3 --name my_web  --publish 8080:80 
更新 service,将其迁移到生产环境:
docker service update --constraint-rm node.labels.env==test my_web
docker service update --constraint-add node.labels.env==prod my_web

网络

overlay 集群网络模式

  • 多节点集群下统一分配服务独立ip
  • 跨机器节点上的docker服务间能互相通信
  • 支持主机节点和集群网络内的节点间互相通信
  • 支持节点间加密通信 注:windows机器节点不支持加密通信
代码语言:javascript
复制
#创建自定义集群网络
docker network create -d overlay my-overlay
#创建可以与主机上其他docker服务通信的集群网络
docker network create -d overlay --attachable my-attachable-overlay
#创建加密通信且可以与主机上其他docker服务通信的集群网络
docker network create --opt encrypted --driver overlay --attachable my-attachable-multi-host-network

创建网络时,还可以指定ip地址范围、子网、网关等配置

portainer

参考

代码语言:javascript
复制
docker service create     --name portainer_agent     --network dqgs-all    --mode global     --constraint 'node.platform.os == linux'     --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock     --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes portainer/agent

Scheduling Mode

  • replicated mode
代码语言:javascript
复制
Swarm 可以在 service 创建或运行过程中灵活地通过 --replicas 调整容器副本的数量,内部调度器则会根据当前集群的资源使用状况在不同 node 上启停容器。 如果创建 service 时不指定,默认是 Replicated。在此模式下,node 上运行的副本数有多有少,一般情况下,资源更丰富的 node 运行的副本数更多,反之亦然。
  • global mode

其作用是强制在每个 node 上都运行一个且最多一个副本。此模式特别适合需要运行 daemon 的集群环境。比如要收集所有容器的日志,就可以 global mode 创建 service,在所有 node 上都运行 hello/word容器,即使之后有新的 node 加入swarm 也会自动在新 node 上启动一个hello/word 副本

docker stack

部署命令:

代码语言:javascript
复制
docker stack deploy -c docker-compose.yml --with-registry-auth dqgs-web

其他命令

一、Token相关

Join tokens是允许一个节点加入集群的密钥。有两种可用的不同的join tokens,一个是用作worker角色,另一个是用作manager角色。在执行swarm join时使用–token来传递token。节点只在它们加入集群时才使用这个token。

代码语言:javascript
复制
# 常用命令:
swarm join-token :可以查看或更换join token。
docker swarm join-token worker:查看加入woker的命令。
docker swarm join-token manager:查看加入manager的命令
docker swarm join-token --rotate worker:重置woker的Token。
docker swarm join-token -q worker:仅打印Token。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-12),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础命令
  • 服务service
  • 使用Label控制service的位置
  • 网络
    • portainer
    • Scheduling Mode
    • docker stack
    • 其他命令
    相关产品与服务
    容器镜像服务
    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档