2

k3s内部に Prometheus と Alertmanager がデプロイされたクラスターがありIngress、それぞれにリソースを設定しています。私の初期設定はそれぞれprometheus.domain.comalermanager.domain.comで、これらは期待どおりに機能しました。

domain.com/prometheusただし、それぞれに切り替えたいdomain.com/alertmanagerのですが、調査したオプションが機能していません。

GOAL Prometheus サービスをdomain.com/prometheusPrometheus パスの「ルート」として動作させるため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

k3s クラスターをホストしている Vagrant ボックスに SSH で接続します。

$ 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

試み #2

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  app: Prometheus
  annotations:
    traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip
spec:
  rules:
    - http:
        paths:
          - path: /prometheus
            backend:
              serviceName: prometheus
              servicePort: 9090

上記と同じ結果です。

4

1 に答える 1