Docker Swarm集群监控方案

docker swarm监控方案有很多,主流的有cAdvisor+InfluxDB+Grafana和cAdvisor+Prometheus+Grafana,本文介绍cAdvisor+InfluxDB+Grafana方案 组件说明 cAdvisor:数据收集模块,需要部署在集群中的每一个节点上,当然前提条件是节点接受task。 InfluxDB:数据存储模块。 Grafana:数据展示模块 创建docker compose文件 在manager结点上创建文件,并输入如下内容: version: '3' services: influx: image: influxdb:1.8 # 保证模板兼容性 volumes: - influx:/var/lib/influxdb deploy: replicas: 1 placement: constraints: - node.role == manager grafana: image: grafana/grafana:4.2.0 # 保证模板兼容性 ports: - 0.0.0.0:80:3000 volumes: - grafana:/var/lib/grafana depends_on: - influx deploy: replicas: 1 placement: constraints: - node....

2022-04-15 · 1 分钟

Docker Swarm 节点标签与服务约束

多节点 Swarm 集群下,可能节点的配置不同(比如 CPU、内存等),部署着不同类型的服务(比如 Web服务、Job服务等),当这些服务以 Service 或者 Stack 的形式部署到集群,默认情况下会随机分配到各个节点。不同类型的服务对服务器需求的资源是不同的,为了更合理的利用服务器资源,我们可能希望某些服务能够部署到指定的服务器上。另外一种场景,Swarm 集群中的节点跨机房,为了内部服务间通信更快,我们可能希望关联比较密切的服务能够部署到同一机房的节点上。那么,如何做到呢? 很简单,先给节点添加标签,然后服务发布时添加限制条件即可! Node Label 管理 示例集群信息: docker@node1:~$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION axr4zun8u1es8ytizjpt3zlnw * node1 Ready Active Leader 18.03.0-ce vdip2js7tfflxv0smj6wdw0bv node2 Ready Active 18.03.0-ce vi17ametnwd58297z6nlcl2o0 node3 Ready Active 18.03.0-ce ※ 添加标签 docker node update --label-add role=web node1 ※ 查看标签 docker node inspect node1 [ { "ID": "axr4zun8u1es8ytizjpt3zlnw", "Version": { "Index": 476 }, "CreatedAt": "2018-07-19T03:50:02....

2022-04-08 · 1 分钟

Docker Swarm集群环境搭建及弹性服务部署

一、集群搭建 1、环境准备 五台安装了 Docker 的 CentOS 机器,版本为:CentOS 7.8.2003 Docker Engine 1.12+(最低要求 1.12,本文使用 19.03.12) 防火墙开启以下端口或者关闭防火墙: TCP 端口 2377,用于集群管理通信; TCP 和 UDP 端口 7946,用于节点之间通信; UDP 端口 4789,用于覆盖网络。  2、机器分布 角色 IP HOSTNAME Docker 版本 Manager 192.168.10.101 manager1 19.03.12 Manager 192.168.10.102 manager2 19.03.12 Manager 192.168.10.103 manager3 19.03.12 Worker 192.168.10.10 worker1 19.03.12 Worker 192.168.10.11 worker2 19....

2022-04-08 · 5 分钟

Docker Swarm集群管理利器核心概念扫盲

一、Swarm 简介  Docker Swarm 是 Docker 官方推出的容器集群管理工具,基于 Go 语言实现。代码开源在:https://github.com/docker/swarm 使用它可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。  Docker Swarm 是生产环境中运行 Docker 应用程序最简单的方法。作为容器集群管理器,Swarm 最大的优势之一就是 100% 支持标准的 Docker API。各种基于标准 API 的工具比如 Compose、docker-py、各种管理软件,甚至 Docker 本身等都可以很容易的与 Swarm 进行集成。大大方便了用户将原先基于单节点的系统移植到 Swarm 上,同时 Swarm 内置了对 Docker 网络插件的支持,用户可以很容易地部署跨主机的容器集群服务。  Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排工具,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。  二、Swarm 核心概念 1、Swarm  Docker Engine 1.12 引入了 Swarm 模式,一个 Swarm 由多个 Docker 主机组成,它们以 Swarm 集群模式运行。Swarm 集群由 Manager 节点(管理者角色,管理成员和委托任务)和 Worker 节点(工作者角色,运行 Swarm 服务)组成。这些 Docker 主机有些是 Manager 节点,有些是 Worker 节点,或者同时扮演这两种角色。...

2022-04-08 · 2 分钟

Docker Swarm集群启动时找不到镜像的问题解决

私有镜像仓库搭建 docker run -d -p 5050:5000 --restart always --name registry registry:2 仓库配置 vim /etc/docker/daemon.json { "registry-mirrors": ["https://aqwaeuv8.mirror.aliyuncs.com"], "insecure-registries":["10.3.55.134:5050"] // 取消仓库认证 } 测试,push和pull镜像没有问题,使用docker swarm update时出现找不到镜像错误 问题1: update时提示,No such image: 10.3.55.134:5050/ms-group/ly-12320-server-ks_online:5f223018@sha256:261b7ef562bf95a7293046fb0524e5ff2fe70ad55dcd5ffe7981b35f9d50ff56 解决方案: 需要在所有的docker swarm集群节点都配置daemon.json,并重启docker systemctl restart docker 问题2: 修复完以上问题后,再更新时,出现starting container failed: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: “/bin/sh”: stat /bin/sh: no such file or directory: unknown 解决方案: 基础镜像没有/bin/sh导致,检查基础镜像...

2022-04-07 · 1 分钟