Docker Swarm 集群管理

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: Docker Swarm 集群管理

Docker Swarm 集群管理

概述

Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。

集群的管理和编排是使用嵌入到 docker 引擎的 SwarmKit,可以在 docker 初始化时启动 swarm 模式或者加入已存在的 swarm。

支持的工具包括但不限于以下各项:

  • Dokku
  • Docker Compose
  • Docker Machine
  • Jenkins


Docker Swarm 优点

  • 任何规模都有高性能表现

对于企业级的 Docker Engine 集群和容器调度而言,可拓展性是关键。任何规模的公司——不论是拥有五个还是上千个服务器——都能在其环境下有效使用 Swarm。

经过测试,Swarm 可拓展性的极限是在 1000 个节点上运行 50000 个部署容器,每个容器的启动时间为亚秒级,同时性能无减损。

  • 灵活的容器调度

Swarm 帮助 IT 运维团队在有限条件下将性能表现和资源利用最优化。Swarm 的内置调度器(scheduler)支持多种过滤器,包括:节点标签,亲和性和多种容器部策略如 binpack、spread、random 等等。

  • 服务的持续可用性

Docker Swarm 由 Swarm Manager 提供高可用性,通过创建多个 Swarm master 节点和制定主 master 节点宕机时的备选策略。如果一个 master 节点宕机,那么一个 slave 节点就会被升格为 master 节点,直到原来的 master 节点恢复正常。

此外,如果某个节点无法加入集群,Swarm 会继续尝试加入,并提供错误警报和日志。在节点出错时,Swarm 现在可以尝试把容器重新调度到正常的节点上去。

  • 和 Docker API 及整合支持的兼容性

Swarm 对 Docker API 完全支持,这意味着它能为使用不同 Docker 工具(如 Docker CLI,Compose,Trusted Registry,Hub 和 UCP)的用户提供无缝衔接的使用体验。

  • Docker Swarm 为 Docker 化应用的核心功能(诸如多主机网络和存储卷管理)提供原生支持

开发的 Compose 文件能(通过 docker-compose up )轻易地部署到测试服务器或 Swarm 集群上。Docker Swarm 还可以从 Docker Trusted Registry 或 Hub 里 pull 并 run 镜像。

  • 集群模式,当修改了服务的配置后无需手动重启服务。并且只有集群中的manager才能管理集群中的一切(包括服务、容器都归它管,在一个woker节点上无法操作容器)


节点

swarm 集群由管理节点(manager)和工作节点(work node)构成。

  • swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。一个 Swarm 集群可以有多个管理节点,但只有一个管理节点可以成为 leader,leader 通过 raft 协议实现。

    为了利用swarm模式的容错功能,Docker建议根据组织的高可用性要求实现奇数个节点。当您拥有多个管理器时,您可以从管理器节点的故障中恢复而无需停机。

    • N个管理节点的集群容忍最多损失 (N-1)/2 个管理节点。
    • Docker建议一个集群最多7个管理器节点。
  • work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。工作节点是任务执行节点,管理节点将服务 (service) 下发至工作节点执行。管理节点默认也作为工作节点。也可以通过配置让服务只运行在管理节点。

服务和任务

任务 (Task)是 Swarm 中的最小的调度单位,目前来说就是一个单一的容器。

服务 (Services) 是指一组任务的集合,服务定义了任务的属性。服务有两种模式:

  • replicated services (复制服务)按照一定规则在各个工作节点上运行指定个数的任务。
  • global services (全局服务)每个工作节点上运行一个此任务。

两种模式通过 docker service create 的 --mode 参数指定。下图展示了容器、任务、服务的关系。

services-diagram.png

路由网格

service 通过 ingress load balancing 来发布服务,且 swarm 集群中所有 node 都参与到 ingress 路由网格(ingress routing mesh) 中,访问任意一个 node+PublishedPort 即可访问到服务。

当访问任何节点上的端口8080时,Docker将请求路由到活动容器。在群节点本身,端口8080可能并不实际绑定,但路由网格知道如何路由流量,并防止任何端口冲突的发生。

路由网格在发布的端口上监听分配给节点的任何IP地址。对于外部可路由的IP地址,该端口可从主机外部获得。对于所有其他IP地址,只能从主机内部访问。


Swarm 集群的搭建

准备工作

  • 二个或二个以上可以通过网络进行通信的Linux主机或虚拟机,并安装了Docker(加入开机自启),或者使用docker-machine 创建三台虚拟机。swarm 不需要单独安装,安装了 docker 就自带了该软件
  • 已安装Docker Engine 1.12或更高版本
  • 关闭所有主机上的防火墙或者开放以下端口:

    • TCP协议端口 2377 :集群管理端口
    • TCP协议端口 7946 :节点之间通讯端口(不开放则会负载均衡失效)
    • UDP协议端口 4789 :overlay网络通讯端口
    • 防火墙相关命令:

      # 查看firewalld防火墙状态
      systemctl status firewalld
      
      # 查看所有打开的端口 
      firewall-cmd --zone=public --list-ports
      
      # 防火墙开放端口(更新firewalld防火墙规则后生效)
      firewall-cmd --zone=public --add-port=要开放的端口/tcp --permanent
      # 选项:
      –zone                 # 作用域
      –add-port=80/tcp     # 添加端口,格式为:端口/通讯协议
      –permanent             #永久生效,没有此参数重启后失效
      # 示例:
      firewall-cmd --zone=public --add-port=3306/tcp --permanent
      
      # firewalld防火墙关闭接口(更新firewalld防火墙规则后生效)
      firewall-cmd --zone=public --remove-port=要关闭的端口/tcp --permanent
      
      # 更新firewalld防火墙规则(并不中断用户连接,即不丢失状态信息)
      firewall-cmd --reload
      
      # 启动firewalld防火墙
      systemctl start firewalld
      # 关闭firewalld防火墙:
      systemctl stop firewalld
      # 开机禁用firewalld防火墙
      systemctl disable firewalld
      # 开机启用firewalld防火墙: 
      systemctl enable firewalld
  • 分别修改机器的主机名,更改成 swarm01,swarm02 ...

    hostnamectl set-hostname swarm01


创建docker swarm集群

1.master主机上初始化swarm。执行 docker swarm init 命令的节点自动成为管理节点。

docker swarm init

# 注:如果主机有多个网卡,拥有多个IP,必须使用 --advertise-addr 指定 IP。
# 示例:
docker swarm init --advertise-addr 192.168.99.100
# 执行命令后会给出加入这个swarm的命令
Swarm initialized: current node (4a8mo8cekpe0vpk0ze963avw9) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-4lzr2216s61ecbyayyqynjwybmxy5y5th5ru8aal2a0d1t2vn3-ekdgf4swlz8fiq4nnzgnbhr5u 192.168.99.100:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

2.在node主机上执行命令加入swarm

docker swarm join --token SWMTKN-1-4lzr2216s61ecbyayyqynjwybmxy5y5th5ru8aal2a0d1t2vn3-ekdgf4swlz8fiq4nnzgnbhr5u 192.168.99.100:2377

3.查看集群信息。集群的大部分命令需要在管理节点中才能运行

# 查看 swarm 集群状态
docker info
# 查看集群节点信息
docker node ls


Swarm 集群管理常用命令

docker swarm:管理集群

# 初始化一个swarm
docker swarm init [OPTIONS]
# 选项:
--advertise-addr string        # 发布的地址(格式:<ip|interface>[:port])
--force-new-cluster            # 强制从当前状态创建一个新的集群(去除本地之外的所有管理器身份)
--cert-expiry duration        # 节点证书有效期(ns|us|ms|s|m|h)(默认为2160h0m0s)
--data-path-addr string     # 用于数据路径通信的地址或接口(格式: <ip|interface>)
--data-path-port uint32     # 用于数据路径流量的端口号(1024 - 49151)。如果没有值,则默认端口号4789
--dispatcher-heartbeat duration        # 调度程序的心跳周期(ns|us|ms|s|m|h)(默认为5s)
--listen-addr node-addr        # 监听地址(格式: <ip|interface>[:port]) (默认 0.0.0.0:2377)

# 查看加入节点到集群的命令及令牌(token)
docker swarm join-token [OPTIONS] (worker|manager)
# 选项:
-q, --quiet    # 只显示令牌
    --rotate   # 使旧令牌无效并生成新令牌
# 查看加入工作节点到集群的命令及令牌
docker swarm join-token worker
# 查看加入管理节点到集群的命令及令牌
docker swarm join-token manager

# 将节点加入swarm集群,作为一个manager或worker
docker swarm join [OPTIONS] HOST:PORT
# 选项:
--advertise-addr string   # 发布的地址 (格式: <ip|interface>[:port])
--availability string     # 节点的可用性 ("active"|"pause"|"drain") (default "active")
--data-path-addr string   # 用于数据路径通信的地址或接口 (格式: <ip|interface>)
--listen-addr node-addr   # 监听地址 (格式: <ip|interface>[:port]) (default 0.0.0.0:2377)
--token string            # 进入的swarm集群的令牌     

# 主动退出集群,让节点处于down状态(在需要退出Swarm集群的节点主机上执行命令)
docker swarm leave [OPTIONS]
# 选项:
-f, --force        # 强制。Manager若要退出 Swarm 集群,需要加上强制选项
## 移除一个work-node节点主机的完整步骤:
# 1.在管理节点上操作,清空work-node节点的容器。id 可以使用命令 docker node ls 查看
docker node update --availability drain [id]
# 2.在work-node节点主机上操作,退出集群
docker swarm leave
# 3,在管理节点上操作,删除work-node节点
docker node rm [id]
# 若想解散整个集群,则需先移除所有work-node节点主机,然后所有管理节点也退出集群

# 更新 swarm 集群的配置
docker swarm update [OPTIONS]
# 选项:
--autolock                            # 更改管理器自动锁定设置(true|false)
--cert-expiry duration                 # 节点证书有效期(ns|us|ms|s|m|h)(默认为2160h0m0s)
--dispatcher-heartbeat duration        # 调度程序心跳周期(ns|us|ms|s|m|h)(默认为5s)


docker node:管理swarm集群节点

# 查看集群中的节点
docker node ls
#选项:
-f, --filter filter       # 根据所提供的条件过滤输出。(格式:key=value)
                            # 目前支持的过滤器是:id, label, name, membership[=accepted|pending]
                                               # , role[manager|worker]
-q, --quiet                # 只显示id

# 查看运行的一个或多个及节点任务数,默认当前节点
docker node ps [OPTIONS] [NODE...]
#选项:
-f, --filter filter       # 根据所提供的条件过滤输出
-q, --quiet                # 只显示id

# 将worker角色升级为manager
docker node promote NODE [NODE...]
# 将manager角色降级为worker
docker node demote NODE [NODE...]

# 查看节点的详细信息,默认json格式
docker node inspect 主机名
# 查看节点信息平铺格式
docker node inspect --pretty 主机名

# 从swarm中删除一个节点
docker node rm 主机名
# 从swarm中强制删除一个节点
docker node rm -f 主机名

# 更新一个节点
docker node update [options] 主机名
# 选项
--label-add list        # 添加节点标签(key=value)
--label-rm list         # 删除节点标签
--role string           # 更改节点角色 ("worker"|"manager")
--availability active/pause/drain    # 设置节点的状态
                # active  正常
                # pause   暂停。调度程序不向节点分配新任务,但是现有任务仍然保持运行
                # drain   排除自身work任务。调度程序不向节点分配新任务,且会关闭任何现有任务并在可用节点上安排它们


docker service:服务管理

# 列出服务列表
docker service ls

# 列出服务任务信息
docker service ps [OPTIONS] SERVICE [SERVICE...]
# 选项:
    --no-trunc            # 显示完整的信息
-f, --filter filter       # 根据所提供的条件过滤输出。过滤只运行的任务信息:"desired-state=running"
-q, --quiet                # 只显示任务id

# 查看服务内输出
docker service logs [OPTIONS] SERVICE|TASK
# 选项:
    --details        # 显示提供给日志的额外细节
-f, --follow         # 跟踪日志输出
    --since string   # 显示自时间戳 (2013-01-02T13:23:37Z) 或相对时间戳 (42m for 42 minutes) 以来的日志
-n, --tail string    # 从日志末尾显示的行数(默认为“all”)
-t, --timestamps     # 显示时间戳


# 更新服务的相关配置
docker service update [options] 服务名
# 选项
--args "指令"            # 容器加入指令
--image IMAGE         # 更新服务容器镜像
--rollback                # 回滚服务容器版本
--network-add 网络名      # 添加容器网络
--network-rm 网络名      # 删除容器网络
--reserve-cpu int            # 更新分配的cpu
--reserve-memory bytes        # 更新分配的内存(示例:512m)
--publish-add 暴露端口:容器端口        # 映射容器端口到主机
--publish-rm 暴露端口:容器端口        # 移除暴露端口
--endpoint-mode dnsrr         # 修改负载均衡模式为dnsrr
--force                         # 强制重启服务
--config-rm 配置文件名称         # 删除配置文件
--constraint-add list         # 新增一个约束 
--constraint-rm list         # 移除一个约束 
--placement-pref-add pref     # 新增一个偏好 
--placement-pref-rm pref     # 移除一个偏好
--config-add 配置文件名,target=/../容器内配置文件名        # 添加新的配置文件到容器内


# 查看服务详细信息,默认json格式
docker service inspect [OPTIONS] 服务名 [SERVICE...]
# 查看服务信息平铺形式
docker service inspect --pretty 服务名

# 删除服务
docker service rm [OPTIONS] 服务名 [SERVICE...]

# 缩容扩容服务容器副本数量
docker service scale 服务名=副本数 [SERVICE=REPLICAS...]

# 创建一个服务。一般搭建好 Swarm 集群后,使用 docker stack 部署应用,此处仅作了解
docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
# 选项:
--name string            # 指定容器名称
--replicas int            # 指定副本数
--network 网络名          # 添加网络组
--mode string            # 服务模式(复制或全局)(replicated | global)
--reserve-cpu int        # 预留的cpu
--reserve-memory bytes    # 预留的内存(512m)
--limit-cpu    int            # 限制CPU
--limit-memory bytes    # 限制内存(512m)
-l,    --label list            # 服务的标签(key=value)
--container-label list        # 容器标签(key=value)
-p, --publish 暴露端口:容器端口      # 映射容器端口到主机
-e,    --env MYVAR=myvalue            # 配置环境变量
-w,    --workdir string            # 指定工作目录(示例:/tmp)
-restart-condition string        # 满足条件时重新启动(no | always | on-failure | unless-stopped)
--restart-delay duration        # 重新启动尝试之间的延迟 (ns/us/ms/s/m/h)
--restart-max-attempts int        # 放弃前的最大重启次数
--restart-window duration            # 用于评估重启策略的窗口 (ns/us/ms/s/m/h)
--stop-grace-period duration        # 强制杀死容器前的等待时间 (ns/us/ms/s/m/h)
--update-delay duration                # 更新之间的延迟(ns/us/ms/s/m/h)(默认 0s)
--update-failure-action    string        # 更新失败的操作("pause"停止|"continue"继续)(默认pause)
--update-max-failure-ratio float    # 更新期间容忍的失败率
--update-monitor duration            # 每次任务更新后监控失败的持续时间(ns/us/ms/s/m/h)(默认 0s)
--update-parallelism int            # 同时更新的最大任务数(0表示一次更新全部任务)(默认为1)  
--endpoint-mode string                # 负载均衡模式(vip or dnsrr) (默认 "vip")
--rollback-monitor 20s                  # 每次容器与容器之间的回滚时间间隔
--rollback-max-failure-ratio .数值    # 回滚故障率如果小于百分比允许运行(“.2”为%20)
--mount type=volume,src=volume名称,dst=容器目录     # 创建volume类型数据卷
--mount type=bind,src=宿主目录,dst=容器目录            # 创建bind读写目录挂载
--mount type=bind,src=宿主目录,dst=容器目录,readonly     # 创建bind只读目录挂载
--config source=docker配置文件,target=配置文件路径        # 创建docker配置文件到容器本地目录


docker config:管理配置文件

# 查看已创建配置文件
docker config ls [OPTIONS]
# 选项:
-f, --filter filter       # 根据所提供的条件过滤输出
-q, --quiet                # 只显示id

# 查看配置详细信息
docker config inspect 配置文件名

# 删除配置
docker config rm CONFIG [CONFIG...]

# 创建配置文件
docker config create 配置文件名 本地配置文件
# 示例:新建配置文件并添加新配置文件到服务
# 1.创建配置文件
docker config create nginx2_config nginx2.conf 
# 2.删除旧配置文件
docker service update --config-rm ce_nginx_config 服务名
# 3.添加新配置文件到服务
ocker service update --config-add src=nginx2_config,target=/etc/nginx/nginx.conf ce_nginx


docker network:管理网络

# 查看集群网络列表
docker network ls

# 将容器连接到集群网络中
$ docker network connect [OPTIONS] NETWORK CONTAINER
# 选项
    --alias strings                # 为容器添加网络范围的别名
    --driver-opt string        ·    # 指定网络驱动程序
    --ip string                    # 指定IPv4地址(如172.30.100.104)
    --ip6 string                # 指定IPv6地址(例如,2001:db8::33)
    --link list                    # 添加到另一个容器的链接
    --link-local-ip string        # 为容器添加一个链接本地地址
# 示例
docker network connect mynet nginx

# 断开一个容器与集群网络的连接
$ docker network disconnect [OPTIONS] NETWORK CONTAINER
# 选项
    -f, --force        # 强制容器从网络断开连接  

# 显示一个或多个集群网络的详细信息
$ docker network inspect [OPTIONS] NETWORK [NETWORK...]
# 选项
  -f, --format string   # 使用给定的Go模板格式化输出
  -v, --verbose         # 输出详细的诊断信息

# 创建一个集群网络
$ docker network create [OPTIONS] NETWORK
# 选项
      --attachable           # 准许手动容器连接
      --aux-address map      # 网络驱动使用的辅助IPv4或IPv6地址(默认映射[])
      --config-from string   # 要从其中复制配置的网络
      --config-only          # 创建仅配置网络
  -d, --driver string        # 管理网络的驱动程序(默认为“"bridge”)。选项:bridge、overlay、macvlan
      --gateway strings      # 指定IPv4或IPv6主子网网关。示例:172.20.0.1
      --ingress              # 创建群路由-网格网络
      --internal             # 限制外部访问网络
      --ip-range strings     # 从子范围分配容器ip
      --ipam-driver string   # IP管理驱动(默认为“default”)
      --ipam-opt map         # 设置IPAM驱动程序的特定选项(默认map[])
      --ipv6                 # 启用IPv6网络
      --label list           # 在网络中设置元数据
  -o, --opt map              # 设置驱动程序特定选项(默认map[])
      --scope string         # 控制网络的范围
      --subnet strings       # 指定一个CIDR格式的网段。示例:172.20.0.0/24
# 示例:
docker network create -d overlay --attachable apps_net

# 移除所有未使用的集群网络
$ docker network prune [OPTIONS]
# 选项
      --filter filter   # 提供过滤值(e.g. 'until=<timestamp>') 
  -f, --force           # 强制,没有提示确认

# 删除一个或多个集群网络
$ docker network rm NETWORK [NETWORK...]
# 别名:rm, remove


docker secret:管理敏感数据存储

# 查看敏感数据卷列表
$ docker secret ls

# 显示一个或多个敏感数据卷的详细信息
$ docker secret inspect [OPTIONS] SECRET [SECRET...]
# 选项
    --pretty        # 易读的格式打印信息

# 从文件或标准输入创建一个敏感数据卷作为内容
$ docker secret create [OPTIONS] SECRET [file|-]
# 选项
  -d, --driver string            # 指定驱动
  -l, --label list               # 指定标签
      --template-driver string   # 指定模板驱动程序

# 移除一个或多个敏感数据卷
$ docker secret rm SECRET [SECRET...]
# 别名:rm, remove


docker网络管理

参考:

参考:

概述

Docker 提供三种 user-defined 网络驱动:bridge,overlay 和 macvlan

overlay 和 macvlan 用于创建跨主机的网络

Swarm 集群产生两种不同类型的流量:

  • 控制和管理层面:包括 Swarm 消息管理等,例如请求加入或离开Swarm,这种类型的流量总是被加密的。(涉及到集群内部的hostname、ip-address、subnet、gateway等)
  • 应用数据层面:包括容器与客户端的通信等。(涉及到防火墙、端口映射、网口映射、VIP等)

在 Swarm Service 中有三个重要的网络概念:

  • Overlay networks :管理 Swarm 中 Docker 守护进程间的通信。可以将服务附加到一个或多个已存在的 overlay 网络上,使得服务与服务之间能够通信。
  • ingress network :是一个特殊的 overlay 网络,用于服务节点间的负载均衡,处理与群集服务相关的控制和数据流量。当任何 Swarm 节点在发布的端口上接收到请求时,它将该请求交给一个名为 IPVS 的模块。IPVS 跟踪参与该服务的所有IP地址,选择其中的一个,并通过 ingress 网络将请求路由到它。
    初始化或加入 Swarm 集群时会自动创建 ingress 网络,大多数情况下,用户不需要自定义配置,但是 docker 17.05 和更高版本允许你自定义。
  • docker_gwbridge :是一种桥接网络,将 overlay 网络(包括 ingress 网络)连接到一个单独的 Docker 守护进程的物理网络。默认情况下,服务正在运行的每个容器都连接到本地 Docker 守护进程主机的 docker_gwbridge 网络。
    docker_gwbridge 网络在初始化或加入 Swarm 时自动创建。大多数情况下,用户不需要自定义配置,但是 Docker 允许自定义。

3424642-b94023917b7cb313.png

在管理节点上查看网络

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
cb0ccb89a988        bridge              bridge              local
0174fb113496        docker_gwbridge     bridge              local
541b62778c0e        host                host                local
8n7xppn5z4j2        ingress             overlay             swarm
369d459f340d        none                null                local

overlay网络驱动程序会创建多个Docker守护主机之间的分布式网络。该网络位于(覆盖)特定于主机的网络之上,允许连接到它的容器(包括群集服务容器)安全地进行通信。Docker透明地处理每个数据包与正确的Docker守护程序主机和正确的目标容器的路由。

自定义overlay 网络

创建用于swarm服务的自定义的overlay网络 命令:

docker network create -d overlay --attachable my-overlay

# 注:overlay 网络创建可以在 Swarm 集群下的任意节点执行,并同步更新到所有节点。

集群中部署了两个服务 nginx、alpine,现在我们进入alpine,去访问nginx。

$ docker exec -it test1.1.oonwl8c5g4u3p17x8anifeubi bash
$ ping nginx
ping: bad address 'nginx'

$ wget 192.168.99.100:8080
Connecting to 192.168.99.100:8080 (192.168.99.100:8080)
index.html           100% |**********************************************************************************************************|   612   0:00:00 ETA

发现集群中的各个服务不能用名称访问的,只能用集群服务发现的路由网络访问,若需要集群中的服务能通过名称进行访问,这就需要用到上面自定义的 overlay 网络。

删除启动的服务,重新创建指定使用自定义网络的服务。

docker service rm nginx alpine
docker service create --name nginx -p 8080:80 --network my-overlay --replicas 3 nginx
docker service create --name alpine --network my-overlay alpine ping www.baidu.com

进入alpine容器中,重新测试下:

$ ping nginx
PING nginx (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: seq=0 ttl=64 time=0.120 ms
64 bytes from 10.0.0.2: seq=1 ttl=64 time=0.094 ms
64 bytes from 10.0.0.2: seq=2 ttl=64 time=0.108 ms
$ wget nginx
Connecting to nginx (10.0.0.2:80)
index.html           100% |**********************************************************************************************************|   612   0:00:00 ETA

发现可以通过名称进行集群中的容器间的访问了。

相关文章
|
1月前
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
55 8
|
1月前
|
Prometheus 监控 Cloud Native
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
99 8
|
1月前
|
调度 开发者 Docker
Docker Swarm
Docker Swarm 为容器化应用的部署和管理提供了一种高效、可靠的方式,使开发者能够更轻松地构建和运行分布式应用。随着容器技术的不断发展,Docker Swarm 在企业级应用中的应用也将越来越广泛。
53 8
|
1月前
|
监控 Docker 容器
Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项
本文深入探讨了Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项,旨在帮助用户高效管理集群资源,适应业务变化,确保服务稳定性和资源优化。
52 6
|
2月前
|
Kubernetes 负载均衡 调度
Docker Swarm 核心概念及详细使用
Docker Swarm 是 Docker 的原生集群管理工具,用于将多个 Docker 主机整合成一个虚拟主机,提供集群管理和调度功能。其核心特点包括集群管理、容错与高可用性、负载均衡、声明式服务模型、服务发现和安全性。本文档详细介绍了 Docker Swarm 的安装配置、服务部署、节点管理、网络配置及故障模拟等关键操作,适用于中小型项目或对 Kubernetes 复杂性有所顾虑的用户。
133 6
|
2月前
|
应用服务中间件 nginx Docker
Docker Swarm、Docker Stack和Portainer的使用
Docker Swarm、Docker Stack 和 Portainer 各有其独特的功能和优势。Docker Swarm 适用于分布式服务的管理和编排,Docker Stack 便于多容器应用的定义和部署,而 Portainer 提供了直观的 UI,简化了 Docker 环境的管理。结合使用这些工具,可以大大提高容器化应用的部署和管理效率。希望本文对您理解和应用这些工具有所帮助。
132 5
|
3月前
|
负载均衡 应用服务中间件 网络安全
docker swarm添加更多的服务
【10月更文挑战第16天】
32 6
|
2月前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
2月前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
|
2月前
|
负载均衡 安全 调度
深入调查研究Docker Swarm
【10月更文挑战第19天】
53 0

热门文章

最新文章