Kubernetes 与K8S服务的云内部IP或其底层端点的确定性连接?

Kubernetes 与K8S服务的云内部IP或其底层端点的确定性连接?,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我在GKE中有一个Kubernetes集群(1.3.2),我想连接我的google项目中的VM和服务,它与集群共享同一网络 是否有一种方法可以让位于子网内部但不在群集内部的VM连接到服务而不触及外部IP 我知道您可以做很多事情来明确地确定服务的IP和端口,例如ENVs和DNS…但是集群IP在集群之外是不可访问的(显然) 有什么我遗漏的吗?其中一个重要的组成部分是,这意味着这是一个项目的“公共”服务,因此我不知道项目上的哪些VM将要连接到该服务(这可能排除loadBalancerSourceRan

我在GKE中有一个Kubernetes集群(1.3.2),我想连接我的google项目中的VM和服务,它与集群共享同一网络

是否有一种方法可以让位于子网内部但不在群集内部的VM连接到服务而不触及外部IP

我知道您可以做很多事情来明确地确定服务的IP和端口,例如ENVs和DNS…但是集群IP在集群之外是不可访问的(显然)


有什么我遗漏的吗?其中一个重要的组成部分是,这意味着这是一个项目的“公共”服务,因此我不知道项目上的哪些VM将要连接到该服务(这可能排除loadBalancerSourceRanges)。我知道服务实际包装的端点是我可以访问的内部IP,但访问该IP的唯一好方法是通过Kube API或kubectl,这两种方法都不是访问我的服务的理想方法。

请查看我更全面的答案,但最常见的解决方案是在GCP项目中创建堡垒路线

在最简单的形式中,您可以创建一条GCE路由,将集群服务ip范围内的所有流量w/dest_ip引导到一个GKE节点上。如果SPOF吓到了你,你可以创建几个指向不同节点的路由,流量将在它们之间循环

如果管理开销不是您想要继续做的事情,那么您可以在GKE集群中编写一个简单的控制器来监视节点API端点,并确保在任何给定时间至少有N个节点的活动堡垒路由


刚刚发布为alpha,因此将来,GCP上的kube proxy可以使用它来实现,这将消除处理内部服务的堡垒路线的需要。

谢谢,CJ。无论出于何种原因,谷歌搜索这一点相当困难:)事实上,还有一个后续问题……假设副本总是设置为1或更多,是否可以保证节点0(由k8s旋转的第一个节点)始终存在?如果不是这样的话,我可以看到需要一个控制器。我不认为有任何保证当你缩小集群时,哪些节点会消失。节点可能由于其他原因而没有响应,因此第二个和第三个选项肯定更好(但需要更多的工作)。