Kubernetes - 从服务端点自动填充 CloudDNS 记录

Kubernetes - Automatically populating CloudDNS records from service endpoints

当 运行 Cloud Platform 上的 运行 Kubernetes 集群时,是否有可能以某种方式将来自服务端点的 IP 地址自动分配给 Google CloudDNS 记录?如果可以,这可以在服务 YAML 定义中以声明方式完成吗?

简而言之,我不相信我的 type: LoadBalancer 服务的 IP 地址。

GKE 使用 deployment manager to spin new clusters, as well as other resources like Load Balancers. At the moment deployment manager does not allow to integrate Cloud DNS functionality. Nevertheless there is a feature request to support that。未来如果实现此功能,可能会允许 Cloud DNS、Kubernetes 和 GKE 之间进一步集成。

一种选择是使用入口资源(负载均衡器)将您的服务放在前面,并将其附加到您之前保留的静态 IP。

我无法在 Kubernetes 或 GKE 文档中找到它,但我确实在这里找到了它:

https://github.com/kelseyhightower/ingress-with-static-ip

请记住,您为 kubernetes.io/ingress.global-static-ip-name 注释设置的值是保留 IP 资源的名称,而不是 IP 本身。

在此之前,您需要创建一个全局 IP,将其附加到 GCE 负载均衡器,该负载均衡器具有针对您集群节点的全局转发规则。

如果您不希望使用 k8s Ingress 或 GCP 负载均衡器在您的服务前端,我不相信有一种方法可以自动完成这项工作。也就是说,Ingress 非常简单,所以如果可以的话,我建议你走那条路。

还有一个名为 "external-dns" 的 Kubernetes 孵化器项目,它看起来是一个更普遍地支持此功能的附加组件,并且完全来自集群本身:

https://github.com/kubernetes-incubator/external-dns

我还没有尝试过这种方法,但请将其作为您可能想要遵循的方法提及。