从GKE中的K8S pod连接到Google Cloud Platform上的VM内部IP

时间:2018-03-28 16:04:11

标签: google-cloud-platform virtual-machine vpc kubernetes

我们要求从GKE中的POD连接到其内部IP地址上的VM上运行的服务。

enter image description here

K8s群集和VM位于不同的网络上,因此我们在这些网络之间设置VPC对等:

enter image description here

作为如何指向外部IP,我们应用了一个没有选择器的服务,如下所述:

https://kubernetes.io/docs/concepts/services-networking/service/#services-without-selectors

POD应通过此服务连接到VM的内部IP,服务和端点描述为:

kubectl描述svc vm-proxy

Name:              vm-proxy
Namespace:         test-environment
Labels:            <none>
Annotations:       <none>
Selector:          <none>
Type:              ClusterIP
IP:                10.59.251.146
Port:              <unset>  8080/TCP
TargetPort:        8080/TCP
Endpoints:         10.164.0.10:8080
Session Affinity:  None
Events:            <none>

因此,端点,VM的内部IP是 服务IP由K8分配。

pod只是设置与服务IP的http连接,但重新融合了连接。 (最终连接超时)。

用例非常简单,并记录在k8s文档中,给出了连接到VM上运行的数据库的示例。但是它在我们的情况下不起作用,我们不确定我们的设置是否错误或者使用VM的内部IP是不可能的。

1 个答案:

答案 0 :(得分:1)

我转载了你的问题,它对我来说很好。这就是我所做的:

  1. 创建2个网络(其中一个(演示)在172.16.0.0/16上,另一个是我的默认网络,在10.132.0.0/20上设置)。
  2. 设置VPC对等。
  3. 在演示网络中创建了一个VM。它被分配了172.16.0.2
  4. 按照您的描述创建服务(端点指向172.16.0.2)。
  5. 从pod到服务IP卷曲并获得200!
  6. 如果步骤正确,但您的配置无效,我想知道您的网络IP范围。他们两个。