从 GKE 上的 pods 访问 GCP Cloud DNS

Access GCP Cloud DNS from pods on GKE

我正在研究这个 letsencrypt 控制器 (https://github.com/tazjin/kubernetes-letsencrypt)。

它需要 pods 有权更改 Cloud DNS 中的记录。我想在 GKE 上使用 pods 运行 我可以使用默认服务帐户获得该访问权限,但请求失败了。我需要做什么才能允许 pods 访问 Cloud DNS?

Google Cloud DNS API 的 changes.create call 需要 https://www.googleapis.com/auth/ndev.clouddns.readwritehttps://www.googleapis.com/auth/cloud-platform 范围,默认情况下两者都未启用GKE 集群。

您可以通过 运行 将新的 Node Pool 添加到具有 DNS 作用域的集群:

gcloud container node-pools create np1 --cluster my-cluster --scopes https://www.googleapis.com/auth/ndev.clouddns.readwrite

或者,您可以创建一个具有所需范围的全新集群,方法是在 Cloud Console 中将 --scopes 标志传递给 gcloud container clusters create, or in the New Cluster dialog,然后单击 "More",然后设置"Enabled".

的必要范围