本文档介绍了如何为 Google Distributed Cloud Connected 配置域名系统 (DNS) 提供商选项。集群的 DNS 配置保存在名为 default 的 ClusterDNS 自定义资源中。此资源属于集群级资源,也就是说,它没有命名空间。ClusterDNS 自定义资源适用于所有集群类型。
创建 ClusterDNS 资源
为名为 default 的 ClusterDNS 资源创建清单。填写 spec 以配置所需的资源设置。例如:
apiVersion: networking.gke.io/v1alpha1
kind: ClusterDNS
metadata:
name: default
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 8.8.4.4
domains:
- name: altostrat.com
nameservers:
- serverIP: 198.51.100.1
- name: my-own-personal-domain.com
nameservers:
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 54
googleAccess: default
如需将清单保存到名为 my-dns.yaml 的文件并将该资源应用于集群,请运行以下命令:
kubectl --kubeconfig KUBECONFIG apply -f my-dns.yaml将 KUBECONFIG 替换为集群 kubeconfig 文件的路径。
查看 ClusterDNS 资源
如需查看 ClusterDNS 资源,请运行以下命令:
kubectl --kubeconfig KUBECONFIG get clusterdns default --output yaml将 KUBECONFIG 替换为集群 kubeconfig 文件的路径。
ClusterDNS 规范
以下部分介绍了用于为集群配置 DNS 的 ClusterDNS 自定义资源定义的各个部分。您可以随时更新集群的 ClusterDNS 资源。
spec.upstreamNameservers
使用 spec.upstreamNameservers 字段通过对象数组指定默认的上游名称服务器。每个对象都具有服务器 IP 地址和(可选)服务器端口。服务器端口的默认值为 53。默认情况下,对非集群网域的请求会转发到此组服务器。
以下是 upstreamNameservers 配置示例:
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 1.2.3.4
serverPort: 54
如果您没有为 upstreamNameservers 指定任何值,则 DNS 提供商会使用节点上的 /etc/resolv.conf 文件查找上游域名服务器列表。
spec.domains
使用 spec.domains 字段为特定网域配置不同的上游域名服务器。这些特定于网域的域名服务器设置会替换 upstreamNameservers 中的配置。
您还可以为网域启用查询日志记录。您可以为任何指定网域或集群网域 cluster.local 启用查询日志记录。
以下是 spec.domains 配置示例:
spec:
domains:
- name: altostrat.com
nameservers:
- serverIP: 198.51.100.1
- name: my-own-personal-domain.com
nameservers:
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 50000
- name: cluster.local
queryLogging: true
spec.googleAccess
spec.googleAccess 字段是一个字符串,用于指定如何处理 Google 网域。googleAccess 值指定以下行为:
default:对 Google 网域不进行任何特殊处理。移除googleAccess字段会产生相同的效果。private:仅将 Google 网域解析为专用访问通道 IP 地址。restricted:仅将 Google 网域解析为访问受限的 IP 地址。
以下设置示例仅将 Google 网域解析为专用访问通道 IP 地址:
spec:
googleAccess: private
如需了解详情,请参阅配置适用于本地主机的专用 Google 访问通道。