安装:I有一个小的aws k8s集群,其中基础设施组件作为舵机图部署。其中一个组件是令人敬畏的Prometheus图表(参见这里)。组件之间的网络通信应该配置为Istio。
kube-prometheus-alertmanager问题: Prometheus为k8s服务查找单个端点,然后继续尝试根据端点的IP地址与其通信,而不是将其引用为"kube-prometheus-alertmanager..svc.cluster.local“主机。
由于同一节点上的istio并不真正了解IP,而是为kube-prometheus-alertmanager..svc.cluster.local主机定义了出站路由,因此它找不到相应的路由,并不断告诉prometheus容器,因为可以找到相应的路由,因此只能提供404 HTTP响应。因此,在prometheus POD的istio代理侧加容器上,我们看到这样的线条:
[2021-01-22T15:08:54.492Z] "POST /api/v2/alerts HTTP/1.1" 404 NR "-" 0 0 0 - "-" "Prometheus/2.24.0" "62c4ab73-1111-2222-b7d0-9aea26621ec0" "<ENDPOINT_IP>:9093" "-" - - <ENDPOINT_IP>:9093 <kube-prometheus-prometheus_IP>:37178 - -其中404 NR "-“清楚地表示侧车集装箱与路由请求有关的问题。
愿望:会很高兴听到关于保持Prometheus使用端点的最佳策略,但与Istio成为朋友。
提前感谢!
发布于 2021-05-10 13:53:32
我刚刚也遇到了同样的问题,所有内部流量都是发给Alertmanager Pod IP的,结果是404。
解决方案:在kube-prometheus-stack values.yml中
设置
alertmanager.alertmanagerSpec.listenLocal=True不知道这是为什么,但它有效。
https://stackoverflow.com/questions/65847820
复制相似问题