Kubernetes 普罗米修斯仪表板暴露在入口控制器上方
我试图在k8集群中设置普罗米修斯,能够使用头盔运行。当我使用外部ip将prometheus服务器公开为LoadBalancer服务时访问仪表板。 当我尝试将此服务配置为ClusterIP并使用ingress controller将其作为后端时,同样的方法不起作用。收到404错误,有没有关于如何解决这个问题的想法Kubernetes 普罗米修斯仪表板暴露在入口控制器上方,kubernetes,prometheus,kubernetes-ingress,nginx-ingress,prometheus-operator,Kubernetes,Prometheus,Kubernetes Ingress,Nginx Ingress,Prometheus Operator,我试图在k8集群中设置普罗米修斯,能够使用头盔运行。当我使用外部ip将prometheus服务器公开为LoadBalancer服务时访问仪表板。 当我尝试将此服务配置为ClusterIP并使用ingress controller将其作为后端时,同样的方法不起作用。收到404错误,有没有关于如何解决这个问题的想法 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ops-ingress annotations:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ops-ingress
annotations:
#nginx.org/server-snippet: "proxy_ssl_verify off;"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- http:
paths:
- path: /prometheus(/|$)(.*)
backend:
serviceName: prometheus-server
servicePort: 80
上述入口定义到位后,url“http:///prometheus/ 正在重定向到http:///graph/ 然后404错误页面被呈现。当url调整为http:///prometheus/graph 一些网络控件在浏览器控制台上呈现时出现了许多错误。普罗米修斯可能希望控制根路径(/)
请将入口更改为
prometheus.example.com
,它应该可以正常工作。(将其更改为子域)prometheus可能希望控制根路径(/)
请将入口更改为
prometheus.example.com
,它应该可以正常工作。(将其更改为子域)请更改入口配置文件,添加主机
字段:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ops-ingress
annotations:
#nginx.org/server-snippet: "proxy_ssl_verify off;"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: prometheus.example.com
http:
paths:
- path: /prometheus(/|$)(.*)
backend:
serviceName: prometheus-server
servicePort: 80
然后在执行命令时应用更改:
$ kubectl aply -f your_ingress_congifguration_file.yaml
请求中的host
头字段提供主机和端口
来自目标URI的信息,使源服务器能够
在为多个请求提供服务时区分资源
单个IP地址上的主机名
请看这里:
入口定义:
有用信息:
有用的文档:。请更改入口配置文件,添加
主机
字段:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ops-ingress
annotations:
#nginx.org/server-snippet: "proxy_ssl_verify off;"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: prometheus.example.com
http:
paths:
- path: /prometheus(/|$)(.*)
backend:
serviceName: prometheus-server
servicePort: 80
然后在执行命令时应用更改:
$ kubectl aply -f your_ingress_congifguration_file.yaml
请求中的host
头字段提供主机和端口
来自目标URI的信息,使源服务器能够
在为多个请求提供服务时区分资源
单个IP地址上的主机名
请看这里:
入口定义:
有用信息:
有用的文档:。您的意思是将主机添加为prometheus.example.com吗?添加了主机并收到相同的404错误,稍后url调整为
http://prometheus.example.com/prometheus/graph
一些网络控件在浏览器控制台上呈现时会出现很多错误。因此基本上行为与以前相同。删除路径域d,所以理想情况下您的url将成为prometheus.example.com/graph
,如果路径被删除并且正在进行重写到root(/),那么prometheus的web控制台就可以工作了。但是有了它,如何在一个IP上公开一个入口控制器来管理多个服务?我的想法是为不同的服务定义不同的路径(扇出路由)您可以将*.example.com
的dns配置为相同的IP,并可以进行基于子域的路由。因此,您可以获得service1.example.com
和service2.example.com
这是标准做法。正如您提到的,我的答案解决了您的问题,请接受:)您的意思是将主机添加为prometheus.example.com吗?添加了主机并收到相同的404错误,稍后url调整为http://prometheus.example.com/prometheus/graph
一些网络控件在浏览器控制台上呈现时会出现很多错误。因此,基本上行为与以前相同。请删除路径字段,以便理想情况下,您的url将l变成prometheus.example.com/graph
如果路径被删除,并且正在进行重写到root(/),那么prometheus的web控制台就可以工作了。但是,如何在一个IP上暴露一个入口控制器的情况下管理多个服务?我的想法是为不同的服务定义不同的路径(扇出路由)您可以将*.example.com
的dns配置为相同的IP,并可以执行基于子域的路由。因此,您可以获得service1.example.com
和service2.example.com
这是标准做法。正如您提到的,我的答案解决了您的问题,请接受它:)尝试添加主机,行为保持不变。在进一步查看ingress控制器日志中的错误[17/Jan/2020:19:49:56+0000]“GET/static/css/graph.css?v=6f92ce56053866194ae5937012c1bec40f1dd1d9 HTTP/1.1”404190”http://prometheus.example.com/prometheus/graph“”Mozilla/5.0(Macintosh;Intel Mac OS X 10_15_2)AppleWebKit/537.36(KHTML,如Gecko)Chrome/74.0.3729.131 Safari/537.36“428 0.000[上游默认后端][尝试添加主机和行为保持不变。进一步查看此错误时,ingress控制器日志中的错误为[code>xx.xxx.xxx.xx---[17/Jan/2020:19:49:56+0000]“GET/static/css/graph.css?v=6f92ce56053866194ae5937012c1bec40f1dd1d9 HTTP/1.1”404 190"http://prometheus.example.com/prometheus/graph“Mozilla/5.0(Macintosh;英特尔Mac OS X 10_15_2)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/74.0.3729.131 Safari/537.36”428 0.000[上游默认后端][]