Я не знаю, как конкретно решить эту проблему при выставлении графаны с помощью NodePort, но мой опыт, приведенный ниже, может помочь вам найти решение, в котором я использовал Istio.Вы также можете повторить то же самое, используя обычный вход nginx kubernetes.
У меня была похожая проблема с экспозицией графаны под подпутью в kubernetes.Я пытался выставить сервисы через Istio VirtualService.Моя конфигурация Istio ниже
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: prometheus-vs
spec:
hosts:
- "my.cluster.fqdn"
gateways:
- prometheus-gateway
http:
- match:
- uri:
prefix: "/monitoring/grafana"
route:
- destination:
port:
number: 80
host: prometheus-operator-grafana
И это фрагмент из моего values.yml
grafana.ini:
paths:
data: /var/lib/grafana/data
logs: /var/log/grafana
plugins: /var/lib/grafana/plugins
provisioning: /etc/grafana/provisioning
analytics:
check_for_updates: true
log:
mode: console
grafana_net:
url: https://grafana.net
server:
domain: my.cluster.fqdn
root_url: "http://my.cluster.fqdn/monitoring/grafana"
Я наткнулся на https://github.com/istio/istio/issues/585,, который в итоге упоминает, чтонам нужно переписать путь, пока графана его не увидела.Он также показывает пример конфигурации Ingress, которая выполняет перезапись
В моем случае я изменил мою виртуальную службу Istio на
kind: VirtualService
metadata:
name: prometheus-vs
spec:
hosts:
- "my.cluster.fqdn"
gateways:
- prometheus-gateway
http:
- match:
- uri:
prefix: "/monitoring/grafana/"
rewrite:
uri: /
route:
- destination:
port:
number: 80
host: prometheus-operator-grafana
, и это заставило ее работать!