gpt4 book ai didi

docker - 警报管理器 : Difference between cluster listen address and advertise address

转载 作者:行者123 更新时间:2023-12-02 20:53:29 30 4
gpt4 key购买 nike

我有 alertmanager 作为 docker 容器在两台不同的主机上运行,​​并且两者都应该作为集群运行。两台机器都在同一个 vpc 内,并与私有(private) IP 地址通信。
我需要知道--cluster.listen-address 和--cluster.advertise-address 有什么区别。
如果我错了,请纠正我,指定 cluster.listen-address=:9094表示alertmanager 将在端口9094 上的所有接口(interface)上监听集群连接。因此,不同主机上的所有其他alertmanager 节点都可以通过设置cluster.peer=<ip>:9094 连接到此alertmanager 的ip 地址在端口9094 上。 .
但是后来,我不明白cluster.advertise-address有什么用。
documentation对广告和收听地址的用例没有太多了解。

The chosen port in the cluster.listen-address flag is the port that needs to be specified in the cluster.peer flag of the other peers.
The cluster.advertise-address flag is required if the instance doesn't have an IP address that is part of RFC 6980 with a default route.


有人可以帮我知道两者之间的区别吗?

最佳答案

在集群系统中,每个节点都需要能够访问其他每个节点。但是,一个节点可能有多个身份,特别是在使用某种形式的网络地址转换 (NAT) 时。例如,在 Docker 的特定上下文中,容器具有容器专用 IP 地址,但在 Docker 之外,通常通过其主机的 IP 地址或 DNS 名称和发布的端口来访问它。
收听地址绑定(bind)地址指定进程接受入站连接的网络接口(interface)。在 Docker 中,这几乎总是特殊的“所有接口(interface)”IPv4 地址0.0.0.0。或其 IPv6 等效项:: , 并使用服务的标准 TCP 端口。 Alertmanager 默认 0.0.0.0:9094在这里是正确的。 (如果是127.0.0.1,则无法从其容器外部访问该进程。某些软件会枚举可用接口(interface)并分别绑定(bind)到每个接口(interface),这也可以。)
广告地址告诉集群如何连接回节点。如果整个系统在 Docker 中运行,这可能是 Docker 内部的 DNS 名称;在 Kubernetes 中,一个服务名称;或在多主机设置中,主机的名称和发布的端口。特别是在 Docker 案例中,服务器可能正在监听端口 9094,但 docker run -p选项可以选择不同的外部可见端口;通告地址配置是集群的其余部分可以知道该地址的唯一方式。
同行是集群中其他节点的初始集合,但它们可以来来去去,一旦您连接到集群,新节点通常可以发现所有其他当前成员。
在多主机 Docker 环境中,应该使用默认的监听地址;您应该将广告地址设置为您的主机的 IP 地址和发布的端口;并且您应该列出尽可能多的初始已知对等方。对于第一个节点,您无法列出任何对等节点,因为第二个节点尚未运行。

关于docker - 警报管理器 : Difference between cluster listen address and advertise address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64301333/

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