Delen via


Kubernetes-clusters maken met Behulp van Terraform (preview)

In dit artikel wordt beschreven hoe u Kubernetes-clusters maakt in Azure Local met behulp van Terraform en de azure-geverifieerde module. De werkstroom is als volgt:

  • Maak een SSH-sleutelpaar.
  • Maak een Kubernetes-cluster in Azure Local 23H2 met behulp van Terraform. Het cluster is standaard verbonden met Azure Arc.
  • Valideer de implementatie en maak verbinding met het cluster.

Belangrijk

Deze preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals is' en 'als beschikbaar' en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. Azure Kubernetes Service, ingeschakeld door Azure Arc Previews, wordt gedeeltelijk gedekt door klantondersteuning op basis van best effort.

Voordat u begint

Zorg ervoor dat u voordat u begint over het volgende beschikt:

  1. Haal de volgende gegevens op van uw on-premises infrastructuurbeheerder:
    • Azure-abonnements-id: de Azure-abonnements-id die gebruikmaakt van Azure Local voor implementatie en registratie.
    • Naam of id van aangepaste locatie: de Azure Resource Manager-id van de aangepaste locatie. De aangepaste locatie wordt geconfigureerd tijdens de implementatie van het lokale Azure-cluster. De infrastructuurbeheerder moet u de Resource Manager-id van de aangepaste locatie geven. Deze parameter is vereist voor het maken van Kubernetes-clusters. U kunt ook de Resource Manager-id ophalen met behulp van az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv, als de infrastructuurbeheerder een aangepaste locatienaam en resourcegroepnaam biedt.
    • Naam of id van logisch netwerk: de Azure Resource Manager-id van het logische Azure-netwerk dat is gemaakt volgens deze stappen. Uw beheerder moet u de id van het logische netwerk geven. Deze parameter is vereist om Kubernetes-clusters te maken. U kunt ook de Azure Resource Manager-id ophalen met behulp van az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv de resourcegroep waarin het logische netwerk is gemaakt.
  2. Zorg ervoor dat GitHub, de nieuwste versie van Azure CLI en de Terraform-client op uw ontwikkelcomputer zijn geïnstalleerd.
  3. Download en installeer kubectl op uw ontwikkelcomputer.

Een SSH-sleutelpaar maken

Als u een SSH-sleutelpaar (hetzelfde als Azure AKS) wilt maken, gebruikt u de volgende procedure:

  1. Open een Cloud Shell-sessie in uw browser.

  2. Maak een SSH-sleutelpaar met behulp van de opdracht az sshkey create , vanuit de portal of de ssh-keygen opdracht:

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

    or

    ssh-keygen -t rsa -b 4096 
    
  3. Haal de waarde van uw openbare sleutel op uit Azure of van uw lokale computer onder /.ssh/id_rsa.pub.

Aanmelden bij Azure

Terraform biedt alleen ondersteuning voor verificatie bij Azure met de Azure CLI met behulp van az login. Verificatie met behulp van Azure PowerShell wordt niet ondersteund. Hoewel u de Azure PowerShell-module kunt gebruiken bij het uitvoeren van uw Terraform-werk, moet u eerst verifiëren bij Azure:

az login 

De Terraform-code implementeren

  1. Maak een map die u kunt gebruiken om de Terraform-voorbeeldcode te testen en maak er uw huidige map van.

  2. Maak in dezelfde map een bestand met de naam providers.tf en plak de volgende code:

    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. Maak een ander bestand met de naam main.tf dat verwijst naar de meest recente AVM-module van AKS Arc en voeg de volgende code in. U kunt de beschrijving en invoer van de module lezen en indien nodig optionele parameters toevoegen. Zie Microsoft Entra-verificatie inschakelen voor Kubernetes-clustersom de object-id van de beheergroep te vinden. U kunt deze richtlijnen volgen om deze te vinden in uw Azure-omgeving.

    module "aks_arc" { 
    # Make sure to use the latest AVM module version
    source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" 
    version = "~>0.6"
    
    # 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}] 
    ssh_public_key =  "Your_SSH_Key"
    
    # Optional parameters, update them as needed
    enable_workload_identity = false 
    enable_oidc_issuer = false 
    rbac_admin_group_object_ids = ["<Admin_Group_Object_ID>"]
    }
    

Terraform initialiseren

Voer deze opdracht uit terraform init om de Terraform-implementatie te initialiseren. Zorg ervoor dat u de -upgrade vlag gebruikt om de benodigde providerinvoegtoepassingen bij te werken naar de nieuwste versie:

terraform init -upgrade

Een Terraform-uitvoeringsplan maken en toepassen

Zorg ervoor dat u az login uitvoert en verifieert bij Azure voordat u deze stap uitvoert, anders mislukt het toepassen van het Terraform-plan. Voer terraform plan uit om een uitvoeringsplan te maken en voer vervolgens terraform apply uit om het uitvoerbestand toe te passen op uw cloudinfrastructuur:

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

De opdracht wordt uitgevoerd en retourneert vervolgens geslaagd nadat de resource is ingericht.

De implementatie valideren en verbinding maken met het cluster

U kunt nu verbinding maken met uw Kubernetes-cluster door deze uit te voeren az connectedk8s proxy vanaf uw ontwikkelcomputer. U kunt kubectl ook gebruiken om de status van het knooppunt en de pod te bekijken. Volg dezelfde stappen als beschreven in Verbinding maken met het Kubernetes-cluster.

Volgende stappen

Verbinding maken met het Kubernetes-cluster