集群外部无法通过 NodePort 方式访问 Prometheus 的 Web UI

在k8s中Prometheus 服务的 NodePort 已经正确配置,但集群外部无法通过 NodePort 方式访问 Prometheus 的 Web UI(集群使用了网络插件Calico)。

排查一:

在集群宿主机进行测试:

kubectl describe svc prometheus-k8s -n monitoring 

从输出结果来看,服务 prometheus-k8s 已经正确配置了两个端口:一个是用于 Web 端口的 9090(NodePort 为 32148),另一个是用于重新加载 Web 端口的 8080(NodePort 为 31109);

然后执行:

curl -L http://<node-ip>:<nodeport>

成功获取了Prometheus Web UI 的 HTML 页面。这表明集群内部可以通过 NodePort 访问 Prometheus 的 Web UI,可以排除 Prometheus Pod 和 Service 的基本配置问题,因为集群内部可以成功访问;

排查二:

尝试从集群的另一个一个节点使用 curl 直接访问 NodePort 服务,显示连接超时;这说明有可能是集群主机上的防火墙规则未允许外部流量到达 Prometheus 的 NodePort,需要手动添加规则以允许 TCP 流量通过端口。

解决方案一:

我的主机节点之前就已经把防火墙(firewalld)关了,需要重新开启,然后在开放防火墙端口:

########################
# master节点防火墙设置
########################

# 所有master节点开放相关防火墙端口
$ firewall-cmd --zone=public --add-port=6443/tcp --permanent
$ firewall-cmd --zone=public --add-port=2379-2380/tcp --permanent
$ firewall-cmd --zone=public --add-port=10250/tcp --permanent
$ firewall-cmd --zone=public --ad
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值