在多可用区宇宙中,您必须管理可用区级资源和全球资源,以实现高可用性。无论是 GDC 控制台、gdcloud CLI、API 还是 Terraform,每种界面都提供了相应的机制来管理资源:对于地区性资源,在指定地区中管理;对于支持全球调配的资源,在全球范围内管理。
本文档重点介绍了如何跨多个可用区管理资源。
切换到全局上下文
切换到全局上下文,以全局方式管理资源。
GDC 控制台
全局上下文是通过访问全局网址来设置的,该网址遵循以下语法:
https://console.ORG_NAME.SUFFIX
前往全局网址,以全局视角查看各个可用区中的资源。
gdcloud
在初始化 gdcloud CLI 默认配置时,使用 organization_console_url
参数设置全局网址。除非您已明确设置可用区级上下文,否则系统会假定为全局上下文。
如需恢复为全球网址,请完成以下步骤:
将默认组织控制台网址设置为全局网址:
gdcloud config set core/organization_console_url GLOBAL_URL
登录全局上下文:
gdcloud auth login --login-config-cert=CA_CERT
将
CA_CERT
替换为安装在系统受信任证书存储区中的证书授权机构 (CA) 证书。如需了解详情,请参阅网页 TLS 证书配置。
API
在管理或预配全局 KRM API 自定义资源时,您必须在 kubectl 命令中明确定义全局管理 API 服务器的 kubeconfig 文件。例如:
kubectl apply -f resource.yaml --kubeconfig GLOBAL_API_SERVER
您可以通过将 kubectl 上下文设置为全局 API 服务器,自动为 API 调用设置全局上下文。如需了解详情,请参阅登录。
Terraform
您必须在 Terraform 模块中明确定义全局管理 API 服务器并对其进行初始化:
在模块内的 Terraform 文件(例如
main.tf
文件)中,为全局管理 API 服务器定义 kubeconfig 文件:provider "kubernetes" { config_path = "GLOBAL_API_SERVER" }
如需详细了解如何获取全局管理 API 服务器的 kubeconfig 文件,请参阅登录。
为 Terraform 模块应用新的全局上下文:
terraform apply
所有后续 Terraform 操作都在全局上下文中调用。
切换到可用区级上下文
通过切换到可用区级上下文来管理特定可用区的资源。
GDC 控制台
通过前往可用区网址(语法如下)设置可用区上下文:
https://console.ORG_NAME.ZONE.SUFFIX
前往可用区级网址,查看托管在单个可用区内的资源。
许多资源页面还提供地区范围选择器,让您可以在 GDC 控制台页面中切换地区上下文。
通过提供的机制选择可用区上下文,以查看和管理可用区资源。
gdcloud
由于使用 gdcloud CLI 时默认配置的是全局上下文,因此您必须明确设置可用区级上下文才能操作可用区级资源。您可以根据自己的偏好工作流程,通过以下三种方式之一执行此操作:
- 设置默认可用区配置:如果您主要在可用区级环境中工作,建议采用此方法。
- 设置可用区级网址配置:如果您计划经常在全局和可用区级上下文之间切换,建议您这样做。
- 应用
--zone
标志:如果您希望能够灵活地直接应用可用区上下文,而无需进行任何 gdcloud CLI 配置更新,建议采用此方法。
如需应用其中一种方法,请完成以下步骤:
为您的 gdcloud CLI 实例设置可用区配置:
gdcloud config set core/zone ZONE_NAME
将
ZONE_NAME
替换为要为上下文设置的可用区的名称。如需了解如何查找可用区名称,请参阅列出世界中的可用区。
将默认组织控制台网址设置为区域网址:
gdcloud config set core/organization_console_url ZONAL_URL
登录该区域:
gdcloud auth login --login-config-cert=CA_CERT
将
CA_CERT
替换为安装在系统受信任证书存储区中的证书授权机构 (CA) 证书。如需了解详情,请参阅网页 TLS 证书配置。
运行您的 gdcloud CLI 命令,并添加
--zone
标志。例如:gdcloud auth print-identity-token --zone=ZONE_NAME
您可以为支持
--zone
标志的任何命令设置该标志。查看特定命令的 gdcloud CLI 参考文档,确认--zone
标志是否可用。您可以在任何全局或区域级环境中运行
--zone
标志。
API
在管理或预配区域级 KRM API 自定义资源时,您必须在 kubectl 命令中明确定义区域级管理 API 服务器的 kubeconfig 文件。例如:
kubectl apply -f resource.yaml --kubeconfig ZONAL_API_SERVER
您可以通过将 kubectl 上下文设置为相应地区的管理 API 服务器,自动为 API 调用设置地区级上下文。如需了解详情,请参阅登录。
Terraform
您必须在 Terraform 模块中明确定义区域管理 API 服务器并对其进行初始化:
在模块内的 Terraform 文件(例如
main.tf
文件)中,为区域管理 API 服务器定义 kubeconfig 文件:provider "kubernetes" { config_path = "ZONAL_API_SERVER" }
如需详细了解如何获取区域管理 API 服务器的 kubeconfig 文件,请参阅登录。
为 Terraform 模块应用新的全局上下文:
terraform apply
所有后续 Terraform 操作都是在您配置的可用区上下文中调用的。
列出某个宇宙中的可用区
如需列出您的世界中的所有时区,请运行以下命令:
gdcloud zones list
输出类似于以下内容:
METADATA.NAME
us-east1-a
us-east1-b
us-east1-c
后续步骤
- 了解 GDC 世界中提供的全球和可用区 API 服务器。
- 请参阅高可用性指南,确保您的应用能够应对本地可用区故障。
- 如需查看可用的 gdcloud CLI 命令的完整列表,请访问 gdcloud CLI 参考页面。
- 如需配置 Terraform,请参阅 Terraform 概览。