我有几个运行 dev 命名空间的 nodejs 微服务,我公开指标并能够通过 http://localhost:9187/metrics 访问它们.
但是,当我部署运行监视命名空间的 prometheus 服务器时,我在 Targets 页面中收到以下错误。
Get http://1.../metrics: context deadline exceeded.
我假设这些都不允许从命名空间监控访问
所以需要在命名空间 dev 中添加一个额外的,以允许命名空间监控中的 prometheus pod 抓取下面的 pod,或者这个错误的原因可能是什么?
将 netpol 添加到我的应用程序以允许 prometheus 进行命名空间监控的最佳方法是什么?
kubectl get netpol -n dev
myapp-api-dev app.kubernetes.io/instance=myapp-api-dev,app.kubernetes.io/name=oneapihub-api 5h33m
myapp-auth-dev app.kubernetes.io/instance=myapp-auth-dev,app.kubernetes.io/name=oneapihub-auth 56m
myapp-backend-dev app.kubernetes.io/instance=myapp-backend-dev,app.kubernetes.io/name=oneapihub-backend 5h42m
redis app=redis,release=redis 33d
kubectl 获取 pods -n 监控
NAME READY STATUS RESTARTS AGE
monitoring-prometheus-server-6cc796c4db-hp4rg 2/2 Running 0 2d4h
最佳答案
我猜你已经安装了 kube-prometheus。在这种情况下,您需要创建自定义角色和角色绑定(bind)以让 Prometheus 监控其他命名空间,请参阅 here
关于Kubernetes:Prometheus 上下文期限超过错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61100869/