Kubernetes 在';根';k3s上我的后端服务的路径?
我有一个Kubernetes 在';根';k3s上我的后端服务的路径?,kubernetes,traefik,traefik-ingress,k3s,Kubernetes,Traefik,Traefik Ingress,K3s,我有一个k3s集群,内部有Prometheus和Alertmanager部署,并为每个集群设置Ingress资源。我的初始设置分别是prometheus.domain.com和alermanager.domain.com,这些都按预期工作 但是,我想分别切换到domain.com/prometheus和domain.com/alertmanager,我所研究的选项不起作用 目标 让我的Prometheus服务工作,使domain.com/Prometheus成为我的Prometheus路径的“根
k3s
集群,内部有Prometheus和Alertmanager部署,并为每个集群设置Ingress
资源。我的初始设置分别是prometheus.domain.com
和alermanager.domain.com
,这些都按预期工作
但是,我想分别切换到domain.com/prometheus
和domain.com/alertmanager
,我所研究的选项不起作用
目标
让我的Prometheus服务工作,使domain.com/Prometheus
成为我的Prometheus路径的“根”,从而根据其默认行为自动重定向到domain.com/Prometheus/graph
,并且Prometheus下的所有子路径(警报、配置、管理API)遵循相同的行为
尝试#1
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
app: Prometheus
annotations:
traefik.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- http:
paths:
- path: /prometheus($|/)(.*)
backend:
serviceName: prometheus
servicePort: 9090
SSH进入承载我的k3s群集的Vagrant box:
$ kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS
prometheus <none> * 192.168.0.200 80
$ curl 192.168.0.200/prometheus
404 page not found
$ curl 192.168.0.200/prometheus/graph
404 page not found
与上述结果相同。您需要从以下内容开始普罗米修斯:
--web.route-prefix="http://example.com/prometheus"
发件人:
web.externalURL“,
“外部可访问普罗米修斯的URL(例如,如果通过反向代理为普罗米修斯提供服务)。用于生成与普罗米修斯自身的相对和绝对链接。如果URL有一个路径部分,那么它将用于为普罗米修斯服务的所有HTTP端点加前缀。如果省略,将自动派生相关的URL组件
对于altermanager,您需要设置:
--alertmanager.url=http://example.com/alertmanager
注意:在这种情况下不要在入口中使用重写。注意
就是为我做的。我已经在我的参数上有了webroute
选项,但似乎你只能有一个。谢谢,伙计!
--alertmanager.url=http://example.com/alertmanager