我正在尝试在k8集群中设置Prometheus,使其能够使用头盔运行。当我使用外部IP将Prometheus-Server作为LoadBalancer服务公开时,访问仪表板。 当我尝试将此服务配置为ClusterIP并使用入口控制器使其作为后端时,同样的方法不起作用。收到404错误,对如何解决此问题有何想法?
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时,一些Web控件在浏览器控制台上呈现很多错误。
答案 0 :(得分:0)
Prometheus可能希望控制根路径(/)。
请将Ingress更改为prometheus.example.com
,它应该可以正常工作。 (将其更改为子域)
答案 1 :(得分:0)
请更改您的Ingress配置文件,添加host
字段:
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地址上。
请在此处查看:hosts-header。
入口定义:ingress。
有用的信息:helm-prometheus。
有用的文档:ingress-path-matching。