Condividi tramite


Creare cluster Kubernetes usando Terraform (anteprima)

Questo articolo descrive come creare un cluster Kubernetes in Locale di Azure usando Terraform e il modulo verificato di Azure. Il flusso di lavoro è il seguente:

  • creare una coppia di chiavi SSH.
  • Creare un cluster Kubernetes in Azure Local 23H2 usando Terraform. Per impostazione predefinita, il cluster è connesso ad Azure Arc.
  • Convalidare la distribuzione e connettersi al cluster.

Importante

Queste funzionalità di anteprima sono disponibili in modalità self-service e acconsentono esplicitamente. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. servizio Azure Kubernetes, abilitate dalle anteprime di Azure Arc, sono parzialmente coperte dal supporto tecnico per il massimo sforzo.

Operazioni preliminari

Prima di iniziare, verificare di aver soddisfatto i prerequisiti seguenti:

  1. Ottenere i dettagli seguenti dall'amministratore dell'infrastruttura locale:
    • ID sottoscrizione di Azure: ID sottoscrizione di Azure che usa azure locale per la distribuzione e la registrazione.
    • Nome o ID percorso personalizzato: ID di Azure Resource Manager del percorso personalizzato. Il percorso personalizzato viene configurato durante la distribuzione del cluster locale di Azure. L'amministratore dell'infrastruttura deve fornire l'ID resource manager della posizione personalizzata. Questo parametro è necessario per creare cluster Kubernetes. È anche possibile ottenere l'ID di Resource Manager usando az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv, se l'amministratore dell'infrastruttura fornisce un nome di percorso personalizzato e un nome del gruppo di risorse.
    • Nome o ID di rete logica: ID di Azure Resource Manager della rete logica di Azure Stack HCI creata seguendo questa procedura. L'amministratore deve fornire l'ID della rete logica. Questo parametro è obbligatorio per creare cluster Kubernetes. È anche possibile ottenere l'ID di Azure Resource Manager usando az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv se si conosce il gruppo di risorse in cui è stata creata la rete logica.
  2. Assicurarsi di avere GitHub, la versione più recente dell'interfaccia della riga di comando di Azure e il client Terraform installato nel computer di sviluppo.
  3. Scaricare e installare kubectl nel computer di sviluppo.

Creare una coppia di chiavi SSH

Per creare una coppia di chiavi SSH (come il servizio Azure Kubernetes di Azure), seguire questa procedura:

  1. Aprire una sessione di Cloud Shell nel browser.

  2. Creare una coppia di chiavi SSH usando il comando az sshkey create , dal portale o dal ssh-keygen comando :

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

    or

    ssh-keygen -t rsa -b 4096 
    
  3. Recuperare il valore della chiave pubblica da Azure o dal computer locale in /.ssh/id_rsa.pub.

Accedere ad Azure

Terraform supporta l'autenticazione in Azure solo con l'interfaccia della riga di comando di Azure. L'autenticazione con Azure PowerShell non è supportata. Pertanto, anche se è possibile usare il modulo Azure PowerShell quando si esegue il lavoro di Terraform, è prima necessario eseguire l'autenticazione in Azure.

Implementare il codice Terraform

  1. Creare una directory che è possibile usare per testare il codice Terraform di esempio e impostarlo come directory corrente.

  2. Nella stessa directory creare un file denominato providers.tf e incollare il codice seguente:

    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. Creare un altro file denominato main.tf che punta al modulo Arc AVM del servizio Azure Kubernetes più recente e inserire il codice seguente. È possibile leggere la descrizione e l'input del modulo e aggiungere parametri facoltativi in base alle esigenze:

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

Inizializzare Terraform

Eseguire terraform init per inizializzare la distribuzione di Terraform. Assicurarsi di usare il -upgrade flag per aggiornare i plug-in del provider necessari alla versione più recente:

terraform init -upgrade

Creare un piano di esecuzione terraform e applicare il piano

Eseguire terraform plan per creare un piano di esecuzione, quindi eseguire terraform apply per applicare il file di output all'infrastruttura cloud:

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

Il comando viene eseguito, quindi restituisce l'esito positivo dopo il provisioning della risorsa.

Convalidare la distribuzione e connettersi al cluster

È ora possibile connettersi al cluster Kubernetes eseguendo az connectedk8s proxy dal computer di sviluppo. È anche possibile usare kubectl per visualizzare lo stato del nodo e del pod. Seguire la stessa procedura descritta in Connettersi al cluster Kubernetes.

Passaggi successivi

Connettersi al cluster Kubernetes