Helm-通过Nginx Ingress访问Grafana

时间:2018-07-31 05:24:21

标签: nginx kubernetes kubernetes-helm kubernetes-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标头)?

1 个答案:

答案 0 :(得分:3)

您的入口仅设置为一个主机-chart-example.local,该主机来自该Helm图表的Values.yaml。如果您没有其他入口,请将Values.yaml中的chart-example.local替换为“ *”,这将匹配任何主机。如果您有其他入口,这可能会窃取他们的流量,因此将其设置为“ localhost”或“ 127.0.0.1”,就可以连接到这两个端口中的任何一个。

我想做的是创建一个虚假的主机名,例如foo.local,并将其添加到/ etc / hosts中,以便它是有效的主机名。