Condividi tramite


Esercitazione: Distribuire nodi virtuali in Istanze di Azure Container nel cluster servizio Azure Kubernetes

In questa esercitazione si userà portale di Azure per distribuire un cluster servizio Azure Kubernetes (servizio Azure Kubernetes). Dopo aver distribuito il cluster del servizio Azure Kubernetes, usare un grafico Helm per distribuire i nodi virtuali in Istanze di Azure Container.

Prerequisiti

Questa esercitazione presuppone che siano installati gli strumenti seguenti:

  • Interfaccia della riga di comando di Azure
  • kubectl (versione 1.29+)
  • 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 cluster del servizio Azure Kubernetes

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
  • Area: 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 gli spazi di indirizzi e le subnet seguenti:

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.

Creare il cluster del servizio Azure Kubernetes

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.

Screenshot che mostra come selezionare un nuovo cluster del servizio Azure Kubernetes che si vuole 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
  • Area: East US
  • Versione di Kubernetes: qualsiasi versione che inizia con 1.29. , ad esempio 1.29.10
  • Aggiornamento automatico: Enabled with patch

Screenshot che mostra come configurare la pagina Informazioni di base per la creazione del cluster del servizio Azure Kubernetes 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: si riferisce ai nodi virtuali precedenti offerti per il servizio Azure Kubernetes Enable virtual nodes .

Screenshot che mostra come configurare la pagina Pool di nodi per la creazione del cluster del servizio Azure Kubernetes nel portale di Azure.

Nella pagina Rete immettere i valori seguenti:

  • Configurazione di rete: Azure CNI Node Subnet
  • Bring Your Own Azure Virtual Network (Bring Your Own Azure Virtual Network): 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

Screenshot che mostra come configurare la pagina Rete per la creazione del cluster del servizio Azure Kubernetes 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 del servizio Azure Kubernetes. Selezionare Crea per inviare la richiesta di distribuzione del cluster del servizio Azure Kubernetes.

All’avvio della distribuzione, viene visualizzata una notifica che indica che la distribuzione è in corso. Quando il cluster del servizio Azure Kubernetes è stato distribuito, viene visualizzata un'altra notifica.

Assegnare autorizzazioni all'identità gestita del cluster del servizio Azure Kubernetes

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. Passare a questa identità gestita e selezionare 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 del servizio Azure Kubernetes.

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

Usare l'interfaccia della riga di comando di Azure per eseguire il pull della configurazione e delle credenziali per il cluster del servizio Azure Kubernetes creato. Verrà configurato kubectl per il cluster del servizio Azure Kubernetes.

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

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

Installare il grafico Helm usando il comando seguente:

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

Entro un minuto, un nuovo nodo virtuale verrà registrato e in uno stato Pronto nel cluster del servizio Azure Kubernetes. È possibile controllare lo stato dei nodi del cluster del servizio Azure Kubernetes con kubectl.

kubectl get nodes

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

Distribuire il primo pod in un nodo virtuale

È possibile interagire con nodi virtuali come qualsiasi altro nodo Kubernetes. Ad esempio, l'esempio YAML seguente distribuirà un pod nel nodo virtuale nel cluster del servizio Azure Kubernetes. Si noti l'uso di selettori di nodo e tollerazioni per posizionare il pod in modo appropriato. È 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 del servizio Azure Kubernetes in portale di Azure, sono stati distribuiti nodi virtuali in Istanze di Azure Container usando un grafico Helm e è stato distribuito un pod nel nodo virtuale. Ora si ha familiarità di base con come eseguire i pod Kubernetes nel nodo virtuale ed è possibile usare la maggior parte delle funzionalità e dei costrutti di Kubernetes in questi pod predefiniti.

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.