首页 文章

确定性连接到K8S服务或其底层 endpoints 的 Cloud 内部IP?

提问于
浏览
1

我在GKE中有一个Kubernetes集群(1.3.2),我想从我的谷歌项目连接虚拟机和服务,它与集群共享同一个网络 .

有没有办法让一个在子网内部但不在集群内部的虚拟机连接到服务而不需要连接外部IP?

我知道你可以做很多事情来明确地确定服务的IP和端口,例如ENV和DNS ......但是在集群之外无法访问clusterIP(显然) .

有什么东西我不知道项目中哪些虚拟机想要连接到服务(这可能会排除loadBalancerSourceRanges) . 我理解服务实际包含的 endpoints 是我可以访问的内部IP,但获得该IP的唯一好方法是使用Kube API或kubectl,这两种方法都不是刺激我服务的最佳方式 .

1 回答

  • 2

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

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

    如果管理开销不是您想要继续执行的操作,您可以在GKE集群中编写一个简单的控制器来观察节点API endpoints ,并确保在任何给定的情况下至少有N个节点的实时堡垒路由时间 .

    GCP internal load balancing刚刚以alpha格式发布,因此将来可以使用它来实现GCP上的kube-proxy,这将消除对堡垒路由处理内部服务的需要 .

相关问题