我在两个服务器(节点)上的dockerCompose.yml中定义了一个码头群,运行我们的业务堆栈。停靠-组合已经定义了cAdvisor,它从两个节点中的每个节点开始,如下所示:
cadvisor:
image: gcr.io/google-containers/cadvisor:latest
command: "--logtostderr --housekeeping_interval=30s"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /:/rootfs:ro
- /var/run:/var/run
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk:/dev/disk/:ro
ports:
- "9338:8080"
deploy:
mode: global
resources:
limits:
memory: 128M
reservations:
memory: 64M在第三台服务器上,我分别在节点1和节点2上运行一个对接程序,这个服务器用于运行Prometheus和Grafana。Prometheus配置为只刮掉节点1:9338资源,以获取cAdvisor信息。
我偶尔会遇到这样的问题:当刮取节点1:9338时,并不是节点1和2上运行的所有容器都显示在cAdvisor统计信息中。
我假设cAdvisor在集群中同步它的信息,这样我就可以配置Prometheus,使其只使用节点1:9338作为码头群的入口点,并抓取信息。
还是我也必须将节点2:9338放入我的Prometheus配置中,以始终获取所有节点的所有信息?如果是的话,应该如何扩展,因为我需要将每个新节点添加到Prometheus配置中。
在一个群体中运行Prometheus和业务堆栈是没有选择的。
编辑:今天我在打开cAdvisor度量、URL、http://node1:9338/metrics和http://node2:9338/metrics时体验了一种奇怪的行为,因为我看到了在两个URL上运行在node1上的所有容器的相同信息。在请求node2时,缺少在http://node2:9338/metrics上运行的容器的信息。
可能是码头-内部负载平衡将请求从http://node2:9338/metrics路由到节点1:9338 cAdvisor,因此尽管请求了node2,node1的度量还是会显示出来吗?
发布于 2020-06-30 08:01:10
cAdvisor查看了该机器上的Linux提供的容器信息,它对群集一无所知。你会想让普罗米修斯刮掉你所有的机器。
https://serverfault.com/questions/1024184
复制相似问题