Tutorial: distribuire nodi virtuali in Istanze di Azure Container nel cluster di servizio Azure Kubernetes

In questa esercitazione si usa il portale di Azure per distribuire un cluster del servizio Azure Kubernetes (AKS). Dopo aver distribuito il cluster AKS, si utilizza un chart Helm per distribuire i nodi virtuali su Istanze di Azure Container.

Prerequisiti

Questa esercitazione presuppone che siano installati gli strumenti seguenti:

  • interfaccia della riga di comando di Azure
  • kubectl (versione 1.30+)
  • Helm
  • Git

Accedere ad Azure

Accedere al portale di Azure all'indirizzo https://portal.azure.com

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Creare una rete virtuale per il tuo cluster AKS

Nella home page del portale di Azure selezionare Crea una risorsa.

Screenshot che mostra come iniziare a creare una nuova rete virtuale nel portale di Azure.

Selezionare Rete>Rete virtuale.

Screenshot che mostra come selezionare una nuova rete virtuale da creare nel portale di Azure.

Nella pagina Informazioni di base scegliere una sottoscrizione e immettere i valori seguenti:

  • Gruppo di risorse: Crea nuovo>virtualnodesresourcegroup
  • Nome rete virtuale: myvirtualnetwork
  • Regione: East US

Screenshot che mostra come configurare la pagina Informazioni di base per la creazione della rete virtuale nel portale di Azure.

Nella pagina Indirizzi IP, configurare i seguenti spazi di indirizzamento e subnet:

Screenshot che mostra come configurare la pagina degli indirizzi IP per la creazione della rete virtuale nel portale di Azure.

Lasciare tutte le altre impostazioni predefinite, quindi selezionare Rivedi e crea.

Al termine della convalida, viene visualizzato un riepilogo delle impostazioni della rete virtuale. Selezionare Crea per inviare la richiesta di distribuzione della rete virtuale.

All’avvio della distribuzione, viene visualizzata una notifica che indica che la distribuzione è in corso. Viene visualizzata un'altra notifica quando la rete virtuale è stata distribuita.

Crea il tuo cluster AKS

Nella home page del portale di Azure selezionare Crea una risorsa.

Screenshot che mostra come iniziare a creare una nuova rete virtuale nel portale di Azure.

Selezionare Contenitori>Servizio Azure Kubernetes (AKS).

Schermata che mostra come selezionare un nuovo cluster AKS che si desidera creare nel portale di Azure.

Nella pagina Informazioni di base scegliere la stessa sottoscrizione usata per creare la rete virtuale e immettere i valori seguenti:

  • Gruppo di risorse: virtualnodesresourcegroup
  • Configurazione del set di impostazioni del cluster: Dev/Test
  • Nome del cluster Kubernetes: virtualnodescluster
  • Regione: East US
  • Versione di Kubernetes: qualsiasi versione che inizia con 1.30. , ad esempio 1.30.9
  • Aggiornamento automatico: Enabled with patch

Schermata che mostra come configurare la pagina Nozioni di base durante la creazione di un cluster AKS nel portale di Azure.

Nella pagina Pool di nodi selezionare qualsiasi SKU di macchina virtuale con almeno 4 vCPU e 16 GB di RAM per il pool di agentpool nodi. Questi nodi verranno usati per ospitare l'infrastruttura dei nodi virtuali. Non selezionare Enable virtual nodes: si riferisce alla precedente offerta di nodi virtuali per AKS.

Screenshot che mostra come configurare la pagina Pool di nodi per la creazione di un cluster AKS nel portale di Azure.

Nella pagina Rete immettere i valori seguenti:

  • Configurazione di rete: Azure CNI Node Subnet
  • Usa la tua rete virtuale di Azure: Enabled
  • Rete virtuale: myvirtualnetwork
  • Subnet del cluster: aks
  • Intervallo di indirizzi del servizio Kubernetes: 10.4.0.0/16
  • Indirizzo IP del servizio DNS Kubernetes: 10.4.0.10
  • Criteri di rete: Calico

Schermata che mostra come configurare la pagina di rete per la creazione di un cluster AKS nel portale di Azure.

Lasciare tutte le altre impostazioni predefinite, quindi selezionare Rivedi e crea.

Al termine della convalida, viene visualizzato un riepilogo delle impostazioni del cluster AKS. Seleziona Crea per inviare la richiesta di distribuzione del cluster AKS.

All’avvio della distribuzione, viene visualizzata una notifica che indica che la distribuzione è in corso. Un'altra notifica viene visualizzata quando il cluster AKS è stato distribuito.

Assegnare le autorizzazioni all'identità gestita del cluster AKS

Quando si distribuisce un cluster del servizio Azure Kubernetes, il servizio Azure Kubernetes crea un gruppo di risorse nodo nella stessa sottoscrizione per ospitare l'infrastruttura del cluster. Per impostazione predefinita, questo gruppo di risorse ha un nome come MC_<resource group>_<AKS cluster>_<region>. Per questa esercitazione, il gruppo di risorse del nodo deve avere il nome MC_virtualnodesresourcegroup_virtualnodescluster_eastus.

Una delle risorse create nel gruppo di risorse del nodo è un'identità gestita con il nome virtualnodescluster_agentpool. Passa a questa identità gestita e seleziona Assegnazioni di ruolo di Azure. Aggiungere quindi le due assegnazioni di ruolo seguenti:

  • Ambito: Resource group
  • Sottoscrizione: <your subscription name>
  • Gruppo di risorse: MC_virtualnodesresourcegroup_virtualnodescluster_eastus
  • Ruolo: Contributor

Questa assegnazione di ruolo consente la creazione di gruppi di contenitori ACI nel gruppo di risorse del nodo.

  • Ambito: Resource group
  • Sottoscrizione: <your subscription name>
  • Gruppo di risorse: virtualnodesresourcegroup
  • Ruolo: Contributor

Questa assegnazione di ruolo consente l'inserimento di gruppi di contenitori ACI nella rete virtuale creata in questo gruppo di risorse.

Screenshot che mostra le assegnazioni di ruolo aggiunte all'identità gestita di AKS.

Installare i nodi virtuali in Istanze di Azure Container usando il grafico Helm

Usa interfaccia della riga di comando di Azure per scaricare la configurazione e le credenziali del cluster AKS che hai creato. Questo configurerà kubectl per il tuo cluster AKS.

az login

az account set --subscription <your subscription ID>

az aks get-credentials --name virtualnodescluster --resource-group virtualnodesresourcegroup

Inoltre, il provider di risorse ACI verrà registrato nella sottoscrizione in modo da poter distribuire i gruppi di contenitori.

az provider register -n Microsoft.ContainerInstance

Clona il repository GitHub virtualnodesOnAzureContainerInstances. Il chart Helm per l'installazione di nodi virtuali in Istanze di Azure Container si trova nella cartella Helm/virtualnode.

Installare il grafico Helm usando il comando seguente:

helm install virtualnode <cloned repository location>\Helm\virtualnode

Nel giro di un minuto, un nuovo nodo virtuale verrà registrato nel cluster AKS e sarà nello stato Ready. È possibile controllare lo stato dei nodi del cluster del servizio Azure Kubernetes con kubectl.

kubectl get nodes

Schermata che mostra l'output del comando kubectl get nodes, con un nodo virtuale nello stato Ready.

Distribuire il primo pod su un nodo virtuale

È possibile interagire con nodi virtuali come qualsiasi altro nodo Kubernetes. Ad esempio, l'esempio YAML seguente distribuirà un pod sul nodo virtuale nel cluster AKS. Si noti l'uso di selettori di nodo e tollerazioni per posizionare correttamente il pod. È possibile distribuire YAML usando kubectl apply.

apiVersion: v1
kind: Pod
metadata:
  annotations:    
  name: demo-pod
spec:
  containers:
  - command:
    - /bin/bash
    - -c
    - 'counter=1; while true; do echo "Hello, World! Counter: $counter"; counter=$((counter+1)); sleep 1; done'
    image: mcr.microsoft.com/azure-cli
    name: hello-world-counter
    resources:
      limits:
        cpu: 2250m
        memory: 2256Mi
      requests:
        cpu: 100m
        memory: 128Mi
  nodeSelector:
    virtualization: virtualnode2
  tolerations:
  - effect: NoSchedule
    key: virtual-kubelet.io/provider
    operator: Exists

Dopo aver distribuito il pod, è possibile interagire con esso esattamente come si farebbe con un pod Kubernetes "normale".

Ad esempio, per visualizzare lo stato e gli eventi del pod (utili per trovare errori!):

kubectl describe pods demo-pod

Per visualizzare i log per il pod:

kubectl logs demo-pod

Per ottenere una shell per il pod:

kubectl exec demo-pod -it -- /bin/bash

Passaggi successivi

In questa esercitazione è stato creato un cluster AKS nel portale di Azure, sono stati distribuiti nodi virtuali in Istanze di Azure Container usando un chart Helm ed è stato distribuito un pod in un nodo virtuale. Ora hai una familiarità di base con l’esecuzione dei pod Kubernetes sul tuo nodo virtuale e puoi utilizzare fin da subito la maggior parte delle funzionalità e dei costrutti di Kubernetes su questi pod.

Per usare funzionalità o comportamenti specializzati dei nodi virtuali per i pod, vedere Personalizzazioni dei pod.

Per personalizzare l'installazione del nodo virtuale, vedere Personalizzazioni dei nodi.

Se si prevede di distribuire carichi di lavoro su larga scala (migliaia di pod al minuto) nei nodi virtuali, sono disponibili procedure consigliate e raccomandazioni.