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:
- 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.
- 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.
- 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:
Aprire una sessione di Cloud Shell nel browser.
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
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
Creare una directory che è possibile usare per testare il codice Terraform di esempio e impostarlo come directory corrente.
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 } } }
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.