跨境互联网 跨境互联网
首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)

Revin

首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)
  • Docker

    • 基础使用-Docker是什么
    • 基础使用-为什么使用Docker
    • 基础使用-Docker安装
    • 基础使用-Docker架构
    • 基础使用-Docker部署微服务
    • 集群管理-微服务Docker打包
    • 集群管理-微服务Docker打包
    • 集群管理-任务编排工具
    • 集群管理-docker-compose容器编排
    • 集群管理-Swarm集群编排
      • 1 什么是Swarm
        • 1.1 Swarm能干什么
        • 1.2 swarm节点
        • 1.2.1 manager节点
        • 1.2.2 worker节点
      • 2 运行机制
        • 2.1 名词解释
        • 2.2.1 task
        • 2.2.2 services
        • 2.2.3 stack
        • 2.3 工作原理
        • 2.3.1 服务、任务和容器
        • 2.3.2 副本和全局服务
      • 3 功能特点(了解)
        • 3.1 集成的集群管理
        • 3.2 节点分散式设计
        • 3.3 声明性服务模型
        • 3.4 可扩容与缩放容器
        • 3.5 容器容错状态协调
        • 3.6 多主机网络
        • 3.7 服务发现
        • 3.8 负载平衡
        • 3.9 缺省安全
        • 3.10 滚动更新
      • 4 准备环境
        • 4.1 服务器准备
        • 4.2 服务器端口开放
      • 5 搭建Swarm集群
        • 5.1 初始化集群
        • 5.2 生成口令
        • 5.2.1 生成管理节点口令
        • 5.2.2 生成执行节点口令
        • 5.3 其他节点加入集群
        • 5.4 查看swarm的节点
        • 5.4.1 AVAILABILITY状态说明
        • 5.4.2 MANAGER STATUS状态说明
        • 5.5 修改主机名
        • 5.5.1 查看主机名
        • 5.5.2 修改主机名
        • 5.5.3 再次查看节点
        • 5.6 添加节点标签
      • 6 管理节点
        • 6.1 升降级节点
        • 6.1.1 升级节点
        • 6.1.2 降级节点
        • 6.2 节点退出swarm集群
        • 6.2.1 工作节点
        • 6.2.2 管理节点
        • 6.3 删除节点信息
      • 7 管理集群服务
        • 7.1 创建overlay网络
        • 7.2 创建服务
        • 7.2.1 创建MySQL服务
        • 7.2.2 创建nacos服务
        • 7.2.3 创建learn-docker-storage服务
        • 7.2.4 创建learn-docker-web服务
        • 7.2.5 创建learn-docker-gateway服务
        • 7.2.6 测试访问微服务
        • 7.3 查看某个服务日志
        • 7.4 扩缩容服务
        • 7.4.1 扩容操作
        • 7.4.2 缩容操作
        • 7.5 删除服务
    • 集群管理-Docker Stack管理服务
    • 集群管理-portainer使用
    • 补充-Docker
    • 资料
  • k8s

  • k8s

  • Docker容器
  • Docker
Revin
2023-06-19
目录

集群管理-Swarm集群编排

img

# 1 什么是Swarm

Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是作为一个独立服务存在,在Docker Engine v1.12中集成了Swarm的集群管理,和编排功能,可以通过初始化Swarm或加入现有Swarm来启用Docker引擎的Swarm模式。

Docker Engine CLI和API包括了管理Swarm节点命令,比如添加、删除节点,以及在Swarm中部署和编排服务,也增加了服务栈(Stack)、服务(Service)、任务(Task)概念

# 1.1 Swarm能干什么

Swarm是Docker 引擎内置(原生)的集群管理和编排工具,Docker Swarm是 Docker 官方三剑客项目之一,swarm是基于docker平台实现的集群技术,他可以通过几条简单的指令快速的创建一个docker集群,接着在集群的共享网络上部署应用,最终实现分布式的服务。

# 1.2 swarm节点

swarm是一系列节点的集合,而节点可以是一台裸机或者一台虚拟机,一个节点能扮演一个或者两个角色,manager或者worker。

# 1.2.1 manager节点

Docker Swarm集群需要至少一个manager节点,节点之间使用**Raft consensus protocol**进行协同工作。

通常,第一个启用docker swarm的节点将成为leader,后来加入的都是follower,当前的leader如果挂掉,剩余的节点将重新选举出一个新的leader

每一个manager都有一个完整的当前集群状态的副本,可以保证manager的高可用。

# 1.2.2 worker节点

worker节点是运行实际应用服务的容器所在的地方,理论上,一个manager节点也能同时成为worker节点,但在生产环境中,我们不建议这样做。

worker节点之间,通过control plane进行通信,这种通信使用gossip协议,并且是异步的。

# 2 运行机制

# 2.1 名词解释

集群中经常谈到的stacks, services, tasks,他们之间的关系。

img

下面简单解释一下这三者的含义:

# 2.2.1 task

在Docker Swarm中,task是一个部署的最小单元,task与容器是一对一的关系。

# 2.2.2 services

swarm service是一个抽象的概念,它只是一个对运行在swarm集群上的应用服务,所期望状态的描述。它就像一个描述了下面物品的清单列表一样:

  • 服务名称
  • 使用哪个镜像来创建容器
  • 要运行多少个副本
  • 服务的容器要连接到哪个网络上
  • 应该映射哪些端口

# 2.2.3 stack

stack是描述一系列相关services的集合,我们通过在一个YAML文件中来定义一个stack。

# 2.3 工作原理

# 2.3.1 服务、任务和容器

当将服务部署到集群时,管理者将服务定义视为服务所需状态,然后将服务调度为一个或多个副本任务,这些任务在集群的节点上彼此独立运行。

例如下图有三个副本的HTTP服务,每个服务实例就是一个任务。

docker

容器是一个独立的进程,在swarm模型中,每个任务调用一个容器,任务类似于插槽,调度器将容器放入其中,一旦容器运行,调度器认为该任务处于运行状态。如果容器出现健康监测失败或者终止,那么任务也终止。

# 2.3.2 副本和全局服务

有两种类型的服务部署:副本和全局

对于副本服务,指定要运行的相同任务的数量,每个副本都是相同的内容。

全局服务是在每个节点上运行一个任务的服务,不需要预先指定任务数量,每当将一个节点添加到集群中,协调者将创建一个任务,并且调度器将任务分配给该新加入的节点,全局服务最好是监控代理、反病毒扫描程序等等想要在集群中每个节点上运行的容器。

下图显示三个副本服务(黄色)和全局服务(灰色):

docker

# 3 功能特点(了解)

# 3.1 集成的集群管理

使用Docker Engine CLI创建一组Docker引擎,您可以在其中部署应用程序服务,您不需要其他编排软件来创建或管理群集。

# 3.2 节点分散式设计

Docker Engine不是在部署时处理节点角色之间的差异,而是在运行时处理角色变化,您可以使用Docker Engine部署两种类型的节点,管理节点和工作节点,这意味着您可以从单个服务器构建整个群集。

# 3.3 声明性服务模型

Docker Engine使用声明性方法来定义应用程序堆栈中各种服务的所需状态。例如,您可以描述由具有消息队列服务和数据库后端的Web前端服务组成的应用程序。

# 3.4 可扩容与缩放容器

对于每个服务,您可以声明要运行的任务数。当您向上或向下缩放时,swarm管理器通过添加或删除任务来自动适应,以保持所需的任务数量来保证集群的可靠状态。

# 3.5 容器容错状态协调

群集管理器节点不断监视群集状态,并协调您表示的期望状态的实际状态之间的任何差异。

例如,如果设置一个服务以运行容器的10个副本,并且托管其中两个副本的工作程序计算机崩溃,则管理器将创建两个新副本以替换崩溃的副本。 swarm管理器将新副本分配给正在运行和可用的worker节点上。

# 3.6 多主机网络

您可以为服务指定覆盖网络,当swarm管理器初始化或更新应用程序时,它会自动为覆盖网络上的容器分配地址。

# 3.7 服务发现

Swarm管理器节点为swarm中的每个服务分配唯一的DNS名称,并负载平衡运行的容器。您可以通过嵌入在swarm中的DNS服务器查询在群中运行的每个容器。

# 3.8 负载平衡

您可以将服务的端口公开给外部负载平衡器。在内部,swarm允许您指定如何在节点之间分发服务容器。

# 3.9 缺省安全

群中的每个节点强制执行TLS相互验证和加密,以保护其自身与所有其他节点之间的通信。您可以选择使用自签名根证书或来自自定义根CA的证书。

# 3.10 滚动更新

在已经运行期间,您可以增量地应用服务更新到节点。 swarm管理器允许您控制将服务部署到不同节点集之间的延迟。如果出现任何问题,您可以将任务回滚到服务的先前版本。

# 4 准备环境

# 4.1 服务器准备

我的三台测试机

IP地址 角色 主机名
192.168.64.153 manager node1
192.168.64.154 worker node2
192.168.64.155 worker node3

# 4.2 服务器端口开放

在创建集群前,如果开启了防火墙,请确认三台主机的防火墙能让swarm需求的端口开放,需要打开主机之间的端口,以下端口必须可用。在某些系统上,这些端口默认为打开。

  • 2377:TCP端口2377用于集群管理通信
  • 7946:TCP和UDP端口7946用于节点之间的通信
  • 4789:TCP和UDP端口4789用于覆盖网络流量

可以直接禁用系统防火墙来让这些端口通信不受限制,一般测试环境我们都会禁用防火墙

systemctl stop firewalld(立即生效)
systemctl disable firewalld(重启生效)
1
2

# 5 搭建Swarm集群

当首次安装并使用Docker Engine时,默认情况下swarm模式是禁用的,当启用swarm模式时,可以使用docker service 服务管理命令。

有两种方式在swarm模式下运行引擎:

  • 创建一个新的集群

  • 加入现有集群

    在生成环境中,集群模式提供具有集群管理功能的容错平台,以保证服务的可靠运行。

下面我们就来搭建一个swarm集群

# 5.1 初始化集群

docker swarm init --advertise-addr 192.168.64.153(本机地址)
1

image-20210326174328960

# 5.2 生成口令

# 5.2.1 生成管理节点口令

docker swarm join-token manager
1

image-20210326174833542

# 5.2.2 生成执行节点口令

docker swarm join-token worker
1

image-20210326174918929

# 5.3 其他节点加入集群

在第一个从节点执行加入 work的指令

docker swarm join --token SWMTKN-1-53p5t2rt9ud5j0owkl14boj2z8im6r60ddlzotgc4a8y93u1c2-8f6crxgyc9umayhxva1jv9t1w 192.168.64.153:2377
1

image-20210326175248229

第二个节点执行加入work的命令

docker swarm join --token SWMTKN-1-53p5t2rt9ud5j0owkl14boj2z8im6r60ddlzotgc4a8y93u1c2-8f6crxgyc9umayhxva1jv9t1w 192.168.64.153:2377
1

image-20210326175435072

# 5.4 查看swarm的节点

执行docker node ls 查看swarm节点信息

docker node ls
1

image-20210326175557636

# 5.4.1 AVAILABILITY状态说明

  • Active 意味着调度程序可以将任务分配给节点。
  • Pause 意味着调度程序不会将新任务分配给节点,但现有任务仍在运行。
  • Drain 意味着调度程序不会向节点分配新任务,调度程序关闭所有现有任务并在可用节点上调度它们。

# 5.4.2 MANAGER STATUS状态说明

显示节点是属于manager或者worker

  • 没有值 :表示不参与群管理的工作节点。
  • Leader :意味着该节点是使得群的所有群管理和编排决策的主要管理器节点。
  • Reachable: 意味着节点是管理者节点正在参与Raft共识,如果领导节点不可用,则该节点有资格被选为新领导者。
  • Unavailable :意味着节点是不能与其他管理器通信的管理器,如果管理器节点不可用,您应该将新的管理器节点加入群集,或者将工作器节点升级为管理器。

# 5.5 修改主机名

默认centos的主机名是localhost,我们看上面,节点的主机名都是localhost,我们修改以下

# 5.5.1 查看主机名

hostnamectl status可以查看主机名

hostnamectl status
1

image-20210329145236427

# 5.5.2 修改主机名

修改主机名使用hostnamectl set-hostname NAME命令可以进行修改,我们使用 node1,node2...方式命名我们的节点

#修改主机名
hostnamectl set-hostname node1
# 查看主机名
hostnamectl status
1
2
3
4

image-20210329145627793

其他节点依次操作就可以

# 5.5.3 再次查看节点

再次查看swarm节点信息

docker node ls
1

image-20210329145824774

# 5.6 添加节点标签

因为我们用到了节点约束,所有启动服务之前需要添加节点标签

# 添加标签
docker node update --label-add role=data node1
#查看节点标签信息
docker node inspect node1|grep role
1
2
3
4

image-20210330112822635

# 6 管理节点

# 6.1 升降级节点

无论您升级或降级节点,您应该始终在群中维护奇数个管理器节点,

升降级节点角色只能在管理节点上运行,应先升级工作节点为被选举者,再降级领导者为工作节点,然后被选举者成为领导者完成替换;

您可以将工作程序节点提升为manager角色。这在管理器节点不可用或者您希望使管理器脱机以进行维护时很有用。 类似地,您可以将管理器节点降级为worker角色。

# 6.1.1 升级节点

要降级一个节点或一组节点,请从管理器节点运行

docker node promote 节点名称
1
docker node promote pbui0rdry85e25i3bvhzmqw8h
1

image-20210329092650179

升级节点后不会马上生效,会进入Reachable状态,如果leader节点关掉,当前节点会参与主节点竞争

# 6.1.2 降级节点

要升级一个节点或一组节点,请从管理器节点运行

docker node demote 节点名称
1
docker node demote r7cv7prw1h2to9h1cpwxs9jhl
1

image-20210329092535306

swam将节点降级后,再次查看节点命令不生效,需要到管理节点查看

# 6.2 节点退出swarm集群

docker swarm leave 命令可在所有节点上运行,值得注意的是,工作节点退出swarm集群后,在管理节点上依然保存着工作节点的节点信息,状态为down,要删除节点信息,可使用docker node rm 命令,当所有的节点都退出并且被删除时,在管理节点上使用docker swarm leave,然后退出整个集群;

# 6.2.1 工作节点

在工作节点执行以下命令可以退出swarm节点

docker swarm leave
1

image-20210329094027211

# 6.2.2 管理节点

在管理节点查看节信息

docker node ls
1

根据退出节点前后查看节点信息,可以发现退出的节点是down的状态,并没有删除节点

image-20210329094149756

# 6.3 删除节点信息

在管理节点执行删除命令docker node rm 节点ID

docker node rm r7cv7prw1h2to9h1cpwxs9jhl
1

image-20210329094447598

# 7 管理集群服务

管理集群服必须在manager角色的主机上

# 7.1 创建overlay网络

我们需要载多个服务器中运行Docker容器集群,需要使用overlay网络,overlay网络用于连接不同机器上的docker容器,允许不同机器上的容器相互通信,同时支持对消息进行加密

docker network create --driver overlay learn-docker-overlay-network
1

# 7.2 创建服务

使用docker service create命令来创建服务

# 7.2.1 创建MySQL服务

docker service create \
-e MYSQL_ROOT_PASSWORD=root \
--mount type=bind,source=/tmp/etc/mysql,destination=/etc/mysql/mysql.conf.d/ \
--mount type=bind,source=/tmp/data/mysql,destination=/var/lib/mysql \
--replicas 1 \
--constraint 'node.labels.role == data' \
--name mysql \
--network learn-docker-overlay-network \
mysql:5.7.38


1
2
3
4
5
6
7
8
9
10
11

--replicas 1 表示在集群中创建1个服务

node.labels.role == data表示节点需要创建在标签是data的节点上

image-20210401104650608

可以查看swarm的进程

docker service ls


docker service ps mysql
1
2
3
4

image-20210401104938973

# 7.2.2 创建nacos服务

nacos也是需要创建一个,但是节点是可以漂移的,不需要固定在某一台机器

docker service create \
-e MODE=standalone \
--replicas 1 \
--name nacos \
--constraint 'node.labels.role == data' \
--network learn-docker-overlay-network \
nacos/nacos-server
1
2
3
4
5
6
7

image-20210401105627349

可以查看swarm的进程

docker service ls


docker service ps nacos
1
2
3
4

image-20210401111550209

我们发现nacos运行在了 node3节点上

# 7.2.3 创建learn-docker-storage服务

我们创建learn-docker-storage服务,我们将该服务部署两个节点

docker service create \
--name learn-docker-storage \
--replicas 2 \
--network learn-docker-overlay-network \
manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-storage:1.0-SNAPSHOT
1
2
3
4
5

image-20210401113027690

可以查看swarm的进程

docker service ls


docker service ps nacos
1
2
3
4

我们发现我们的存储服务运行在两个节点上

image-20210401113248763

# 7.2.4 创建learn-docker-web服务

我们创建learn-docker-web服务,我们将该服务同样部署两个节点

docker service create \
--name learn-docker-web \
--replicas 2 \
--network learn-docker-overlay-network \
manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-web:1.0-SNAPSHOT
1
2
3
4
5

image-20210401114221850

可以查看swarm的进程

docker service ls


docker service ps nacos
1
2
3
4

image-20210401114316047

# 7.2.5 创建learn-docker-gateway服务

我们创建learn-docker-gateway服务,因为是网关服务,我们只创建一个节点,因为需要对外暴漏端口,需要开放8888端口

docker service create \
-p 8888:8888 \
--name learn-docker-gateway \
--replicas 1 \
--network learn-docker-overlay-network \
manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-gateway:1.0-SNAPSHOT
1
2
3
4
5
6

image-20210401114529568

可以查看swarm的进程

docker service ls


docker service ps nacos
1
2
3
4

image-20210401114603522

# 7.2.6 测试访问微服务

因为在node2节点上,node2节点IP是192.168.64.154 我们可以请求URL访问

 curl http://192.168.64.154:8888/employeapi/find/10001| python -m json.tool
1

image-20210401114910478

# 7.3 查看某个服务日志

通过docker service logs 服务命可以看到当前服务的日志,但是这个服务有两个容器在运行,所有能同时看到两个容器的日志

docker service logs learn-docker-storage
1

image-20210401140005045

# 7.4 扩缩容服务

可以通过集群操作对集群进行扩缩容

# 7.4.1 扩容操作

我们将learn-docker-storage由两个容器变为三个容器

docker service scale learn-docker-storage=3
1

image-20210401140506810

这样我们就把存储服务变成了三台服务

# 7.4.2 缩容操作

同样,使用该命令对learn-docker-storage进行缩容

docker service scale learn-docker-storage=2
1

image-20210401140733804

# 7.5 删除服务

我们可以尝试把learn-docker-gateway删除掉,删除操作将会把整个服务的所有容器删除

docker service rm learn-docker-gateway
1

image-20210401142343761

上次更新: 2025/04/03, 11:07:08
集群管理-docker-compose容器编排
集群管理-Docker Stack管理服务

← 集群管理-docker-compose容器编排 集群管理-Docker Stack管理服务→

最近更新
01
tailwindcss
03-26
02
PaddleSpeech
02-18
03
whisper
02-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 跨境互联网 | 豫ICP备14016603号-5 | 豫公网安备41090002410995号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式