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 的運作方式:
您可以在 Terraform 設定檔中說明要佈建的基礎架構。您不需要編寫程式碼,說明如何佈建基礎架構。Terraform 會為您佈建基礎架構。
您執行
terraform plan
指令,評估設定並產生執行計畫。您可以查看方案並視需要變更。執行
terraform apply
指令,該指令會執行下列動作:根據執行計畫,在背景呼叫對應的 GDC 氣隙 API,佈建基礎架構。
這會建立 Terraform 狀態檔案,也就是將設定檔中的資源對應至實際基礎架構中資源的 JSON 檔案。Terraform 會使用這個檔案記錄基礎架構的最新狀態,並決定何時建立、更新及刪除資源。
執行
terraform apply
時,Terraform 會使用狀態檔案中的對應項目,比較現有基礎架構與程式碼,並視需要進行更新:如果設定檔中定義了資源物件,但狀態檔案中沒有該物件,Terraform 就會建立該物件。
如果資源物件存在於狀態檔案中,但設定與設定檔不同,Terraform 會更新資源,使其與設定檔相符。
如果狀態檔中的資源物件與設定檔相符,Terraform 就不會變更資源。
GDC 實體隔離方案的 Terraform 資源
資源是 Terraform 語言的基本元素。每個資源區塊都會說明一或多個基礎架構物件。
GDC 實體隔離方案是以 Kubernetes 為基礎建構而成,除了 Node
、PersistentVolume
和 Service
等核心 Kubernetes API,它也支援 CustomResourceDefinition
API。透過自訂資源定義,系統會建構 GDC 專屬 API,用來代表 GDC 離線基礎架構。
下表列出適用於 GDC 氣隙環境的 Terraform 資源:
Terraform 資源 | 資料來源 |
---|---|
kubernetes_manifest
|