【问题标题】:Why I can't expose the grafana that comes from istio with Istio Gateway?为什么我不能用 Istio Gateway 暴露来自 istio 的 grafana?
【发布时间】:2019-01-11 02:22:28
【问题描述】:

我正在使用 helm 安装 istio-1.0.0 版本,--set grafana.enabled=true

要访问 grafana 仪表板,我必须使用 kubectl 命令进行端口转发。它工作正常。但是,我想使用公共 ip 访问它,因此我使用这个网关 yaml 文件

---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: grafana-gateway
  namespace: agung-ns
spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation
  servers:
  - port:
      number: 15031
      name: http-grafana
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: grafana-global-route
  namespace: agung-ns
spec:
  hosts:
  - "grafana.domain"
  gateways:
  - grafana-gateway
  - mesh
  http:
  - route:
    - destination:
        host: "grafana.istio-system"
        port: 
          number: 3000
      weight: 100

我尝试curl它,但它返回 404 状态,这意味着路由逻辑和/或我上面的配置有问题。

curl -HHost:grafana.domain http://<my-istioingressgateway-publicip>:15031 -I
HTTP/1.1 503 Service Unavailable
date: Tue, 14 Aug 2018 13:04:27 GMT
server: envoy
transfer-encoding: chunked

有什么想法吗?

【问题讨论】:

  • 能否确认3000端口是Nodeport还是Service端口?

标签: kubernetes istio


【解决方案1】:

我认为问题在于您在不同的命名空间中引用服务。您需要添加 FQDN (grafana.istio-system.svc.cluster.local)。

如果您需要集成 istio、grafana、prometheus 和 jaeger,通过网关公开并启用安全性,您可以查看我正在处理的项目: https://github.com/kyma-project/kyma

【讨论】:

    【解决方案2】:

    我确实是这样曝光的:

    grafana.yml

    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: grafana-gateway
      namespace: istio-system
    spec:
      selector:
        istio: ingressgateway # use istio default controller
      servers:
      - port:
          number: 80
          name: http
          protocol: HTTP
        hosts:
        - "my.dns.com"
    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: grafana-vts
      namespace: istio-system
    spec:
      hosts:
      - "my.dns.com"
      gateways:
      - grafana-gateway
      http:
      - match:
        - uri:
            prefix: /
        route:
        - destination:
            host: grafana
            port: 
              number: 3000
    

    然后:

    kubectl apply grafana.yml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-25
      • 2019-03-09
      • 1970-01-01
      • 2020-01-12
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      相关资源
      最近更新 更多