【发布时间】:2018-12-22 05:38:28
【问题描述】:
我正在尝试在 Kubernetes 上将 Istio 设置为入口控制器。问题是我的两个应用程序似乎可以从 Istio 入口控制器节点端口访问(例如,http://[host]:31380/application1 和 http://[host]:31380/application2) 但无法从 443/80 访问。
我是 Kubernetes 和 Istio 的新手,所以我使用了 https://istio.io/docs/guides/bookinfo/ 指南作为参考。遵循指南相当简单,我能够使用提到的节点端口访问 Bookinfo 应用程序。我无法从 443/80 访问它。我使用 helm chart 安装 Istio。我在 Kubernetes 仪表板的 Ingresses 下也看不到任何内容。
以下是网关/虚拟服务 yaml 的示例:
api版本:networking.istio.io/v1alpha3 种类:网关 元数据: 名称:myapp-网关 规格: 选择器: istio: ingressgateway # 使用 istio 默认控制器 服务器: - 港口: 数量:80 名称:http 协议:HTTP 主持人: - “*” --- api版本:networking.istio.io/v1alpha3 种类:虚拟服务 元数据: 名称:myapp-虚拟服务 规格: 主持人: - “*” 网关: - myapp-网关 网址: - 匹配: - 乌里: 前缀:/myapp 路线: - 目的地: 主机:myapp-app-service 港口: 号码:7080 - 匹配: - 乌里: 字首: / 路线: - 目的地: 主持人:kibana 港口: 号码:5601有什么想法可以让它在 443 上收听吗?我完全错过了一个组件吗?
【问题讨论】:
-
我也面临同样的问题。您应该尝试将其作为问题发布在他们的 GitHub 页面上。可能会得到快速响应。我尝试将 NodePort 从 31380 更改为 80,但它说 NodePort 范围在 30000 - 32767 之间 服务“istio-ingressgateway”无效:spec.ports[0].nodePort:无效值:80:提供的端口是不在有效范围内。有效端口范围为 30000-32767
-
@Kushal,问题的根本原因基本上是您需要部署外部负载均衡器。我假设您也在使用裸机进行部署。如果您运行“kubectl get svc -n istio-system | grep istio-ingress”,它会显示外部 IP 为待处理,对吗?我的解决方法是部署到我们的 IBM Bluemix K8 集群,该集群使用与上述完全相同的 yaml。
标签: routing kubernetes kubernetes-ingress istio