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

  1. 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
    
  2. 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

  1. 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>"
    
  2. 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

Passaggi successivi

Panoramica di Arc del servizio Azure Kubernetes