HashiCorp Terraform 是一種基礎架構即程式碼 (IaC) 工具,可讓您佈建及管理雲端基礎架構。Terraform 提供稱為「供應商」的外掛程式,可讓您與雲端服務供應商和其他 API 互動。您可以使用 Terraform 提供者 Google Cloud佈建及管理 Google Cloud 資源,包括 GKE。
本頁面將介紹如何搭配使用 Terraform 與 GKE,包括 Terraform 的運作方式,以及一些有助於您開始搭配使用 Terraform 與 Google Cloud的資源。您也可以找到 GKE 的 Terraform 參考文件連結、程式碼範例,以及使用 Terraform 佈建 GKE 資源的指南。
如要瞭解如何開始使用 Terraform for Google Cloud,請參閱「安裝及設定 Terraform」或「Terraform for Google Cloud 快速入門」。
Terraform 的運作方式
Terraform 採用以設定為導向的宣告式語法,可用於描述要在 Google Cloud 專案中佈建的基礎架構。在一個以上的 Terraform 設定檔中撰寫這項設定後,您可以使用 Terraform CLI 將這項設定套用至 GKE 資源。
以下步驟說明 Terraform 的運作方式:
- 您可以在 Terraform 設定檔中說明要佈建的基礎架構。您不需要編寫程式碼,說明如何佈建基礎架構。Terraform 會為您佈建基礎架構。
- 執行
terraform plan
指令,評估設定並產生執行計畫。您可以查看方案,並視需要進行變更。 -
執行
terraform apply
指令,該指令會執行下列動作:- 根據執行計畫,在背景呼叫對應的 GKE API,佈建基礎架構。
- 這會建立 Terraform 狀態檔案,也就是將設定檔中的資源對應至實際基礎架構中資源的 JSON 檔案。Terraform 會使用這個檔案記錄基礎架構的最新狀態,並決定何時建立、更新及刪除資源。
-
執行
terraform apply
時,Terraform 會使用狀態檔案中的對應項目,比較現有基礎架構與程式碼,並視需要進行更新:- 如果設定檔中定義了資源物件,但狀態檔案中沒有,Terraform 就會建立該物件。
- 如果狀態檔中存在資源物件,但設定與設定檔不同,Terraform 會更新資源,使其與設定檔相符。
- 如果狀態檔案中的資源物件與設定檔相符,Terraform 就不會變更資源。
GKE 的 Terraform 資源
資源是 Terraform 語言的基本元素。每個資源區塊都會說明一或多個基礎架構物件,例如虛擬網路或運算執行個體。
下表列出適用於 GKE 的 Terraform 資源:
以 Terraform 為基礎的 GKE 指南
下表列出 GKE 的 Terraform 使用指南和教學課程:
指南 | 詳細資料 |
---|---|
使用 Terraform 建立 GKE 叢集並部署工作負載 | 說明如何使用 Terraform 建立 Google Kubernetes Engine (GKE) Autopilot 叢集,並部署工作負載。 |
在 GKE Autopilot 叢集上佈建 Cloud Service Mesh | 說明如何在 GKE Autopilot 叢集上設定代管 Cloud Service Mesh。 |
建立及管理叢集和節點集區標籤 | 說明如何建立具有標籤的叢集。 |
使用標記管理 GKE 資源 | 說明如何使用標籤管理 GKE 叢集。 |
建立 Autopilot 叢集 | 說明如何在 Autopilot 中建立 GKE 叢集。 |
在 GKE 標準節點集區中執行 GPU | 說明如何在 GKE Standard 叢集的節點中,附加及使用 NVIDIA® 圖形處理器 (GPU) 硬體加速器,藉此執行及最佳化需要大量運算資源的工作負載,例如人工智慧 (AI) 和圖形處理。 |
使用次要開機磁碟預先載入資料或容器映像檔 | 說明如何使用次要開機磁碟,縮短工作負載啟動延遲時間。 |
建立 VPC 原生叢集 | 說明如何在 GKE 中設定虛擬私有雲原生叢集。 |
在 GKE Standard 中部署 TPU 工作負載 | 說明如何在 GKE Standard 叢集中,使用 Cloud TPU 加速器 (TPU) 要求及部署大規模人工智慧 (AI) 和機器學習 (ML) 模型訓練、調整及推論工作負載。 |
建立內部負載平衡器 | 說明如何在 GKE 上建立內部直通式網路負載平衡器或內部負載平衡器。 |
新增及管理節點集區 | 說明如何在執行 GKE Standard 叢集的節點集區中新增及執行作業。 |
建立具有 Arm 節點的叢集和節點集區 | 說明如何建立具有 Arm 節點的 GKE 標準叢集或節點集區,以便在 GKE 上執行 Arm 工作負載。 |
使用保留的區域資源 | 說明如何在 GKE 中耗用預留的 Compute Engine 資源。 |
在 GKE 上部署高可用性 PostgreSQL 資料庫 | 說明如何在 GKE 上部署高可用性 PostgreSQL 拓撲。PostgreSQL 是開放原始碼物件關聯式資料庫,以可靠性和資料完整性著稱。 |
指定節點映像檔 | 說明如何為 GKE 標準叢集中的節點指定節點映像檔。 |
使用 Windows Server 節點集區建立叢集 | 說明如何建立 GKE 叢集,並在節點集區中執行 Microsoft Windows Server。 |
執行多執行個體 GPU | 說明如何執行多執行個體 GPU,以提高使用率並降低成本。 |
依序推出叢集升級作業 | 說明如何使用推出作業排序功能管理 GKE 叢集升級作業。 |
建立可用區叢集 | 說明如何使用 GKE 中已啟用的預設功能,建立標準可用區叢集。 |
為基本正式環境叢集設定網路 | 說明如何將網頁應用程式部署至 GKE 叢集,並透過 HTTPS 負載平衡器公開該應用程式。 |
收集及查看控制層指標 | 說明如何設定 GKE 叢集,使用 Google Cloud Managed Service for Prometheus,將 Kubernetes API 伺服器、排程器和控制器管理工具發出的指標傳送至 Cloud Monitoring。 |
收集及查看 cAdvisor/Kubelet 指標 | 說明如何設定 Google Kubernetes Engine (GKE) 叢集,使用 Google Cloud Managed Service for Prometheus,將精選的 cAdvisor/Kubelet 指標集傳送至 Cloud Monitoring。 |
調整記錄檔輸送量 | 說明預設記錄檔輸送量,以及如何提高輸送量。 |
為叢集啟用 GKE 備份功能 | 說明如何為叢集啟用 GKE 備份功能。 |
在還原期間修改資源 | 說明如何在還原程序期間,使用轉換規則修改 Kubernetes 資源。 |
啟用備份方案的寬容模式 | 說明如何啟用備份方案的寬容模式。 |
啟用 GKE 備份 API | 說明如何啟用 GKE 備份功能。 |
規劃一組備份 | 說明如何建立 GKE 備份服務的備份方案,用於備份 GKE 中的工作負載。 |
GKE 適用的 Terraform 模組和藍圖
模組和藍圖可協助您自動佈建及管理大量資源。 Google Cloud 模組是一組可重複使用的 Terraform 設定檔,可建立 Terraform 資源的邏輯抽象概念。藍圖是可部署及重複使用的模組套件,也是實作及記錄特定解決方案的政策。
下表列出與 GKE 相關的模組和藍圖:
模組或藍圖 | 詳細資料 |
---|---|
terraform-google-kubernetes-engine | 設定 GKE 叢集。 |
terraform-google-gke-gitlab | 在 GKE 上安裝 GitLab。 |
後續步驟
- GKE 的 Terraform 程式碼範例
- Terraform on Google Cloud 說明文件
- Google Cloud HashiCorp 中的供應商說明文件
- 基礎架構即程式碼 Google Cloud