共用方式為


使用 Terraform 建立 Kubernetes 叢集 (預覽)

本文說明如何使用 Terraform 和 Azure 已驗證的模組,在 Azure Local 中建立 Kubernetes 叢集。 工作流程如下所示:

  • 建立 SSH 金鑰組。
  • 使用 Terraform 在 Azure Local 23H2 中建立 Kubernetes 叢集。 根據預設,叢集是 Azure Arc 連線。
  • 驗證部署並連線到叢集。

重要

這些預覽功能會以自助式、選擇方式提供。 預覽會以「現狀」和「可供使用時」提供,其其不受服務等級協定和有限瑕疵擔保所保護。 Azure Arc 預覽所啟用的 Azure Kubernetes Service 會盡最大努力由客戶支援部分涵蓋。

開始之前

開始之前,請確定您有下列必要條件:

  1. 從您的內部部署基礎結構管理員取得下列詳細資料:
    • 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 標識符。
  2. 請確定您已在開發電腦上安裝 GitHub、 最新版的 Azure CLITerraform 用戶端
  3. 在您的開發電腦上下載並安裝 kubectl

建立 SSH 金鑰組

若要建立 SSH 金鑰組(與 Azure AKS 相同),請使用下列程式:

  1. 在瀏覽器中開啟 Cloud Shell 工作階段

  2. 使用 az sshkey create 命令,從入口網站或ssh-keygen命令建立 SSH 金鑰組:

    az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
    

    ssh-keygen -t rsa -b 4096 
    
  3. 從 Azure 或從 /.ssh/id_rsa.pub 下的本機計算機擷取公鑰的值。

登入 Azure

Terraform 只能支援使用 Azure CLI 向 Azure 進行驗證。 不支援使用 Azure PowerShell 進行驗證。 因此,雖然您可以在執行 Terraform 工作時使用 Azure PowerShell 模組,但您必須先 向 Azure 進行驗證。

實作 Terraform 程式碼

  1. 建立可用來測試範例 Terraform 程式碼的目錄,並將其設為您目前的目錄。

  2. 在相同的目錄中,建立名為 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 
      } 
     } 
    }
    
  3. 建立另 一個名為 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 叢集中所述的相同步驟。

下一步

線上到 Kubernetes 叢集