本页面介绍如何使用 Cloud DNS 配置 DNS 路由政策和启用健康检查。在使用本页面之前,请先熟悉 DNS 路由政策和健康检查。
准备工作
如需配置 DNS 路由政策,请创建资源记录集,然后选择以下某个 DNS 路由政策以应用于该资源记录集。
DNS 路由政策支持在地理定位路由政策中为每个地理位置设置多个 IP 地址。如果您为某个地理位置指定了多个 IP 地址,Cloud DNS 会返回为该地理位置指定的所有 IP 地址。您无法将地理定位路由政策与自定义加权 WRR 政策结合使用。
一次只能对资源记录集应用一种路由政策类型。
请确保为区域负载均衡器启用全球访问权限。
在为公开区域配置 DNS 路由政策之前,请停用
constraints/compute.disableInternetNetworkEndpointGroup
组织政策限制。如需了解详情,请参阅组织政策限制条件。确保您拥有配置 DNS 路由政策所需的权限。
为专用区域创建 DNS 路由政策
在为专用区域创建 DNS 路由政策之前,请完成以下步骤。
- 创建专用区域。
- 设置以下内部负载均衡器之一:
- 为内部负载均衡器创建转发规则。
- 为内部负载均衡器设置健康检查。
如需为专用区域创建 DNS 路由政策,请按以下步骤操作。
控制台
开始配置
在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。
点击要在其中添加记录的托管区域的名称。
在可用区详细信息页面上,点击添加路由政策。
基础数据
可选:在使用路由政策创建记录集页面的 DNS 名称中,输入 DNS 名称的子网域,例如
mail
。系统会自动添加结尾句点。在资源记录类型部分,选择一个选项。
对于 TTL,请输入一个数值表示资源记录的存留时间 (TTL),即该资源记录可缓存的时间期限。此值必须是正整数
可选:对于 TTL 单位,选择时间单位,例如
minutes
。默认值设为minutes
。点击下一步。
路由政策类型
- 对于路由政策,请选择加权轮循、地理定位或故障切换。
- 点击下一步。
路由政策数据
WRR
在权重部分,输入与资源记录 (RR) 数据的此子部分相对应的权重。
此权重必须为介于 0.0 到 1000.0 之间的非负数。路由到目标的流量比率是根据各个权重与所有权重之和的比率计算的。例如,如果目标 A 的权重为 25,目标 B 的权重为 75,总权重为 100,则 Cloud DNS 会将 25/100 = 0.25(25%)的总流量路由到目标 A,并将 75/100= 0.75(75%)的总流量路由到目标 B。
在 IPv4 健康检查目标部分中,执行以下操作:
- 对于项目,选择转发规则所在的项目。
对于转发规则,选择一个转发规则。
该转发规则会指定内部 IP 地址、端口和以下目标之一:
- 区域性后端服务
- 全球或区域目标 HTTPS 代理
- 区域级目标 TCP 代理
点击完成。
可选:如需添加另一个已通过健康检查的目标,请点击添加目标。
可选:如需在不进行健康检查的情况下允许 IPv4 地址,请执行以下操作:
- 选择允许不进行健康检查的 IPv4 地址。
- 在 IPv4 地址部分,输入 IPv4 地址。
可选:如需添加另一组 WRR 政策路由数据,请点击添加路由数据。
点击下一步。
地理定位
对于地理围栏,选择已停用或已启用。
如果启用地理围栏,则系统会使流量仅流向特定的地理位置,即使该地理位置中的所有端点运行状况都不佳也是如此。
在来源区域中,选择一个有效的 Trusted Cloud来源区域。
在 IPv4 健康检查目标部分中,执行以下操作:
- 对于项目,选择转发规则所在的项目。
对于转发规则,选择一个转发规则。
该转发规则会指定内部 IP 地址、端口和以下目标之一:
- 区域性后端服务
- 全球或区域目标 HTTPS 代理
- 区域级目标 TCP 代理
点击完成。
可选:如需添加另一个已通过健康检查的目标,请点击添加目标。
可选:如需在不进行健康检查的情况下允许 IPv4 地址,请执行以下操作:
- 选择允许不进行健康检查的 IPv4 地址。
- 在 IPv4 地址部分,输入 IPv4 地址。
可选:如需添加另一组地理定位政策路由数据,请点击添加路由数据。
点击下一步。
故障切换
在主要健康检查目标部分中,执行以下操作:
- 对于项目,选择转发规则所在的项目。
对于转发规则,选择一个转发规则。
该转发规则会指定内部 IP 地址、端口和以下目标之一:
- 区域性后端服务
- 全球或区域目标 HTTPS 代理
- 区域级目标 TCP 代理
在备份地理定位政策部分中,执行以下操作:
- 对于地理围栏,请选择已停用或已启用。如果启用地理围栏,则系统会使流量仅流向特定的地理位置,即使该地理位置中的所有端点运行状况都不佳也是如此。
- 在来源区域中,选择一个有效的 Trusted Cloud来源区域。
在 IPv4 健康检查目标部分中,执行以下操作:
- 对于项目,选择转发规则所在的项目。
对于转发规则,选择一个转发规则。
转发规则指定了以下选项之一:
- 内部 IP 地址、端口和区域后端服务
- HTTP(S) 代理
- TCP 代理
当所有主要 IP 地址的健康状况都不佳时,系统将根据备份地理位置政策自动处理流量。
点击完成。
可选:如需添加另一个已通过健康检查的目标,请点击添加目标。
可选:如需在不进行健康检查的情况下允许 IPv4 地址,请执行以下操作:
- 选择允许不进行健康检查的 IPv4 地址。
- 在 IPv4 地址部分,输入 IPv4 地址。
可选:如需添加另一组备份地理定位政策路由数据,请点击添加路由数据。
在微流量 (%)字段中,输入发送到故障切换目标的流量百分比,而不考虑主要目标的健康检查状态。
点击下一步。
检查并创建
- 点击审核。
- 使用路由政策配置查看 Cloud DNS 记录集。
- 点击创建。
gcloud
对于资源记录集,您可以设置路由政策 (routingPolicy
) 或 DNS 数据 (rrdatas
),但不能同时设置两者。如需在路由政策和 DNS 数据之间切换,请更新资源记录集。例如,如需将包含 DNS 数据 (rrdatas
) 的资源记录集更改为包含路由政策 (routingPolicy
),请删除 rrdatas
并将 routingPolicy
添加到同一资源记录集。
如需为专用区域创建 DNS 路由政策,请按以下步骤操作。
运行 gcloud dns record-sets create
命令:
WRR
gcloud dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=WRR \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-health-checking
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如service.example.com
。TTL
:解析器缓存ResourceRecordSet
的 TTL(以秒为单位),例如30
。RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
如需查看支持的记录类型列表,请参阅DNS 路由政策支持的记录类型。MANAGED_ZONE
:与此ResourceRecordSet
关联的托管区域,例如service-zone
。此ResourceRecordSet
的名称必须以该托管区域的 DNS 名称作为后缀。ROUTING_POLICY_DATA
:输入格式为${weight_percent}:${rrdatas}
的分号分隔列表,例如.8=203.0.113.1;.2=198.51.100.1
。将权重指定为非负小数。路由到目标的流量比率是根据各个权重与所有权重之和的比率计算的。 转发规则名称是可接受的值,因此会启用健康检查。--enable-health-checking
:用于启用健康检查的标志。使用此标志时,您必须在--routing-policy-data
字段中提供转发规则名称,而不是 IP 地址。
地理定位
gcloud dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-health-checking
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如service.example.com
。TTL
:解析器缓存ResourceRecordSet
的 TTL(以秒为单位),例如30
。RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
如需查看支持的记录类型列表,请参阅DNS 路由政策支持的记录类型。MANAGED_ZONE
:与此ResourceRecordSet
关联的托管区域,例如service-zone
。此ResourceRecordSet
的名称必须以该托管区域的 DNS 名称作为后缀。ROUTING_POLICY_DATA
:输入格式为${region}=${IP_address}
的分号分隔列表,例如asia-east1=198.51.100.1;us-central1=203.0.113.1
。您可以通过添加以英文逗号分隔的 IP 地址来为单个区域指定多个 IP 地址。转发规则名称是可接受的值,因此会启用健康检查。--enable-health-checking
:用于启用健康检查的标志。使用此标志时,您必须在--routing-policy-data
字段中提供转发规则名称,而不是 IP 地址。
使用地理围栏进行地理定位
gcloud dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-geo-fencing \ --enable-health-checking
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如service.example.com
。TTL
:解析器缓存ResourceRecordSet
的 TTL(以秒为单位),例如30
。RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
如需查看支持的记录类型列表,请参阅DNS 路由政策支持的记录类型。MANAGED_ZONE
:与此ResourceRecordSet
关联的托管区域,例如service-zone
。此ResourceRecordSet
的名称必须以该托管区域的 DNS 名称作为后缀。ROUTING_POLICY_DATA
:输入格式为${region}=${IP_address}
的分号分隔列表,例如asia-east1=198.51.100.1;us-central1=203.0.113.1
。您可以通过添加以英文逗号分隔的 IP 地址来为单个区域指定多个 IP 地址。转发规则名称是可接受的值,因此会启用健康检查。--enable-geo-fencing
:对于GEO
路由政策,这确定了地区中的所有端点健康状况不佳时,流量是否应跨地区进行故障切换。设置后,Cloud DNS 始终会将查询定向到最近的地区,即使该地区中的所有端点健康状况都不佳。使用--no-enable-geo-fencing
停用地理围栏。如果未设置,则当某个区域中的所有端点健康状况不佳时,Cloud DNS 会将查询定向到下一个最近区域。默认为false
。--enable-health-checking
:用于启用健康检查的标志。使用此标志时,您必须在--routing-policy-data
字段中提供转发规则名称,而不是 IP 地址。
故障切换
gcloud dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=FAILOVER \ --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \ --routing-policy-backup-data-type=ROUTING_POLICY_BACKUP_DATA_TYPE \ --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \ --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \ --enable-geo-fencing \ --enable-health-checking
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如service.example.com
。TTL
:解析器缓存ResourceRecordSet
的 TTL(以秒为单位),例如30
。RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
如需查看支持的记录类型列表,请参阅DNS 路由政策支持的记录类型。MANAGED_ZONE
:与此ResourceRecordSet
关联的托管区域,例如service-zone
。此ResourceRecordSet
的名称必须以该托管区域的 DNS 名称作为后缀。ROUTING_POLICY_PRIMARY_DATA
:用于FAILOVER
路由政策的主要目标。此目标必须是对一个或多个转发规则的引用,例如forwarding-rule-1
。只要这些转发规则中至少有一个健康状况良好,系统就会使用所有健康状况良好的转发规则的 IP 地址来响应此名称的查询。ROUTING_POLICY_BACKUP_DATA_TYPE
:对于FAILOVER
路由政策,是备份数据使用的路由政策的类型。此设置必须是GEO
。ROUTING_POLICY_BACKUP_DATA
:用于FAILOVER
路由政策的备份目标。当--routing-policy-primary-data
中指定的所有转发规则健康状况不佳时,会用到这些目标。Cloud DNS 仅支持基于地理位置的备份目标。如果--routing-policy-type = 'GEO'
(例如asia-east1=forwarding-rule-2
),此字段的格式与--routing-policy-data
的格式匹配。BACKUP_DATA_TRICKLE_RATIO
:要发送到备份目标的流量的比率,即使主实例健康状况良好。该比率必须介于 0 和 1 之间,例如0.1
。默认值设为0
。--enable-geo-fencing
:对于GEO
路由政策,这确定了地区中的所有端点健康状况不佳时,流量是否应跨地区进行故障切换。设置后,Cloud DNS 始终会将查询定向到最近的地区,即使该地区中的所有端点健康状况都不佳。使用--no-enable-geo-fencing
停用地理围栏。如果未设置,则当某个区域中的所有端点健康状况不佳时,Cloud DNS 会将查询定向到下一个最近区域。默认为false
。--enable-health-checking
:用于启用健康检查的标志。使用此标志时,您必须在--routing-policy-data
字段中提供转发规则名称,而不是 IP 地址。
API
使用 resourceRecordSets.create
方法。
WRR
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "wrr": { "items": [ { "weight": WEIGHT, "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT_ID" "region": "REGION" } ] } }, { "weight": WEIGHT, "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT_ID" "region": "REGION" } ] } }, ] } } }
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:与此ResourceRecordSet
关联的代管式区域,例如service-zone
;此ResourceRecordSet
的名称必须以该代管式区域的 DNS 名称作为后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如service.example.com
RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
TTL
:解析器缓存此ResourceRecordSet
的 TTL(以秒为单位),例如30
WEIGHT
:对于WRR
政策,采用英文分号分隔的列表(格式为${weight_percent}=${rrdatas}
),例如.8=10.128.1.1;.2=10.130.1.1
;将权重指定为任何非负小数。注意:必须将权重指定为非负数。路由到目标的流量比率是根据各个权重与所有权重之和的比率计算的。LOAD_BALANCER_TYPE
:负载均衡器的类型,例如regionalL4ilb
、globalL7ilb
或regionalL7ilb
。此设置是可选的。IP_ADDRESS
:转发规则传送的 IP 地址PORT_NUMBER
:端口号IP_PROTOCOL
:定义用于健康检查的协议。有效选项为tcp
和udp
NETWORK_URL
:此转发规则适用的网络网址REGION
:您在其中创建了转发规则的区域
地理定位
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "geo": { "items": [ { "location": "LOCATION", "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT_ID" "region": "REGION" } ] } }, { "location": "LOCATION", "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCING_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT_ID" "region": "REGION" } ] } }, } ] } } }
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:与此ResourceRecordSet
关联的代管式区域,例如service-zone
;此ResourceRecordSet
的名称必须以该代管式区域的 DNS 名称作为后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如service.example.com
RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
TTL
:解析器缓存此ResourceRecordSet
的 TTL(以秒为单位),例如30
LOCATION
:对于GEO
政策,您需要为其创建政策的地理位置,例如asia-east1
LOAD_BALANCER_TYPE
:负载均衡器的类型,例如regionalL4ilb
、globalL7ilb
或regionalL7ilb
。此设置是可选的。IP_ADDRESS
:转发规则传送的 IP 地址PORT_NUMBER
:内部负载均衡器的端口号IP_PROTOCOL
:定义用于健康检查的协议。有效选项为tcp
和udp
NETWORK_URL
:此转发规则适用的网络网址REGION
:您在其中创建了转发规则的地区
故障切换
在故障切换选项中,Cloud DNS 仅支持 GEO
政策。
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "primaryBackup": { "trickleTraffic": TRICKLE_TRAFFIC, "primaryTargets": { "internalLoadBalancers": [ { "ipAddress": "IP_ADDRESS" "ipProtocol": "IP_PROTOCOL" "loadBalancerType": "LOAD_BALANCER_TYPE" "networkUrl": "NETWORK_URL" "port": "PORT_NUMBER" "project": "PROJECT_ID" "region": "REGION" } ] }, "backupGeoTargets": { "enableFencing": ENABLE_FENCING, "items": [ { "location": "LOCATION", "rrdatas": [ "RRDATA" ] }, { "location": "LOCATION", "rrdatas": [ "RRDATA" ] } ] } }, } }
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:与此ResourceRecordSet
关联的代管式区域,例如service-zone
;此ResourceRecordSet
的名称必须以该代管式区域的 DNS 名称作为后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如service.example.com
RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
TTL
:解析器缓存此ResourceRecordSet
的 TTL(以秒为单位),例如30
TRICKLE_TRAFFIC
:发送到备份目标的流量的比率(即使主实例健康状况良好);该比率必须介于 0 和 1 之间,例如0.1
IP_ADDRESS
:转发规则传送的 IP 地址PORT_NUMBER
:端口号IP_PROTOCOL
:定义用于健康检查的协议。有效选项为tcp
和udp
NETWORK_URL
:此转发规则适用的网络网址PORT_NUMBER
:内部负载均衡器的端口号REGION
:您在其中创建了转发规则的地区ENABLE_FENCING
:对于GEO
路由政策,这确定了地区中的所有端点健康状况不佳时,流量是否应跨地区进行故障切换。设置后,Cloud DNS 始终会将查询定向到最近的地区,即使该地区中的所有端点健康状况都不佳。如果未设置,则当某个区域中的所有端点健康状况不佳时,Cloud DNS 会将查询定向到下一个最近区域。默认为false
。LOCATION
:对于GEO
政策,您需要为其创建政策的地理位置,例如asia-east1
WEIGHT
:对于WRR
政策,采用英文分号分隔的列表(格式为${weight_percent}=${rrdatas}
),例如.8=10.128.1.1;.2=10.130.1.1
;将权重指定为任何非负小数。RRDATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.1
203.0.113.1
...
更新 DNS 路由政策
如需更新资源记录集的路由政策,请按以下步骤操作。
控制台
在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。
点击要为其更新资源记录集的路由政策的区域。
在区域详情页面上,点击您要更新的资源记录集旁边的edit修改。
完成更新后,点击保存。
gcloud
运行 gcloud dns record-sets update
命令:
WRR
gcloud dns record-sets update RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=WRR \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-health-checking
地理定位
gcloud dns record-sets update RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-health-checking
使用地理围栏进行地理定位
gcloud dns record-sets update RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-geo-fencing --enable-health-checking
故障切换
gcloud dns record-sets update RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=FAILOVER \ --enable-geo-fencing \ --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \ --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \ --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \ --enable-health-checking
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如service.example.com
TTL
:解析器缓存此ResourceRecordSet
的 TTL(以秒为单位),例如30
RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
如需查看受支持的记录类型的列表,请参阅选择资源记录类型。
MANAGED_ZONE
:与此ResourceRecordSet
关联的代管式区域,例如service-zone
。此ResourceRecordSet
的名称必须以该代管式区域的 DNS 名称作为后缀ROUTING_POLICY_TYPE
:路由政策的类型对于加权轮循,输入
WRR
;对于地理位置,输入GEO
;对于故障切换政策,输入FAILOVER
。在政策具有选定类型后,您将无法修改此字段;您只能删除现有政策并添加具有其他类型的新政策。ROUTING_POLICY_DATA
:路由政策数据- 对于
--routing-policy-type=WRR
,请输入格式为${weight_percent}:${rrdatas}
的分号分隔列表,例如.8=203.0.113.1;.2=198.51.100.1
。将权重指定为非负小数。路由到目标的流量比率是根据各个权重与所有权重之和的比率计算的。 转发规则名称是可接受的值,因此会启用健康检查。 - 对于
--routing-policy-type=GEO
,请输入格式为${region}=${IP_address}
的分号分隔列表,例如asia-east1=198.51.100.1;us-central1=203.0.113.1
。您可以通过添加以英文逗号分隔的 IP 地址来为单个区域指定多个 IP 地址。转发规则名称是可接受的值,因此会启用健康检查。 对于
--routing-policy-type=FAILOVER
,请以${region}=${Forwarding rule name}
格式输入您创建的转发规则的名称。
- 对于
--enable-geo-fencing
:对于GEO
路由政策,这确定了区域中的所有端点健康状况不佳时,流量是否应跨区域进行故障切换。设置后,Cloud DNS 始终会将查询定向到最近的地区,即使该地区中的所有端点健康状况都不佳。使用--no-enable-geo-fencing
停用地理围栏。如果未设置,则当某个区域中的所有端点健康状况不佳时,Cloud DNS 会将查询定向到下一个最近区域。此字段的默认设置为false
。ROUTING_POLICY_PRIMARY_DATA
:用于FAILOVER
路由政策的主要目标。此目标必须是对一个或多个转发规则的引用,例如forwarding-rule-1
。只要这些转发规则中至少有一个健康状况良好,系统就会使用所有健康状况良好的转发规则的 IP 地址来响应此名称的查询。ROUTING_POLICY_BACKUP_DATA
:用于FAILOVER
路由政策的备份目标。当--routing-policy-primary-data
中指定的所有转发规则健康状况不佳时,会用到这些目标。Cloud DNS 仅支持基于地理位置的备份目标。如果--routing-policy-type = 'GEO'
(例如asia-east1=forwarding-rule-2
),此字段的格式与--routing-policy-data
的格式匹配。BACKUP_DATA_TRICKLE_RATIO
:即使主目标位置健康状况良好仍需发送到备份目标位置的流量的比率。该比率必须介于 0 和 1 之间,例如0.1
。默认值设为 0。--enable-health-checking
:启用以 rrdata 形式提供给--routing-policy-data
的转发规则的健康检查。
API
使用 resourceRecordSets.patch
方法。 只能指定 rrset.rrdatas
或 rrset.routingPolicy
中的一项。如果指定 routingPolicy
,则必须完整指定新的 routingPolicy
字段。
WRR
对于 WRR
政策,请使用以下方法:
PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME.", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "wrrPolicy": { "item": [ { "weight": WEIGHT, "rrdatas": ["RRDATA"] }, { "weight": WEIGHT, "rrdatas": ["RRDATA"] } ], } } }
地理定位
请使用以下方法:
PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "geo": { "items": [ { "location": "LOCATION", "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT" "region": "REGION" } ] } }, { "location": "LOCATION", "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCING_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT" "region": "REGION" } ] } }, } ] } } }
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:与此ResourceRecordSet
关联的代管式区域,例如service-zone
;此ResourceRecordSet
的名称必须以该代管式区域的 DNS 名称作为后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如service.example.com
RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
TTL
:解析器缓存此ResourceRecordSet
的 TTL(以秒为单位),例如30
TRICKLE_TRAFFIC
:发送到备份目标的流量的比率(即使主实例健康状况良好);该比率必须介于 0 和 1 之间,例如0.1
ENABLE_FENCING
:对于GEO
路由政策,这确定了地区中的所有端点健康状况不佳时,流量是否应跨地区进行故障切换。设置后,Cloud DNS 始终会将查询定向到最近的地区,即使该地区中的所有端点健康状况都不佳。如果未设置,则当某个区域中的所有端点健康状况不佳时,Cloud DNS 会将查询定向到下一个最近区域。默认为false
。LOCATION
:对于GEO
政策,您需要为其更新政策的地理位置,例如asia-east1
WEIGHT
:对于WRR
政策,采用英文分号分隔的列表(格式为${weight_percent}=${rrdatas}
),例如.8=10.128.1.1;.2=10.130.1.1
;将权重指定为任何非负小数。RRDATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.1
203.0.113.1
...LOAD_BALANCER_TYPE
:负载均衡器的类型,例如regionalL4ilb
、globalL7ilb
或regionalL7ilb
。此设置是可选的。IP_ADDRESS
:转发规则传送的 IP 地址PORT_NUMBER
:端口号IP_PROTOCOL
:定义用于健康检查的协议。有效选项为tcp
和udp
NETWORK_URL
:此转发规则适用的网络网址REGION
:您在其中创建了转发规则的地区
删除 DNS 路由政策
如需删除路由政策,您必须删除包含路由政策的资源记录集。请按以下步骤操作。
控制台
在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。
点击要为其删除资源记录集的区域。
在区域详情页面上,选中要删除的资源记录集的 DNS 名称旁边的复选框。
点击删除记录集。
gcloud
运行 gcloud dns record-sets delete
命令:
gcloud dns record-sets delete RRSET_NAME \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如service.example.com
RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
如需查看受支持的记录类型的列表,请参阅选择资源记录类型。
MANAGED_ZONE
:与此ResourceRecordSet
关联的代管式区域,例如service-zone
;此ResourceRecordSet
的名称必须以该代管式区域的 DNS 名称作为后缀
API
使用 resourceRecordSets.delete
方法:
DELETE https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
请替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:与此ResourceRecordSet
关联的代管式区域,例如my-zone-name
;此ResourceRecordSet
的名称必须以该代管式区域的 DNS 名称作为后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如test.example.com
RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
后续步骤
- 如需使用代管式区域,请参阅创建、修改和删除区域。
- 如需了解您在使用 Cloud DNS 时可能会遇到的常见问题的解决方案,请参阅问题排查。
- 如需大致了解 Cloud DNS,请参阅 Cloud DNS 概览。