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.
Selezionare Rete>Rete virtuale.
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
Nella pagina Indirizzi IP configurare gli spazi di indirizzi e le subnet seguenti:
- 10.0.0.0/16:
default
subnet con dimensioni /24 - 10.1.0.0/16:
aks
subnet con dimensioni /16 - 10.2.0.0/16:
cg
subnet con dimensioni /16- La
cg
subnet deve avere una delega della subnet aMicrosoft.ContainerInstance/containerGroups
. - Se i pod in esecuzione nei nodi virtuali necessitano di rete in uscita, è necessario configurare un gateway NAT e configurare la
cg
subnet per usarla. Per istruzioni su questa configurazione, vedere Configurare un gateway NAT per l'indirizzo IP statico per il traffico in uscita da un gruppo di contenitori.
- La
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.
Selezionare Contenitori>Servizio Azure Kubernetes.
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 esempio1.29.10
- Aggiornamento automatico:
Enabled with patch
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
.
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
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.
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
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.