从 Dataproc 访问 Google Cloud Kubernetes 服务

sim*_*msi 5 google-kubernetes-engine google-cloud-dataproc

我有一个收集模型的 Kubernetes 服务。构建这些模型的系统是 Python Dataproc 作业。

-> 我需要一种方法将 Dataproc 作业的结果推送到模型收集服务。

问题:如何从 Dataproc 内部访问 Kubernetes 集群中的服务,我有哪些选择?

我需要入口控制器吗?是否可以从 Dataproc 内部访问 Kubernetes 网络(包括 DNS)?通过gcloud(转发,但在 Python 中这似乎并不优雅)是一种选择吗?

Dag*_*ang 2

Dataproc和GKE节点都是GCE虚拟机,默认情况下它们可以通过内部IP、内部DNS或主机名访问同一VPC网络中的服务。但不幸的是,Pod 运行在 VPC 网络之上的另一层虚拟网络中,虚拟机无法直接访问该网络。

有多种选项可以让 Dataproc 节点(以及一般的 GCE 虚拟机)访问 GKE 服务,但我建议您将 GKE 集群和 Dataproc 集群放在同一个 VPC 网络中,然后创建一个特殊的 k8s 服务资源,其类型和LoadBalancer注释cloud.google.com/load-balancer-type: "Internal"为您的 Pod,那么同一 VPC 中的虚拟机就可以通过其内部 IP 访问该服务。有关更多详细信息,请参阅此文档