本文档将引导您创建 DNS 记录,以管理流量如何到达 Google Distributed Cloud (GDC) 空气隔离环境中的应用和服务。借助 DNS 记录,您可以将域名映射到特定资源,以便向用户授予应用访问权限、管理服务别名、验证所有权、启用反向查找或路由电子邮件。本文档的目标受众群体是负责管理项目内 DNS 记录的平台管理员和应用运维人员。
创建 DNS 区域后,您可以创建不同类型的 DNS 记录,以将您的域名和子网域指向您的服务。您可以在 GDC 中创建以下 DNS 记录类型:
- 地址 (A) 记录:将域名映射到一个或多个 IPv4 地址。此记录是将网域指向服务器的最基本记录类型。
- 规范名称 (CNAME) 记录:用于将一个域名创建为另一个规范(权威)域名的别名。此记录类型有助于重定向流量或简化 DNS 管理。
- 文本 (TXT) 记录:可让您将任意文本与域名相关联。这些记录通常用于验证目的,或用于存储信息,例如用于电子邮件身份验证的发件人政策框架 (SPF) 记录。
- 指针 (PTR) 记录:将 IP 地址映射回域名,也称为 DNS 反向查找。此记录通常用于电子邮件服务器声誉和日志分析。
- 邮件交换 (MX) 记录:用于指定负责接受网域电子邮件的邮件服务器。这对于设置电子邮件服务至关重要。
GDC 不支持为网域设置域名服务器 (NS) 或起始授权 (SOA) 记录。
准备工作
如需在 GDC 中创建 DNS 记录,您必须具备以下条件:
- 现有的公开或专用 DNS 区域。如需了解详情,请参阅创建 DNS 区域。
- 必要的身份和访问权限角色。如需管理项目的 DNS 记录,请让您的 Project IAM Admin 为您授予 Managed DNS Project Admin (
managed-dns-project-admin) 角色。 - 如需使用 gdcloud CLI,请确保您已安装该 CLI。如需了解详情,请参阅安装 gdcloud CLI。
- 如果您使用的是
kubectl,则为全局 API 服务器的 kubeconfig 文件。 如果您尚未生成此文件,请参阅登录。 如需了解详情,请参阅全球和可用区级 API 服务器。
创建 DNS 记录
您可以使用 gdcloud CLI 或 Kubernetes API 创建 DNS 记录。
gdcloud
如需创建 DNS 记录,请使用 gdcloud dns record-sets create 命令:
gdcloud dns record-sets create RESOURCE_RECORD_NAME \
--fqdn=RESOURCE_RECORD_FQDN \
--type=RR_TYPE \
--rrdatas=RECORD_DATA \
--dns-zone=DNS_ZONE_NAME \
[--ttl=TIME_TO_LIVE] \
[--project=PROJECT_NAMESPACE] \
[--async]
替换以下内容:
RESOURCE_RECORD_NAME:您为命名空间内的相应ResourceRecordSet资源选择的唯一名称,例如cname.system.example.comRESOURCE_RECORD_FQDN:记录的完全限定域名 (FQDN),例如another.ai.system.example.com。RR_TYPE:相应ResourceRecordSet的类型。选项包括:A、CNAME、TXT、PTR和MXRECORD_DATA:ResourceRecordSet中所有资源记录的数据。每个条目都代表一条单独的资源记录。 如有多个条目,请使用逗号分隔列表。DNS_ZONE_NAME:要添加此记录的ManagedDNSZone自定义资源的名称。TIME_TO_LIVE:相应记录的存留时间 (TTL),以秒为单位。此字段是可选字段。默认值为300。PROJECT_NAMESPACE:项目的命名空间。 如果您已使用gdcloud config set project全局设置默认项目,则此标志是可选的。--async:如果您希望命令立即返回结果,而不是等待操作完成,请指定此标志。您可以使用describe来检查操作的状态。
以下是基于记录类型的 --rrdatas 标志的一些示例:
A记录:--rrdatas=10.6.7.8CNAME记录:--rrdatas=ai.system.example.comTXT记录:--rrdatas="Example text"PTR记录:--rrdatas=8.7.6.10.in-addr.arpa.MX记录:--rrdatas="10 mail.example.com."
API
- 创建并应用
ResourceRecordSet资源,以在现有代管 DNS 区域中创建 DNS 记录:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ResourceRecordSet
metadata:
name: RESOURCE_RECORD_NAME
namespace: PROJECT_NAMESPACE
spec:
name: RESOURCE_RECORD_FQDN
ttlSeconds: TIME_TO_LIVE
type: RR_TYPE
rrData:
- RECORD_DATA
dnsZone: DNS_ZONE_NAME
EOF
替换以下内容:
GLOBAL_API_SERVER:全局 API 服务器的 kubeconfig 文件的路径。如果您尚未生成此文件,请参阅登录。PROJECT_NAMESPACE:项目的命名空间。RESOURCE_RECORD_NAME:您为命名空间内的相应ResourceRecordSet资源选择的唯一名称,例如cname.system.example.comRESOURCE_RECORD_FQDN:记录的完全限定域名 (FQDN),例如another.ai.system.example.com。TIME_TO_LIVE:相应记录的存留时间 (TTL),以秒为单位。此字段是可选字段。默认值为300。RR_TYPE:相应ResourceRecordSet的类型。选项包括:A、CNAME、TXT、PTR和MXRECORD_DATA:RRset 中所有资源记录的数据。每个条目都代表一条单独的资源记录。下面是一些示例,具体取决于记录类型:A记录:此A记录指向的 IP 地址:type: A rrData: - 10.6.7.8CNAME记录:相应CNAME记录的目标域名:type: CNAME rrData: - "ai.system.example.com"TXT记录:相应TXT记录的文本数据:type: TXT rrData: - "Example text"PTR记录:此PTR记录指向的域名,用于 IP 地址的 DNS 反向查找:type: PTR rrData: - "8.7.6.10.in-addr.arpa."MX记录:邮件服务器的优先级和主机名:type: MX rrData: - "10 mail.example.com."
DNS_ZONE_NAME:要添加此记录的ManagedDNSZone自定义资源的名称。如需了解详情,请参阅创建 DNS 区域。