使用 Terraform 建立 Kubernetes 叢集 (預覽)
本文說明如何使用 Terraform 和 Azure 已驗證的模組,在 Azure Local 中建立 Kubernetes 叢集。 工作流程如下所示:
- 建立 SSH 金鑰組。
- 使用 Terraform 在 Azure Local 23H2 中建立 Kubernetes 叢集。 根據預設,叢集是 Azure Arc 連線。
- 驗證部署並連線到叢集。
重要
這些預覽功能會以自助式、選擇方式提供。 預覽會以「現狀」和「可供使用時」提供,其其不受服務等級協定和有限瑕疵擔保所保護。 Azure Arc 預覽所啟用的 Azure Kubernetes Service 會盡最大努力由客戶支援部分涵蓋。
開始之前
開始之前,請確定您有下列必要條件:
- 從您的內部部署基礎結構管理員取得下列詳細資料:
- Azure 訂用帳戶標識碼:使用 Azure Local 進行部署和註冊的 Azure 訂用帳戶標識碼。
- 自定義位置名稱或標識碼:自定義位置的 Azure Resource Manager 識別符。 自定義位置是在 Azure 本機叢集部署期間設定的。 基礎結構管理員應該提供自定義位置的 Resource Manager 識別符。 建立 Kubernetes 叢集需要此參數。 如果基礎結構管理員提供自定義位置名稱和資源組名,您也可以使用
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
取得 Resource Manager 識別符。 - 邏輯網路名稱或標識碼:遵循下列步驟建立之 Azure Stack HCI 邏輯網路的 Azure Resource Manager 標識符。 您的系統管理員應該提供邏輯網路的標識碼。 需要此參數才能建立 Kubernetes 叢集。 如果您知道邏輯網路建立所在的資源群組,您也可以使用
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
來取得 Azure Resource Manager 標識符。
- 請確定您已在開發電腦上安裝 GitHub、 最新版的 Azure CLI 和 Terraform 用戶端 。
- 在您的開發電腦上下載並安裝 kubectl 。
建立 SSH 金鑰組
若要建立 SSH 金鑰組(與 Azure AKS 相同),請使用下列程式:
使用 az sshkey create 命令,從入口網站或
ssh-keygen
命令建立 SSH 金鑰組:az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
或
ssh-keygen -t rsa -b 4096
從 Azure 或從 /.ssh/id_rsa.pub 下的本機計算機擷取公鑰的值。
登入 Azure
Terraform 只能支援使用 Azure CLI 向 Azure 進行驗證。 不支援使用 Azure PowerShell 進行驗證。 因此,雖然您可以在執行 Terraform 工作時使用 Azure PowerShell 模組,但您必須先 向 Azure 進行驗證。
實作 Terraform 程式碼
建立可用來測試範例 Terraform 程式碼的目錄,並將其設為您目前的目錄。
在相同的目錄中,建立名為 providers.tf 的檔案,並貼上下列程序代碼:
terraform { required_version = "~> 1.5" required_providers { azapi = { source = "azure/azapi" version = "~> 1.13" } azurerm = { source = "hashicorp/azurerm" version = "~> 3.74" } } } provider "azurerm" { features { resource_group { prevent_deletion_if_contains_resources = false } } }
建立另 一個名為 main.tf 的檔案,指向最新的 AKS Arc AVM 模組,然後插入下列程序代碼。 您可以讀取模組的描述和輸入,並視需要新增選擇性參數:
module "aks_arc" { # Make sure to use the latest AVM module version source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" version = "0.5.0" # Make sure to provide all required parameters resource_group_id = "<Resource_Group>" location = "<Region>" name = "<Cluster_Name>" logical_network_id = "<LNet_ID>" custom_location_id = "<CustomLocation_ID>" agent_pool_profiles = [{count=1}] # Optional parameters ssh_public_key = "Your_SSH_Key" enable_workload_identity = true enable_oidc_issuer = true rbac_admin_group_object_ids = "" }
初始化 Terraform
執行 terraform init
來初始化 Terraform 部署。 請務必使用 -upgrade
旗標,將必要的提供者外掛程式升級至最新版本:
terraform init -upgrade
建立 Terraform 執行計劃並套用計劃
執行 terraform 計劃 以建立執行計劃,然後執行 terraform apply 以將輸出檔案套用 至您的雲端基礎結構:
terraform plan -out main.tfplan
terraform apply main.tfplan
命令會執行,然後在成功布建資源之後傳回成功。
驗證部署並連線到叢集
您現在可以從開發電腦執行 az connectedk8s proxy
來連線到 Kubernetes 叢集。 您也可以使用 kubectl 來查看節點和 Pod 狀態。 請遵循與連線至 Kubernetes 叢集中所述的相同步驟。