使用测试网域

了解如何使用通配符 DNS 记录为集群配置网域。您必须配置网域以允许您的服务接受请求并允许访问,以进行测试。

默认情况下,Cloud Run for Anthos on Google Cloud 集群使用 example.com 基本网域,并且不允许向服务发出请求。例如,向 http://{service}.{namespace}.example.com 发送请求会失败。

要使集群中的服务接受请求,您必须将网域配置为使用以下之一:

  • 免费 DNS 通配符服务
  • 您拥有的自定义网域。如需了解详情,请参阅映射自定义网域

由于请求可靠性方面的问题,DNS 通配符记录应仅用于测试。详细了解通配符 DNS 记录

准备工作

确保已安装并配置了 Cloud SDK 和 kubectl

选择通配符 DNS 服务或自定义网域

在进行开发和测试时,您可以更改默认网域以使用通配符 DNS 测试网站。例如:

如果您已经拥有用于测试的网域,或者不介意购买用于测试的网域,则可以将默认网域设置为自己的网域。自定义网域可以提供更高的测试可靠性。

获取外部 IP 地址

您必须获取为 Istio Ingress 控制器创建的负载平衡器服务的外部 IP 地址,然后再继续下一步。

控制台

要从 Google Cloud Console 获取负载平衡器的外部 IP 地址,请执行以下操作:

  1. 转到 Cloud Console 中的 GKE 页面:
    转到 GKE 页面

  2. 点击服务和 Ingress (Services and ingress)。

  3. 确定集群的 Istio Ingress 控制器服务。服务的类型外部负载平衡器。下表按集群版本显示服务名称:

    集群版本 ISTIO-GATEWAY
    1.15.3-gke.19 及更高版本
    1.14.3-gke.12 及更高版本
    1.13.10-gke.8 及更高版本
    istio-ingress
    所有其他版本 istio-ingressgateway
  4. 找到集群的 Istio Ingress 控制器后,复制其端点。这将是没有端口号的 IP 地址。例如,您可能会看到 00.000.000.000:11 列为端点,但只需复制 00.000.000.000

命令行

如需获取 Istio 入站网关的外部 IP,请执行以下操作:
kubectl get svc istio-ingress -n gke-system
生成的输出类似如下所示:
NAME            TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
istio-ingress   LoadBalancer   XX.XX.XXX.XX   pending      80:32380/TCP,443:32390/TCP,32400:32400/TCP
负载平衡器的 EXTERNAL-IP 是您必须使用的 IP 地址。

如果使用通配符服务,在修改集群配置时将需要外部 IP 地址。如果使用自己的自定义网域,则需要使用外部 IP 地址在域名注册商处创建或更新记录。

配置集群的网域

Cloud Run for Anthos 使用 config-domain ConfigMap 为部署到集群的所有服务定义基础网域。用于修改此配置的命令将取决于您使用的是通配符 DNS 服务还是您自己的自定义网域。如果以后您想更新默认集群网域,可以使用不同的值重复这些步骤。

使用 DNS 通配符服务进行测试

以下步骤使用 xip.io 来展示如何将网域配置为使用 DNS 通配符服务,但您可以将其替换为您选择的任何服务。

控制台

如需在 Cloud Console 中将默认基本网域从 example.com 更改为某个 DNS 通配符服务(例如 xip.io),请执行以下操作:

  1. 转到 Google Cloud Console 中的 Cloud Run for Anthos 网域映射页面:
    转到“网域映射”页面

  2. 选择添加映射 > 添加集群默认网域

  3. 选中“Apply this domain mapping to all Cloud Run for Anthos services deployed to this cluster”旁边的复选框。

  4. 从下拉菜单中选择您的集群。

  5. 网域字段中,输入 [EXTERNAL-IP].xip.io。您需要将其中的:

    • [EXTERNAL-IP] 替换为负载平衡器的外部 IP 地址

    • xip.io 替换为您使用的通配符 DNS 网站。

命令行

如需将默认基本网域从 example.com 更改为某个 DNS 通配符网站(例如 xip.io),请使用以下命令:

kubectl patch configmap config-domain --namespace knative-serving --patch \
  '{"data": {"example.com": null, "[EXTERNAL-IP].xip.io": ""}}'

替换

  • [EXTERNAL-IP] 替换为负载平衡器的外部 IP 地址
  • xip.io 替换为您使用的通配符 DNS 网站。

您的服务现在可通过 {service-name}.{namespace}.{[EXTERNAL-IP].xip.io} 访问。

使用自定义网域进行测试

如果您希望使用自己的自定义网域进行测试,以下步骤将帮助您进行设置。

首先,更新集群的 ConfigMap 以指向您的网域:

控制台

  1. 转到 Google Cloud Console 中的 Cloud Run for Anthos 网域映射页面:
    转到“网域映射”页面

  2. 选择添加映射 > 添加集群默认网域

  3. 选中“Apply this domain mapping to all Cloud Run for Anthos services deployed to this cluster”旁边的复选框。

  4. 从下拉菜单中选择您的集群。

  5. 网域字段中,输入您的域名。例如 example.com

命令行

使用以下命令指定自定义网域:

kubectl patch configmap config-domain --namespace knative-serving --patch \
'{"data": {"example.com": null, "[DOMAIN]": ""}}'

[DOMAIN] 替换为您自己的网域(例如 mydomain.com)。上述命令会从 ConfigMap 中移除 example.com 并将 mydomain.com 添加为默认基本网域。如果要再次将此网域更改为其他某个网域,可以重复此命令。

剩余步骤必须在您的域名注册商的网站上执行:

  1. 访问网域注册商并登录您的帐号,然后打开 DNS 配置页面。

  2. 找到网域配置页面的主机记录部分,然后添加所需的资源记录。

    1. 要通过 DNS 提供商将 DNS 记录添加帐号,请按如下所述操作:

      • 选择 A 记录类型。
      • 提供通配符 *,如以下示例所示:

        dns 通配符

    2. 保存您在网域帐号的 DNS 配置页面中所做的更改。在大多数情况下,这些更改只需几分钟即可生效,但在某些情况下,可能需要几个小时,具体取决于注册商以及网域的任何先前 DNS 记录的存留时间 (TTL)

更新 DNS 记录并将其指向集群后,您的服务可通过 {service-name}.{namespace}.{your-domain} 访问。