本文档介绍如何为 GKE on Bare Metal 配置域名系统 (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.0.1
- name: my-own-personal-domain.com
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 54
googleAccess: private
将清单保存到名为 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
使用对象数组指定默认上游域名服务器,其中每个对象都具有服务器 IP 地址和(可选)服务器端口。服务器端口的默认值为 53。默认情况下,非集群网域请求会转发到此服务器地址数组。
以下是 upstreamNameservers
配置示例:
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 1.2.3.4
serverPort: 54
如果您没有为 upstreamNameservers
指定任何值,则 DNS 提供商会使用节点上的 /etc/resolve.conf
文件查找上游域名服务器列表。
spec.domains
特定网域的配置。使用此部分为特定网域配置不同的上游域名服务器。这些特定于网域的域名服务器设置会替换 upstreamNameservers
中的配置。
您还可以为网域启用查询日志记录。您可以为任何指定网域或集群网域 cluster.local 启用查询日志记录。
例如:
spec:
domains:
- name: altostrat.com
nameservers:
- serverIP: 203.0.113.1
- name: my-own-personal-domain.com
nameservers:
- serverIP: 198.51.100.1
- serverIP: 198.51.100.2
serverPort: 50000
- name: cluster.local
queryLogging: true
spec.googleAccess
枚举(private
、restricted
或 default
)。指定如何处理 Google 网域。googleAccess
值指定以下行为:
default
:对 Google 网域不进行任何特殊处理。移除googleAccess
字段会产生相同的效果。private
:仅将 Google 网域解析为专用访问通道 IP 地址。restricted
:仅将 Google 网域解析为访问受限的 IP 地址。
以下设置示例仅将 Google 网域解析为专用访问通道 IP 地址:
spec:
googleAccess: private
如需了解详情,请参阅配置适用于本地主机的专用 Google 访问通道。