首页 > 解决方案 > kubernetes-dashboard 通过 istio [1.0.0] ingress --istio-ingressgateway 暴露

问题描述

我已经使用 let encrypt 证书配置了 istio ingress。我可以通过使用网关和虚拟服务访问在不同端口上运行的 https 上的不同服务。

但是 kubernetes-dashboard 在 kube-system 命名空间中的 443 端口上运行并使用自己的证书,我如何通过 istio 网关和虚拟服务公开它。

我已经为仪表板定义了子域并创建了网关、虚拟服务,它正在将 443 流量定向到 kuberentes 仪表板服务,但它不起作用。

对于 https 虚拟服务配置,我参考了 for istio doc

标签: kubernetesistiokubernetes-dashboard

解决方案


听起来您想配置一个入口网关来执行 SNI 直通而不是 TLS 终止。您可以通过将网关配置中的 tls 模式设置为 PASSTHROUGH 来做到这一点,如下所示:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: dashboard
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 443
      name: https-dashboard
      protocol: HTTPS
    tls:
      mode: PASSTHROUGH
    hosts:
    - dashboard.example.com

可以在此处找到完整的直通示例。


推荐阅读