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