跨可用區管理資源

本文說明如何在 Google Distributed Cloud (GDC) 實體隔離環境中,管理多個可用區的資源。無論是 GDC 控制台、gdcloud CLI、API 或 Terraform,每個介面都會提供適當的機制,讓您在指定區域中管理區域資源,或在全球管理支援全球佈建的資源。在多區域的環境中,您必須管理區域和全域資源,才能確保高可用性。

本文適用於平台管理員群組中的 IT 管理員,負責開發災難復原工作流程;以及應用程式運算子群組中的應用程式開發人員,負責在 GDC 領域中開發及維護應用程式。

詳情請參閱 GDC air-gapped 說明文件適用對象

切換至全域環境

切換至全域環境,即可全域管理資源。

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) 憑證。詳情請參閱「網頁 TLS 憑證設定」。

API

管理或佈建全域 KRM API 自訂資源時,您必須在 kubectl 指令中,明確定義全域管理 API 伺服器的 kubeconfig 檔案。例如:

  kubectl apply -f resource.yaml --kubeconfig GLOBAL_API_SERVER

將 kubectl 環境設為全域 API 伺服器,即可自動為 API 呼叫設定全域環境。詳情請參閱「登入」一文。

Terraform

您必須在 Terraform 模組中明確定義全域管理 API 伺服器,並加以初始化:

  1. 在模組內的 Terraform 檔案中 (例如 main.tf 檔案),定義全域管理 API 伺服器的 kubeconfig 檔案:

    provider "kubernetes" {
      config_path = "GLOBAL_API_SERVER"
    }
    

    如要進一步瞭解如何取得全域管理 API 伺服器的 kubeconfig 檔案,請參閱「登入」一文。

  2. 為 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 替換為要為環境設定的區域名稱。如需尋找可用區名稱的操作說明,請參閱「列出 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 certificate configuration」。

套用 --zone 旗標

  • 執行 gcloud CLI 指令,並加入 --zone 旗標。 例如:

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

    您可以為任何支援的指令設定 --zone 標記。查看特定指令的 gcloud CLI 參考說明文件,確認 --zone 標記是否可用。

    您可以從任何全域或區域環境使用 --zone 旗標。

API

管理或佈建區域 KRM API 自訂資源時,您必須在 kubectl 指令中,明確定義區域管理 API 伺服器的 kubeconfig 檔案。例如:

  kubectl apply -f resource.yaml --kubeconfig ZONAL_API_SERVER

將 kubectl 環境定義設為區域的管理 API 伺服器,即可自動為 API 呼叫設定區域環境定義。詳情請參閱「登入」一文。

Terraform

您必須在 Terraform 模組中明確定義區域管理 API 伺服器,並加以初始化:

  1. 在模組的 Terraform 檔案中 (例如 main.tf 檔案),定義區域管理 API 伺服器的 kubeconfig 檔案:

    provider "kubernetes" {
      config_path = "ZONAL_API_SERVER"
    }
    

    如要進一步瞭解如何取得區域管理 API 伺服器的 kubeconfig 檔案,請參閱「登入」一文。

  2. 為 Terraform 模組套用新的全域環境:

    terraform apply
    

後續所有 Terraform 動作都會在您設定的區域中呼叫。

列出宇宙中的區域

如要列出宇宙中的所有可用區,請執行下列指令:

  gdcloud zones list

輸出看起來類似以下內容:

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

後續步驟