Dela via


Skapa Kubernetes-kluster med Terraform (förhandsversion)

Den här artikeln beskriver hur du skapar Kubernetes-kluster i Azure Local med Terraform och Azure Verified Module. Arbetsflödet är följande:

  • Skapa ett SSH-nyckelpar.
  • Skapa ett Kubernetes-kluster i Azure Local 23H2 med Terraform. Som standard är klustret Azure Arc-anslutet.
  • Verifiera distributionen och anslut till klustret.

Viktigt!

De här förhandsversionsfunktionerna är tillgängliga via självbetjäning och opt-in. Förhandsversioner tillhandahålls "som är" och "som tillgängliga", och de undantas från serviceavtalen och den begränsade garantin. Azure Kubernetes Service, som aktiveras av Förhandsversioner av Azure Arc, omfattas delvis av kundsupport på bästa sätt.

Innan du börjar

Kontrollera att du har följande förutsättningar innan du börjar:

  1. Hämta följande information från din lokala infrastrukturadministratör:
    • Azure-prenumerations-ID: Det Azure-prenumerations-ID som använder Azure Local för distribution och registrering.
    • Anpassat platsnamn eller ID: Azure Resource Manager-ID för den anpassade platsen. Den anpassade platsen konfigureras under distributionen av det lokala Azure-klustret. Infrastrukturadministratören bör ge dig Resource Manager-ID:t för den anpassade platsen. Den här parametern krävs för att skapa Kubernetes-kluster. Du kan också hämta Resource Manager-ID:t med , az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsvom infrastrukturadministratören tillhandahåller ett anpassat platsnamn och resursgruppsnamn.
    • Namn eller ID för logiskt nätverk: Azure Resource Manager-ID:t för det lokala logiska Azure-nätverket som skapades enligt dessa steg. Administratören bör ge dig ID:t för det logiska nätverket. Den här parametern krävs för att skapa Kubernetes-kluster. Du kan också hämta Azure Resource Manager-ID:t med om az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv du känner till resursgruppen där det logiska nätverket skapades.
  2. Kontrollera att GitHub, den senaste versionen av Azure CLI och Terraform-klienten är installerade på utvecklingsdatorn.
  3. Ladda ned och installera kubectl på utvecklingsdatorn.

Skapa ett SSH-nyckelpar

Om du vill skapa ett SSH-nyckelpar (samma som Azure AKS) använder du följande procedur:

  1. Öppna en Cloud Shell-session i webbläsaren.

  2. Skapa ett SSH-nyckelpar med kommandot az sshkey create , från portalen eller ssh-keygen kommandot:

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

    eller

    ssh-keygen -t rsa -b 4096 
    
  3. Hämta värdet för din offentliga nyckel från Azure eller från din lokala dator under /.ssh/id_rsa.pub.

Logga in på Azure

Terraform stöder endast autentisering till Azure med Azure CLI. Autentisering med Azure PowerShell stöds inte. Även om du kan använda Azure PowerShell-modulen när du utför ditt Terraform-arbete måste du därför först autentisera till Azure.

Implementera Terraform-koden

  1. Skapa en katalog som du kan använda för att testa Terraform-exempelkoden och göra den till din aktuella katalog.

  2. I samma katalog skapar du en fil med namnet providers.tf och klistrar in följande kod:

    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. Skapa en annan fil med namnet main.tf som pekar på den senaste AKS Arc AVM-modulen och infoga följande kod. Du kan läsa beskrivningen och indata för modulen och lägga till valfria parametrar efter behov:

    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 = "" 
    }
    

Initiera Terraform

Kör terraform init för att initiera Terraform-distributionen. Se till att använda -upgrade flaggan för att uppgradera nödvändiga provider-plugin-program till den senaste versionen:

terraform init -upgrade

Skapa en Terraform-körningsplan och tillämpa planen

Kör terraform-planen för att skapa en körningsplan och kör sedan terraform apply för att tillämpa utdatafilen på molninfrastrukturen:

terraform plan -out main.tfplan 
terraform apply main.tfplan 

Kommandot körs och returnerar sedan lyckat resultat när resursen har etablerats.

Verifiera distributionen och anslut till klustret

Nu kan du ansluta till ditt Kubernetes-kluster genom att köra az connectedk8s proxy från utvecklingsdatorn. Du kan också använda kubectl för att se noden och poddstatusen. Följ samma steg som beskrivs i Anslut till Kubernetes-klustret.

Nästa steg

Ansluta till Kubernetes-klustret