[英]How to access Prometheus and Grafana installed in the ingress-nginx namespace on managed k8s running in Azure?
我已按照https://kubernetes.github.io/ingress-nginx/user-guide/monitoring/上的说明安装 Prometheus 和 Grafana 以监控 ingress-nginx 控制器的性能。
但是,访问 Prometheus 仪表板的说明对我不起作用。
实际上,根据说明,我们应该能够通过以下命令返回的 IP 之一访问服务:
kubectl get nodes --selector=kubernetes.io/role!=master -o jsonpath={.items[*].status.addresses[?\(@.type==\"InternalIP\"\)].address}
但是,我不明白这怎么可能,因为 IP 是集群内部的。 即使在他们的文档中:
如果 IP 地址10.192.0.2 10.192.0.3 10.192.0.4
在集群内部,它怎么可能工作?
这是我所拥有的:
mark@D-LP0003:~$ kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana NodePort 10.0.6.223 <none> 3000:32275/TCP 23m
ingress-nginx-controller LoadBalancer 10.0.254.117 40.76.145.210 80:32542/TCP,443:31960/TCP 51m
ingress-nginx-controller-admission ClusterIP 10.0.110.16 <none> 443/TCP 51m
prometheus-server NodePort 10.0.208.16 <none> 9090:32053/TCP 48m
mark@D-LP0003:~$
没有外部IP。 好的,文档已经考虑到它并建议运行另一个命令:
mark@D-LP0003:~$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
aks-nodepool1-30294001-vmss000000 Ready agent 14h v1.17.9 10.240.0.4 <none> Ubuntu 16.04.7 LTS 4.15.0-1092-azure docker://3.0.10+azure
aks-nodepool1-30294001-vmss000001 Ready agent 14h v1.17.9 10.240.0.5 <none> Ubuntu 16.04.7 LTS 4.15.0-1092-azure docker://3.0.10+azure
aks-nodepool1-30294001-vmss000003 Ready agent 11h v1.17.9 10.240.0.6 <none> Ubuntu 16.04.7 LTS 4.15.0-1092-azure docker://3.0.10+azure
mark@D-LP0003:~$
仍然没有外部IP。 此时文档建议运行另一个命令:
mark@D-LP0003:~$ kubectl get nodes --selector=kubernetes.io/role!=master -o jsonpath={.items[*].status.addresses[?\(@.type==\"InternalIP\"\)].address}
10.240.0.4 10.240.0.5 10.240.0.6mark@D-LP0003:~$
我取回了相同的内部 IP。
我发现访问仪表板的唯一方法是通过客户端端口转发:
kubectl port-forward svc/prometheus-server 9090:9090 -n ingress-nginx &
然后我可以通过http://localhost:9090
访问服务器。
但我不想要它。 该服务应该可以从外部访问,那么我如何访问它?
你有几个选择
由于您在 Azure 中,您可以创建LoadBalancer
类型的服务而不是NodePort
类型的服务来公开 grafana 和 prometheus。 您将获得可用于访问该服务的外部 IP。
使用主节点 IP 和 NodePort 访问它。 假设主节点有外部 IP。 对 prometheus 使用MASTERNODEIP:32053
对MASTERNODEIP:32275
使用MASTERNODEIP:32053
32275
使用入口资源来公开它们。 您已经有一个用于 nginx 入口控制器的 LoadBalancer 的外部 IP。 使用该 IP 访问它。 请参阅此内容以了解如何操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.