说明
从 GCP 云 DNS 中的资源记录集提供区域,云 DNS 插件很有用。此插件支持所有 Google 云 DNS 记录。CoreDNS 在 GCP 或其他位置部署时,都可以使用此插件。请注意,此插件通过 Google Cloud API 访问资源记录。对于私有托管区域中的记录,不需要将 CoreDNS 和此插件放置在关联的 VPC 网络中。实际上,可以创建私有托管区域而无需任何关联的 VPC,此插件仍可以访问托管区域下的资源记录。
语法
clouddns [ZONE:PROJECT_ID:HOSTED_ZONE_NAME...] {
credentials [FILENAME]
fallthrough [ZONES...]
}
-
ZONE 要访问的域名。当存在具有重叠域名的多个区域(私有托管区域与公有托管区域)时,CoreDNS 按此处提供的顺序执行查找。因此,对于不存在的资源记录,SOA 响应将来自右侧区域。
-
PROJECT_ID Google Cloud 项目的项目 ID。
-
HOSTED_ZONE_NAME 包含要访问的资源记录集的托管区域的名称。
-
credentials
用于从 FILENAME(通常是 .json 文件)读取凭据文件。此字段是可选的。如果未提供此字段,则将自动完成认证,例如,通过环境变量GOOGLE_APPLICATION_CREDENTIALS
。请参阅 Google Cloud 的 认证方法 了解更多详情。 -
fallthrough
如果区域匹配但无法生成记录,请将请求传递给下一个插件。如果省略 [ZONES…],则会对插件具有权威的所有区域实施故障转移。如果列出特定的区域(例如in-addr.arpa
和ip6.arpa
),则只有针对这些区域的查询会受到故障转移影响。
示例
使用隐式 GCP 凭据启用云 DNS 并通过 10.0.0.1 解析 CNAME
example.org {
clouddns example.org.:gcp-example-project:example-zone
forward . 10.0.0.1
}
使用故障转移启用云 DNS
example.org {
clouddns example.org.:gcp-example-project:example-zone example.com.:gcp-example-project:example-zone-2 {
fallthrough example.gov.
}
}
使用具有相同域名的多个托管区域启用云 DNS
. {
clouddns example.org.:gcp-example-project:example-zone example.com.:gcp-example-project:other-example-zone
}