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.
I Moduli Verificati di Azure (AVM) sono moduli predefiniti e riutilizzabili di Infrastruttura come Codice (IaC) sviluppati e gestiti da Microsoft per Bicep e Terraform. Le VM sono progettate per facilitare la distribuzione di risorse Azure in modo coerente e affidabile, seguendo le procedure consigliate e gli standard di conformità.
Questo articolo illustra come distribuire un cluster AKS pronto per la produzione usando Terraform con un Modulo Verificato Azure (AVM).
Per altre informazioni sulle VM, vedere Azure Verified Modules.
Prerequisiti
Sottoscrizione attiva Azure. Se non si ha una sottoscrizione Azure, creare un account free prima di iniziare.
Impostare il contesto della sottoscrizione usando il
az account setcomando . Per esempio:az account set --subscription "00000000-0000-0000-0000-000000000000"interfaccia della riga di comando di Azure installato e configurato. Trova la versione usando il comando
az --version. Se è necessario installare o aggiornare, vedere Installare interfaccia della riga di comando di Azure.kubectl installato. È possibile installarlo in locale usando il
az aks install-clicomando .Terraform installato localmente. Per istruzioni di installazione, vedere Installare Terraform.
Comprendere la configurazione di Terraform
Il modulo Terraform implementa un cluster di Azure Kubernetes Service pronto per l'uso in produzione con le seguenti funzionalità:
-
Pool di nodi allineati alla zona in più zone di disponibilità: implementiamo zone di disponibilità con il ridimensionamento automatico del cluster, usando un singolo pool di nodi per ogni zona. Il
balance_similar_node_groupsparametro abilita una distribuzione bilanciata di nodi tra le zone per la scalabilità e la disponibilità elevata. : Applichiamo il e abilitiamo glicanale di aggiornamento aggiornamenti automatici delle immagini del sistema operativo del nodo per garantire che il cluster sia sempre aggiornato con le patch e le funzionalità di sicurezza più recenti.- Azure CNI Overlay networking: usiamo Azure CNI Overlay networking per offrire funzionalità di rete avanzate, tra cui la gestione degli indirizzi IP (IPAM) e l'applicazione dei criteri di rete.
- Private Kubernetes API endpoint and Microsoft Entra authentication: l'API Kubernetes viene protetta inserendola in una rete privata, consentire l'autenticazione usando Microsoft Entra ID e disattivare gli account locali (facoltativo).
- Rete virtuale BYO (Bring Your Own) e richiede un'identità gestita assegnata dall'utente: Consenti di utilizzare una rete virtuale personalizzata e richiedere un'identità gestita assegnata dall'utente specificamente per il cluster AKS, al fine di migliorare la sicurezza e il controllo sulle risorse di rete e identità. È possibile usare la stessa identità gestita in più cluster per una gestione coerente delle identità.
Creare il file di configurazione terraform
I file di configurazione terraform definiscono l'infrastruttura creata e gestita da Terraform.
Creare un file denominato
main.tfe aggiungere il codice seguente per definire la versione di Terraform e specificare il provider Azure:terraform { required_version = ">= 1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { features {} }Aggiungere il codice seguente a
main.tfper creare un gruppo di risorse Azure. È possibile modificare il nome e la posizione del gruppo di risorse in base alle esigenze.resource "azurerm_resource_group" "aks" { name = "rg-aksprod-demo" location = "eastus" }
Creare la rete virtuale e la subnet
Aggiungere il codice seguente in main.tf per creare una rete virtuale (VNet) e una subnet per il cluster AKS:
resource "azurerm_virtual_network" "aks" {
name = "vnet-aksprod-demo"
location = azurerm_resource_group.aks.location
resource_group_name = azurerm_resource_group.aks.name
address_space = ["10.31.0.0/16"]
}
resource "azurerm_subnet" "aks_nodes" {
name = "snet-aks-nodes"
resource_group_name = azurerm_resource_group.aks.name
virtual_network_name = azurerm_virtual_network.aks.name
address_prefixes = ["10.31.0.0/17"]
}
Creare il cluster AKS pronto per la produzione
Aggiungere il codice seguente a main.tf per creare un cluster AKS pronto per la produzione usando Azure Virtual Machine:
module "aks_production" {
source = "Azure/avm-ptn-aks-production/azurerm"
version = "0.5.0"
name = "aksprod-demo"
location = azurerm_resource_group.aks.location
resource_group_name = azurerm_resource_group.aks.name
network = {
node_subnet_id = azurerm_subnet.aks_nodes.id
pod_cidr = "192.168.0.0/16"
}
}
Inizializzare Terraform
Inizializzare Terraform nella directory contenente il main.tf file usando il terraform init comando . Questo comando scarica il provider di Azure necessario per gestire le risorse Azure con Terraform.
terraform init
Convalidare la configurazione di Terraform
Convalidare la configurazione di Terraform usando il terraform validate comando . Questo comando controlla la sintassi e la coerenza interna dei file di configurazione terraform.
terraform validate
È possibile che vengano visualizzati avvisi correlati agli argomenti deprecati. Questi avvisi provengono dalla macchina virtuale di Azure e non impediscono la distribuzione.
Crea un piano di esecuzione di Terraform
Creare un piano di esecuzione terraform usando il comando terraform plan. Questo comando mostra le risorse che Terraform creerà o modificherà nella sottoscrizione Azure.
terraform plan
Applicare la configurazione di Terraform
Dopo aver esaminato e confermato il piano di esecuzione, applicare la configurazione di Terraform usando il terraform apply comando . Questo comando crea o modifica le risorse definite nel file main.tf nella sottoscrizione Azure.
terraform apply
Connettersi al cluster AKS
Configurare kubectl per connettersi al cluster Kubernetes usando il comando
az aks get-credentials. Questo comando scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarle.az aks get-credentials --resource-group <resource-group> --name <cluster-name>Verificare la connessione al cluster usando il comando [
kubectl get][kubectl-get]. Questo comando restituisce un elenco dei nodi del cluster.kubectl get nodes
Contenuti correlati
Per altre informazioni su AVM, vedere la documentazione Azure Verified Modules (AVM).