Helm - 通过 Nginx Ingress 访问 Grafana
Helm - Accessing Grafana over Nginx Ingress
我使用Helm部署了Grafana,配置文件中的内容如下(仅显示相关部分):
ingress:
enabled: true
annotations:
ingress.kubernetes.io/rewrite-target: /grafana
kubernetes.io/ingress.class: nginx-internal
然后我使用具有以下配置的 Helm 部署了 Nginx-Ingress:
controller:
config:
ssl-redirect: "false"
ingressClass: nginx-internal
service:
type: NodePort
nodePorts:
http: 30080
https: 30443
这是 Ingress 的描述:
Name: mottled-magpie-grafana
Namespace: kube-system
Address:
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
chart-example.local
/ mottled-magpie-grafana:80 (10.32.0.93:3000)
Annotations:
ingress.kubernetes.io/rewrite-target: /grafana
kubernetes.io/ingress.class: nginx-internal
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CREATE 1h nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
Normal CREATE 1h nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
Normal CREATE 1h nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
Normal UPDATE 1h nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
Normal CREATE 53m nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
安装一切正常,但是当我尝试 curl <hostIp>:30080/grafana
.
时无法从我的主机访问 Grafana
但是,这有效:
curl <hostIp>:30080 -H "HOST: chart-example.local"
设置是 运行 在本地 VM 上。如何从我的浏览器访问 Grafana(无需手动添加 Host
header)?
您的入口仅为一台主机设置 - chart-example.local,它来自 Helm chart 的 Values.yaml。如果你是 运行 没有其他入口,请将 Values.yaml 中的 chart-example.local 替换为“*”,这将匹配任何主机。如果您有其他入口,这可能会窃取他们的流量,因此将其设置为 "localhost" 或“127.0.0.1”,您将能够连接到这两者中的任何一个。
我喜欢做的是创建一个假的主机名,比如 foo.local,并将其添加到 /etc/hosts 中,这样它就是一个有效的主机名。
我使用Helm部署了Grafana,配置文件中的内容如下(仅显示相关部分):
ingress:
enabled: true
annotations:
ingress.kubernetes.io/rewrite-target: /grafana
kubernetes.io/ingress.class: nginx-internal
然后我使用具有以下配置的 Helm 部署了 Nginx-Ingress:
controller:
config:
ssl-redirect: "false"
ingressClass: nginx-internal
service:
type: NodePort
nodePorts:
http: 30080
https: 30443
这是 Ingress 的描述:
Name: mottled-magpie-grafana
Namespace: kube-system
Address:
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
chart-example.local
/ mottled-magpie-grafana:80 (10.32.0.93:3000)
Annotations:
ingress.kubernetes.io/rewrite-target: /grafana
kubernetes.io/ingress.class: nginx-internal
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CREATE 1h nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
Normal CREATE 1h nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
Normal CREATE 1h nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
Normal UPDATE 1h nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
Normal CREATE 53m nginx-ingress-controller Ingress kube-system/mottled-magpie-grafana
安装一切正常,但是当我尝试 curl <hostIp>:30080/grafana
.
但是,这有效:
curl <hostIp>:30080 -H "HOST: chart-example.local"
设置是 运行 在本地 VM 上。如何从我的浏览器访问 Grafana(无需手动添加 Host
header)?
您的入口仅为一台主机设置 - chart-example.local,它来自 Helm chart 的 Values.yaml。如果你是 运行 没有其他入口,请将 Values.yaml 中的 chart-example.local 替换为“*”,这将匹配任何主机。如果您有其他入口,这可能会窃取他们的流量,因此将其设置为 "localhost" 或“127.0.0.1”,您将能够连接到这两者中的任何一个。
我喜欢做的是创建一个假的主机名,比如 foo.local,并将其添加到 /etc/hosts 中,这样它就是一个有效的主机名。