Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come creare 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 Locale di Azure 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 su base self-service e con iscrizione volontaria. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Servizi Azure Kubernetes, abilitati dalle anteprime di Azure Arc, sono parzialmente coperti dal supporto clienti in base al miglior impegno.
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 posizione personalizzata: ID di Azure Resource Manager della posizione personalizzata. Il percorso personalizzato viene configurato durante la distribuzione del cluster locale di Azure. L'amministratore dell'infrastruttura dovrebbe 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 rete logica: ID di Azure Resource Manager della rete logica locale di Azure 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
Creare una coppia di chiavi SSH in Azure e archiviare il file di chiave privata per la risoluzione dei problemi e la raccolta dei log. Per istruzioni dettagliate, vedere Creare e archiviare chiavi SSH con l'interfaccia della riga di comando di Azure o nel portale di Azure .
Aprire una sessione di Cloud Shell nel Web browser o avviare un terminale nel computer locale.
Creare una coppia di chiavi SSH usando il comando az sshkey create:
az sshkey create --name "mySSHKey" --resource-group $<resource_group_name>
in alternativa, usare il comando
ssh-keygen
:ssh-keygen -t rsa -b 4096
Recuperare il valore della chiave pubblica da Azure o dal computer locale in /.ssh/id_rsa.pub.
Per altre opzioni, è possibile seguire Configurare le chiavi SSH per un cluster del servizio Azure Kubernetes per creare chiavi SSH oppure usare Limitare l'accesso SSH durante la creazione del cluster. Per accedere ai nodi in un secondo momento, vedere Connettersi ai nodi di lavoro Windows o Linux con SSH.
Accedere ad Azure
Terraform supporta solo l'autenticazione in Azure con l'interfaccia della riga di comando di Azure usando az login
. L'autenticazione con Azure PowerShell non è supportata. Pertanto, anche se è possibile usare il modulo Azure PowerShell quando si esegue il lavoro di Terraform, è necessario prima eseguire l'autenticazione in Azure:
az login
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. Assicurarsi di sostituire
<subscription_ID>
con l'ID sottoscrizione:terraform { required_version = "~> 1.5" required_providers { azapi = { source = "azure/azapi" version = "~> 2.0" } azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { subscription_id = "<subscription_ID>" 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. Per trovare l'ID oggetto del gruppo di amministrazione, vedere Abilitare l'autenticazione di Microsoft Entra per i cluster Kubernetes. È possibile seguire queste indicazioni per trovarlo nel tuo ambiente Azure. Per abilitare il controllo degli accessi in base al ruolo di Azure, aggiornare il parametro corrispondente e consultare Abilitare il controllo degli accessi in base al ruolo di Azure per Kubernetes per conoscere i prerequisiti.
module "aks_arc" { # Make sure to use the latest AVM module version source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" version = "~>2.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}] ssh_public_key = "Your_SSH_Key" # Optional parameters, update them as needed enable_azure_rbac = false enable_workload_identity = false enable_oidc_issuer = false rbac_admin_group_object_ids = ["<Admin_Group_Object_ID>"] }
Inizializzare Terraform
Eseguire terraform init
per inizializzare l'implementazione 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 di Terraform e applicarlo
Assicurarsi di eseguire az login
ed eseguire l'autenticazione in Azure prima di questo passaggio; in caso contrario, l'applicazione del piano Terraform ha esito negativo. 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 l'approvvigionamento riuscito 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.