GKE 上另一个 Kubernetes 集群中 Pod 的 DNS

DNS for Pod in another Kubernetes cluster on GKE

我正在尝试连接到托管在同一 GCP 项目的另一个 Kubernetes 集群中的 MongoDB 副本集。我想在连接字符串中使用 DNS names

我能够使用此连接字符串连接到托管在同一集群中的 mongodb:

mongodb://<pod-name>.<service-name>.<namespace>.svc.cluster.local:27017,<pod-name>.<service-name>.<namespace>.svc.cluster.local:27017/?replicaSet=<rs-name>

所以我的问题是:

是否可以使用 DNS 名称来引用另一个集群中的 pod?我查看了 this document 并指出:

Any pods created by a Deployment or DaemonSet have the following DNS resolution available:

pod-ip-address.deployment-name.my-namespace.svc.cluster-domain.example.

但是我不确定 cluster-domain.example 部分的格式是什么。

您不能使用 Kubernetes Service DNS(CoreDNS) 从 kubernetes 集群外部访问 pod,即使是从另一个 kubernetes 集群也是如此。您需要通过 LoadBalancer(推荐)或 NodePort 类型的服务公开 mongodb pod,并使用来自其他 kubernetes 集群的 LoadBalancer endpointNodeIP:NodePort 访问它。