使用工具访问区域

本文档介绍了在 Google Distributed Cloud (GDC) 网闸隔离配置环境中跨多个可用区管理资源的方法。无论是 GDC 控制台、gdcloud CLI、API 还是 Terraform,每个平台都提供了相应的机制,以便在指定可用区中管理可用区级资源,或在全球范围内管理支持全球预配的资源。在多可用区环境中,您必须管理可用区级和全球级资源,以实现高可用性。

本文档适用于以下受众群体:

  • 负责开发灾难恢复工作流的平台管理员,例如 IT 管理员。
  • 应用运营商,例如应用开发者,负责在 GDC Universe 中开发和维护应用。

如需了解详情,请参阅适用于 GDC 网闸隔离配置文档的受众群体。

准备工作

在跨可用区管理资源之前,您必须根据首选界面完成以下前提条件:

切换到全局上下文

如需管理跨所有可用区或支持全球预配的资源,请切换到全球上下文。

控制台

全局上下文是通过导航到全局网址来设置的,该网址遵循以下语法:

  https://console.ORG_NAME.SUFFIX

前往全局网址,以全局视角查看跨可用区的资源。

gdcloud

在初始化 gdcloud CLI 默认配置时,使用 organization_console_url 参数设置全局网址。除非您已明确设置可用区级上下文,否则系统会假定为全球上下文。

如需还原为全球网址,请完成以下步骤:

  1. 将默认组织控制台网址设置为全球网址:

    gdcloud config set core/organization_console_url GLOBAL_URL
    
  2. 登录全局上下文:

    gdcloud auth login --login-config-cert=CA_CERT
    

    将 CA_CERT 替换为安装在系统受信任证书存储区中的证书授权机构 (CA) 证书。如需了解详情,请参阅 Web TLS 证书配置。

API

在管理或预配全局 KRM API 自定义资源时,您必须在 kubectl 命令中明确定义全局 Management API 服务器的 kubeconfig 文件。例如:

  kubectl apply -f resource.yaml --kubeconfig GLOBAL_API_SERVER

您可以通过将 kubectl 上下文设置为全局 API 服务器,自动为 API 调用设置全局上下文。如需了解详情,请参阅全球 API 服务器资源。

Terraform

您必须在 Terraform 模块中明确定义全局 Management API 服务器并对其进行初始化:

  1. 在模块内的 Terraform 文件(例如 main.tf 文件)中为全局管理 API 服务器定义 kubeconfig 文件:

    provider "kubernetes" {
      config_path = "GLOBAL_API_SERVER"
    }
    

    如需详细了解如何获取全球 API 服务器的 kubeconfig 文件,请参阅全球 API 服务器资源。

  2. 为 Terraform 模块应用新的全局上下文:

    terraform apply
    

所有后续 Terraform 操作都会在全局上下文中调用。

切换到可用区级上下文

如需管理托管在特定可用区中的资源,请切换到可用区级上下文。

控制台

通过前往可用区级网址来设置可用区级上下文,该网址遵循以下语法:

  https://console.ORG_NAME.ZONE.SUFFIX

前往可用区级网址,查看托管在单个可用区中的资源。

许多资源页面还提供可用区范围选择器,让您可以在 GDC 控制台页面中切换可用区上下文。

选择一个可用区,即可显示该可用区中的资源。

从提供的机制中选择可用区级上下文,以查看和管理可用区级资源。

gdcloud

由于使用 gdcloud CLI 时默认配置了全局上下文,因此您必须明确设置可用区级上下文才能操作可用区级资源。您可以通过以下三种方式之一执行此操作,具体取决于您首选的工作流:

  • 设置默认可用区配置:如果您主要在可用区级上下文中工作,建议您进行此设置。
  • 设置可用区级网址配置:如果您计划频繁在全局上下文和可用区级上下文之间切换,建议使用此方法。
  • 应用 --zone 标志:如果您希望灵活地直接应用可用区上下文,而无需更新任何 gdcloud CLI 配置,则建议使用此方法。

请完成以下步骤,以应用其中一种方法:

设置默认可用区配置

  • 为 gdcloud CLI 实例设置可用区配置:

    gdcloud config set core/zone ZONE_NAME
    

    将 ZONE_NAME 替换为要为上下文设置的可用区的名称。如需了解详情,请参阅列出 Universe 中的可用区。

设置可用区级网址配置

  1. 将默认组织控制台网址设置为可用区级网址:

      gdcloud config set core/organization_console_url ZONAL_URL
    
  2. 登录该可用区:

      gdcloud auth login --login-config-cert=CA_CERT
    

    将 CA_CERT 替换为安装在系统受信任证书存储区中的证书授权机构 (CA) 证书。如需了解详情,请参阅 Web TLS 证书配置。

应用 --zone 标志

  • 运行 gdcloud CLI 命令,并添加 --zone 标志。 例如:

    gdcloud auth print-identity-token --zone=ZONE_NAME
    

    您可以为支持 --zone 标志的任何命令设置该标志。如需检查您的特定命令是否提供 --zone 标志,请参阅 gdcloud CLI 参考文档。

    您可以在任何全局或可用区上下文中使用 --zone 标志。

API

在管理或预配可用区级 KRM API 自定义资源时,您必须在 kubectl 命令中明确定义可用区级 Management API 服务器的 kubeconfig 文件。例如:

  kubectl apply -f resource.yaml --kubeconfig ZONAL_API_SERVER

您可以通过将 kubectl 上下文设置为可用区的 Management API 服务器,自动为 API 调用设置可用区上下文。如需了解详情,请参阅可用区级 Management API 服务器资源。

Terraform

您必须在 Terraform 模块中明确定义可用区级 Management API 服务器并对其进行初始化:

  1. 在模块内的 Terraform 文件(例如 main.tf 文件)中为可用区级 Management API 服务器定义 kubeconfig 文件:

    provider "kubernetes" {
      config_path = "ZONAL_API_SERVER"
    }
    

    如需详细了解如何获取可用区 Management API 服务器的 kubeconfig 文件,请参阅可用区 Management API 服务器资源。

  2. 为 Terraform 模块应用新的全局上下文:

    terraform apply
    

所有后续 Terraform 操作都会在您配置的可用区上下文中调用。

列出 Universe 中的可用区

如需跨多个可用区管理可用区级资源,您必须了解您的 Universe 中的所有可用区。

  • 列出 Universe 中的所有可用区:

    gdcloud zones list
    

    输出类似于以下内容:

    METADATA.NAME
    us-east1-a
    us-east1-b
    us-east1-c
    

后续步骤