gpt4 book ai didi

docker-swarm - 在 swarm 环境中访问 c​​advisor 的正确方法

转载 作者:行者123 更新时间:2023-12-04 15:51:56 27 4
gpt4 key购买 nike

我有一个带有两个节点的 Swarm,我正在运行 cadvisor 作为全局服务。我得到指标,grafana/Promethues 可以抓取它们。但是我的数字是错误的。当我使用 docker 命令行工具检查容器数量时,我发现第一个节点上运行着 17 个容器,第二个节点上运行着 14 个容器。然而,Prometheus/grafana 会告诉我,我有 34 个容器,并且两个节点上的容器数量都是 17。

我认为我的问题来自于在与 prometheus 和 grafana 容器不同的堆栈中定义了 cadvisor,并尝试通过服务 API 访问 cadvisor。

在堆栈A中我有

version: '3.6'

services:

cadvisor:
image: google/cadvisor
deploy:
mode: global
ports:
- "8888:8080"
#privileged: true
#command:
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro

然后在 prometheus.yml 配置中我有以下 scrape 定义,其中 host1 和 host2 是节点的主机名。

  - job_name: 'cadvisor'
scrape_interval: 20s
static_configs:
- targets: ['host1:8888','host2:8888']

是否有人提供了在具有多个节点的集群中使用 cadvisor 的工作示例,或者可以指出如何在 proemtheus 配置中为 cadvisor 定义目标?

最佳答案

也许有点晚了,但就在这里。要执行“自动发现”方式,您可以使用类似的东西:

- job_name: 'cadvisor'
dns_sd_configs:
- names: ['tasks.cadvisor']
type: 'A'
port: 8080 # internal

在“tasks.cadvisor”中,点后的名称必须与您在 docker compose 中或通过 docker service create 命令为服务提供的名称相匹配。

关于docker-swarm - 在 swarm 环境中访问 c​​advisor 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53497887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com