Guida introduttiva: Distribuire un cluster Kubernetes usando un modello di Azure Resource Manager
Si applica a: Locale di Azure, versione 23H2
Questa guida introduttiva illustra come distribuire un cluster Kubernetes in AKS Arc usando un modello di Azure Resource Manager (ARM). Azure Arc estende le funzionalità di gestione di Azure ai cluster Kubernetes ovunque, offrendo un approccio unificato alla gestione di ambienti diversi.
Operazioni preliminari
Questo articolo presuppone una conoscenza di base dei concetti relativi a Kubernetes.
Per distribuire un modello di Resource Manager, è necessario l'accesso in scrittura alle risorse da distribuire e l'accesso a tutte le operazioni nel tipo di risorsa Microsoft.Resources/deployments. Ad esempio, per distribuire una macchina virtuale, sono necessarie autorizzazioni Microsoft.Compute/virtualMachines/write e Microsoft.Resources/deployments/* . Per un elenco dei ruoli e delle autorizzazioni, vedere Ruoli predefiniti di Azure.
Prerequisiti
- Un account Azure con una sottoscrizione attiva.
- Un cluster locale di Azure versione 23H2.
- Versione più recente dell'interfaccia della riga di comando di Azure.
Passaggio 1: Preparare l'account Azure
Accedere ad Azure: aprire il terminale o il prompt dei comandi e accedere all'account Azure usando l'interfaccia della riga di comando di Azure:
az login
Impostare la sottoscrizione: sostituire
<your-subscription-id>
con l'ID sottoscrizione:az account set --subscription "<your-subscription-id>"
Passaggio 2: Creare una coppia di chiavi SSH usando l'interfaccia della riga di comando di Azure
az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
in alternativa, creare una coppia di chiavi SSH usando ssh-keygen:
ssh-keygen -t rsa -b 4096
Per distribuire il modello, è necessario fornire la chiave pubblica dalla coppia SSH. Per recuperare la chiave pubblica, usare il az sshkey show
comando :
az sshkey show --name "mySSHKey" --resource-group "myResourceGroup" --query "publicKey"
Per impostazione predefinita, questi file della chiave SSH vengono creati nella directory ~/.ssh. Eseguire il az sshkey create
comando o ssh-keygen
per sovrascrivere qualsiasi coppia di chiavi SSH esistente con lo stesso nome.
Per altre informazioni su come creare le chiavi SSH, vedere Creare e gestire chiavi SSH per l'autenticazione in una macchina virtuale Linux in Azure.
Passaggio 3: Esaminare il modello
Scarica i file del modello e dei parametri dal repository AKSArc sul computer locale. Esaminare tutti i valori predefiniti e assicurarsi che siano corretti.
Passaggio 4: Distribuire il modello
Per distribuire il cluster Kubernetes, eseguire il comando seguente:
az deployment group create \
--name "<deployment-name>" \
--resource-group "<resource-group-name>" \
--template-file "azuredeploy.json" \
--parameters "azuredeploy.parameters.json"
La creazione del cluster richiede alcuni minuti. Attendere il completamento della distribuzione del cluster prima di procedere al passaggio successivo.
Passaggio 5: Verificare la distribuzione
Al termine della distribuzione, usare il comando seguente per verificare che il cluster Kubernetes sia operativo:
az aksarc show --resource-group "<resource-group-name>" --name "<cluster-name>" --output table
Passaggio 6: Connettersi al cluster
Per connettersi al cluster, eseguire il
az connectedk8s proxy
comando . Il comando scarica ed esegue un file binario proxy nel computer client e recupera un file kubeconfig associato al cluster:az connectedk8s proxy --name <cluster name> -g <resource group>
In alternativa, usare il client da riga di comando kubernetes, kubectl. Se si usa Azure Cloud Shell, kubectl è già installato. Per installare ed eseguire kubectl in locale, eseguire il
az aksarc install-cli
comando .Configurare kubectl per connettersi al cluster Kubernetes usando il
az aksarc get-credentials
comando . Questo comando scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarle:az aksarc get-credentials --resource-group "<resource-group-name>" --name "<cluster-name>"
Verificare la connessione al cluster usando il comando
kubectl get
. Questo comando restituisce un elenco dei nodi del cluster:kubectl get nodes -A --kubeconfig .\<path to kubecofig>
L'output di esempio seguente mostra i tre nodi creati nei passaggi precedenti. Assicurarsi che lo stato del nodo sia Pronto:
NAME STATUS ROLES AGE VERSION aks-agentpool-27442051-vmss000000 Ready agent 10m v1.27.7 aks-agentpool-27442051-vmss000001 Ready agent 10m v1.27.7 aks-agentpool-27442051-vmss000002 Ready agent 11m v1.27.7
Passaggio 7: Distribuire un pool di nodi usando un modello di Azure Resource Manager (facoltativo)
Analogamente al passaggio 3, scaricare il modello e i parametri del pool di nodi dal repository AKSArc ed esaminare i valori predefiniti.
Distribuire il modello e convalidare i risultati usando l'interfaccia della riga di comando di Azure (facoltativo)
Esaminare e applicare il modello. Il completamento di questo processo richiede alcuni minuti. È possibile usare l'interfaccia della riga di comando di Azure per verificare che il pool di nodi sia stato creato correttamente:
az deployment group create \
--name "<deployment-name>" \
--resource-group "<resource-group-name>" \
--template-file "azuredeploy.json" \
--parameters "azuredeploy.parameters.json"
az aksarc nodepool show --cluster-name "<cluster-name>" --resource-group "<resource-group-name>" --name "<nodepool-name>"
Risorse del modello
connectedClusters
Nome | Descrizione | valore |
---|---|---|
type |
Tipo di risorsa. | Microsoft.Kubernetes/ConnectedClusters |
apiVersion |
Versione dell'API della risorsa. | 2024-01-01 |
name |
Nome della risorsa. | Stringa (obbligatorio) Limite di caratteri: 1-63 Caratteri validi: caratteri alfanumerici, caratteri di sottolineatura e trattini. Deve iniziare e terminare con un carattere alfanumerico. |
location |
Posizione geografica in cui risiede la risorsa. | Stringa (obbligatorio). |
tags |
Tag di risorsa. | Dizionario di nomi e valori di tag. Vedere Tag nei modelli. |
extendedLocation |
Posizione estesa della macchina virtuale. | ExtendedLocation |
identity |
Identità del cluster connesso, se configurata. | |
properties |
Proprietà di un cluster connesso. |
ProvisionedClusterInstances
Nome | Descrizione | valore |
---|---|---|
type |
Tipo di risorsa | microsoft.hybridcontainerservice/provisionedclusterinstances |
apiVersion |
Versione dell'API della risorsa | 2024-01-01 |
name |
Nome della risorsa | Stringa (obbligatorio). Non modificare questa impostazione rispetto all'impostazione predefinita. |
properties |
Proprietà di un cluster connesso. | |
extendedLocation |
Posizione estesa del cluster. | ExtendedLocation |
ExtendedLocation
Nome | Descrizione | valore |
---|---|---|
name |
ID della posizione estesa. | string |
type |
Tipo della posizione estesa. | CustomLocation |