Terraform 總覽

HashiCorp Terraform 是一種基礎架構即程式碼 (IaC) 工具,可讓您佈建及管理雲端基礎架構。Terraform 提供稱為「供應商」的外掛程式,可讓您與雲端服務供應商和其他 API 互動。如果是 Google Distributed Cloud (GDC) 實體隔離方案,您必須使用 Kubernetes 供應商佈建資源,因為 Terraform 沒有專屬的 GDC 實體隔離方案供應商。

Kubernetes 供應商可管理 GDC 資源,並全面管理 Kubernetes 資源的生命週期。

作業 Terraform 供應商
建立

Kubernetes 供應商
讀取
更新
刪除 不適用,請使用 terraform destroy

Terraform 的運作方式

Terraform 採用以設定為導向的宣告式語法,可用來描述要在 GDC 專案中佈建的基礎架構。在一個以上的 Terraform 設定檔中撰寫這項設定後,您可以使用 Terraform CLI 將這項設定套用至 GDC 資源。

以下步驟說明 Terraform 的運作方式:

  1. 您可以在 Terraform 設定檔中說明要佈建的基礎架構。您不需要編寫程式碼,說明如何佈建基礎架構。Terraform 會為您佈建基礎架構。

  2. 您執行 terraform plan 指令,評估設定並產生執行計畫。您可以查看方案並視需要變更。

  3. 執行 terraform apply 指令,該指令會執行下列動作:

    1. 根據執行計畫,在背景呼叫對應的 GDC 氣隙 API,佈建基礎架構。

    2. 這會建立 Terraform 狀態檔案,也就是將設定檔中的資源對應至實際基礎架構中資源的 JSON 檔案。Terraform 會使用這個檔案記錄基礎架構的最新狀態,並決定何時建立、更新及刪除資源。

    3. 執行 terraform apply 時,Terraform 會使用狀態檔案中的對應項目,比較現有基礎架構與程式碼,並視需要進行更新:

      • 如果設定檔中定義了資源物件,但狀態檔案中沒有該物件,Terraform 就會建立該物件。

      • 如果資源物件存在於狀態檔案中,但設定與設定檔不同,Terraform 會更新資源,使其與設定檔相符。

      • 如果狀態檔中的資源物件與設定檔相符,Terraform 就不會變更資源。

GDC 實體隔離方案的 Terraform 資源

資源是 Terraform 語言的基本元素。每個資源區塊都會說明一或多個基礎架構物件。

GDC 實體隔離方案是以 Kubernetes 為基礎建構而成,除了 NodePersistentVolumeService 等核心 Kubernetes API,它也支援 CustomResourceDefinition API。透過自訂資源定義,系統會建構 GDC 專屬 API,用來代表 GDC 離線基礎架構。

下表列出適用於 GDC 氣隙環境的 Terraform 資源:

Terraform 資源 資料來源
kubernetes_manifest

後續步驟