全部產品
Search
文件中心

Container Service for Kubernetes:Terraform概述

更新時間:Oct 31, 2024

Terraform是一種開源工具,用於安全高效地預覽、配置和管理雲基礎架構和資源。本文介紹Terraform的基本概念、使用優勢和應用情境。

基本概念

Terraform是一個雲上Resource Orchestration Service工具,實現基礎設施即代碼。

  • Terraform能夠讓您在阿里雲上便於使用簡單範本語言定義、預覽和部署雲基礎架構。更多資訊,請參見Configuration Syntax

  • Terraform是一個安全、高效地部署、更改、版本化基礎設施和應用程式的工具,可以用來管理多層次的資源。

  • Terraform統一管理從上層的軟體到底層的網路、系統的配置。

  • Terraform可以建立、修改、刪除ECS、VPC、RDS、SLB等多種阿里雲雲產品資源。

有關Terraform應用情境的具體介紹,請參見應用情境

Terraform資源

Terraform工具

Terraform的資源分為2類:

  • Resource:資源,指新建立的資源。

  • Data Source: 資料資源,查詢已有的資源資訊並擷取其屬性。

以下舉例說明如何使用Resource和Data Source。

### Data Sources
# 列出2 Core 4 GB這種規格的機器的型號。
# 參考文檔:https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types
data "alicloud_instance_types" "c2g4" {
  cpu_core_count = 2
  memory_size    = 4
}

## Resources
# 建立一個SLB。
# 參考文檔:https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance
resource "alicloud_slb" "default" {
  name          = var.name
  specification = "slb.s2.small"
  vswitch_id    = alicloud_vswitch.default.id
}

關於Container ServiceACK的Resources和Data Resources的相關資訊,請參見通過Terraform使用ACK

Terraform工具分為3部分:

  • Terraform CLI:Terraform用戶端命令列工具。

  • Terraform Provider:各個雲廠商都提供了自己的Provider,用於將雲產品接入到Terraform中。關於Terraform Provider的更多資訊,請參見Provider

  • ROS提供了Terraform託管服務,因此您可以直接在ROS控制台部署Terraform模板。詳細操作,請參見建立Terraform類型資源棧

您可以下載Terraform工具。具體操作,請參見在本地安裝和配置Terraform在Cloud Shell中使用Terraform

阿里雲是中國第一家與Terraform整合的雲廠商,阿里雲Provider(terraform-provider-alicloud)目前已經提供了超過163個Resource和113個Data Source,覆蓋計算、儲存、網路、負載平衡、CDN、Container Service、中介軟體、存取控制、資料庫等超過35款產品,已經滿足了大量大客戶的自動化上雲需求。

關於Terraform的更多資訊,請參見Terraform

使用優勢

  • 將基礎架構部署到多個雲

    Terraform適用於多雲方案,將類似的基礎架構部署到阿里雲、其他雲供應商或者本機資料中心。開發人員能夠使用相同的工具和相似的設定檔同時管理不同雲供應商的資源。

  • 自動化管理基礎架構

    Terraform能夠建立設定檔的模板,以可重複、可預測的方式定義、預配和配置ECS資源,減少因人為因素導致的部署和管理錯誤。通過使用Terraform,您能夠多次部署同一模板,建立相同的開發、測試和生產環境。

  • 基礎架構即代碼

    可以用代碼來管理維護資源。允許儲存基礎設施狀態,從而使您能夠跟蹤對系統(基礎設施即代碼)中不同組件所做的更改,並與其他人共用這些配置。

  • 降低開發成本

    您可通過按需建立開發和部署環境來降低成本。此外,您可以在系統更改之前進行評估。

通過Terraform使用ACK

ACK支援通過Terraform管理以下Resource和Data Source。

表 1. Resources

名稱

描述

alicloud_cs_edge_kubernetes

管理ACK邊緣託管版叢集。

alicloud_cs_kubernetes_node_pool

管理ACK節點池。

alicloud_cs_kubernetes_permissions

管理ACK叢集內RBAC許可權。

alicloud_cs_managed_kubernetes

管理ACK託管版叢集。

alicloud_cs_kubernetes

管理ACK專有版叢集。

alicloud_cs_serverless_kubernetes

管理ACK Serverless叢集

alicloud_cs_kubernetes_addon

管理叢集組件。

表 2. Data Sources

名稱

描述

alicloud_ack_service

開通Container ServiceACK。

alicloud_cs_edge_kubernetes_clusters

列舉所有的ACK邊緣託管版叢集。

alicloud_cs_kubernetes_clusters

列舉所有的ACK專有版叢集。

alicloud_cs_kubernetes_permissions

列舉RAM使用者擁有的所有許可權。

alicloud_cs_managed_kubernetes_clusters

列舉所有的ACK託管版叢集。

alicloud_cs_serverless_kubernetes_clusters

列舉所有的ACK Serverless叢集

alicloud_cs_kubernetes_addon_metadata

列舉叢集組件中繼資料資訊。

alicloud_cs_kubernetes_addons

列舉叢集可用的組件。

alicloud_cs_kubernetes_version

列舉可用的Kubernetes版本資訊。