从 Dataproc 访问 Google Cloud Kubernetes 服务
Access Google Cloud Kubernetes services from Dataproc
我有一个收集模型的 Kubernetes 服务。构建这些模型的系统是 Python Dataproc 作业。
-> 我需要一种方法将 Dataproc 作业的结果推送到模型收集服务。
问题:如何从 Dataproc 中访问 Kubernetes 集群中的服务,我有哪些选择?
我需要入口控制器吗?是否可以从 Dataproc 中访问 Kubernetes 网络(包括 DNS)?是否可以选择通过 gcloud
(转发,但从 Python 内部看来并不优雅)?
Dataproc 和 GKE 节点都是 GCE VM,默认情况下它们可以通过内部 IP、内部 DNS 或主机名访问同一 VPC network 中的服务。但不幸的是Pods运行在VPC网络之上的另一层虚拟网络中,虚拟机无法直接访问
有几种方法可以让 Dataproc 节点(和一般的 GCE 虚拟机)访问 GKE 服务,但我建议您将 GKE 集群和 Dataproc 集群放在同一个 VPC 网络中,然后创建一个特殊的 k8s 服务资源为您的 Pod 使用类型 LoadBalancer
和注解 cloud.google.com/load-balancer-type: "Internal"
,则同一 VPC 中的虚拟机可以通过其内部 IP 访问该服务。有关详细信息,请参阅此 doc。
我有一个收集模型的 Kubernetes 服务。构建这些模型的系统是 Python Dataproc 作业。
-> 我需要一种方法将 Dataproc 作业的结果推送到模型收集服务。
问题:如何从 Dataproc 中访问 Kubernetes 集群中的服务,我有哪些选择?
我需要入口控制器吗?是否可以从 Dataproc 中访问 Kubernetes 网络(包括 DNS)?是否可以选择通过 gcloud
(转发,但从 Python 内部看来并不优雅)?
Dataproc 和 GKE 节点都是 GCE VM,默认情况下它们可以通过内部 IP、内部 DNS 或主机名访问同一 VPC network 中的服务。但不幸的是Pods运行在VPC网络之上的另一层虚拟网络中,虚拟机无法直接访问
有几种方法可以让 Dataproc 节点(和一般的 GCE 虚拟机)访问 GKE 服务,但我建议您将 GKE 集群和 Dataproc 集群放在同一个 VPC 网络中,然后创建一个特殊的 k8s 服务资源为您的 Pod 使用类型 LoadBalancer
和注解 cloud.google.com/load-balancer-type: "Internal"
,则同一 VPC 中的虚拟机可以通过其内部 IP 访问该服务。有关详细信息,请参阅此 doc。