开发者社区> 问答> 正文

GKE / Istio:外部世界无法连接到私有集群中的服务

我通过云控制台UI创建了一个带有Istio的私有GKE集群。该群集使用VPC Peering进行设置,以便能够访问另一个Google Cloud Project中的另一个私有GKE群集。

我website在staging命名空间中使用Kubernetes中的服务创建了一个部署(调用)。我的目标是使用Envoy代理使用Istio将此服务公开给外部世界。我创建了必要VirtualService和Gateway这样做,下面这个指南。

当运行“kubectl exec ...”访问私有群集中的pod时,我可以成功连接到服务的内部IP地址website,并使用“curl”查看该服务的输出。

我已经设置了NAT网关,因此私有群集中的pod可以连接到Internet。我通过pod中的curl各种非Google网页确认了这一点website。

然而,我无法连接到website从外部服务,使用External IP所述的istio-ingressgateway服务,如上面所述引导提到。相反,curl-ing External IP导致超时。

我已将所有相关资源的完整YAML配置放在私有要点中,例如:https://gist.github.com/marceldegraaf/0f36ca817a8dba45ac97bf6b310ca282

我想知道我的配置中是否遗漏了某些东西,或者我的用例实际上是不可能的?

展开
收起
k8s小能手 2019-02-22 15:48:35 2724 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    从验证所有选项,将具有Istio的私有GKE集群暴露给外部的唯一方法是使用云NAT。

    由于GKE中的主节点是托管服务,因此在将Istio与私有群集一起使用时存在当前限制。完成您的用例的唯一解决方法是使用Cloud NAT。

    2019-07-17 23:29:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Kubernetes上基于Istio体验云原生应用实践 立即下载
Kubernetes的网络实践 立即下载
多租户Kubernetes实践-从容器运行时到SDN 立即下载