我的Kuberetes上有一个Prometheus,由Prometheus提供服务
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
prometheus-operated ClusterIP None <none> 9090/TCP 13d
和flask应用程序部署
NAME READY STATUS RESTARTS AGE
flask-app-7d59898b78-2j59f 1/1 Running 0 23m
我想通过发送get请求从我的应用程序连接到prometheus-operated
URL = "http://localhost:9090/api/v1/query_range"
PROMQL = ...
r1 = requests.get(url=URL, params=PROMQL)
但我收到“连接被拒绝”错误
ConnectionError: HTTPConnectionPool(host='localhost', port=9090): Max retries exceeded with url: /api/v1/query_range?query= <<<my long query here>>> (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fbbc01b6d60>: Failed to establish a new connection: [Errno 111] Connection refused'))
当我在kubernetes之外运行我的 flask 应用程序时,连接工作正常。连接到prometheus操作的正确URL是什么?
1条答案
按热度按时间xmd2e60i1#
如果Prometheus和您的flask应用部署在同一命名空间中,您可以使用服务名称
prometheus-operated
连接到它。或者在不同命名空间的情况下,假设您没有网络策略,并且您的集群部署了Kube DNS:Kube-DNS命名约定为
service.namespace.svc.cluster-domain.tld
,默认群集域为cluster.local
。例如,如果要从任何名称空间联系
db
名称空间中名为mysql
的服务,只需与mysql.db.svc.cluster.local
对话即可。因此: