Självstudie: Distribuera virtuella noder på Azure Container Instances i ditt Azure Kubernetes Service-kluster
I den här självstudien använder du Azure Portal för att distribuera ett AKS-kluster (Azure Kubernetes Service). När du har distribuerat AKS-klustret använder du ett Helm-diagram för att distribuera virtuella noder på Azure Container Instances.
Förutsättningar
Den här självstudien förutsätter att du har följande verktyg installerade:
- Azure CLI
- kubectl (version 1.29+)
- Helm
- Git
Logga in på Azure
Logga in på Azure-portalen på https://portal.azure.com
Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Skapa ett virtuellt nätverk för ditt AKS-kluster
På startsidan Azure Portal väljer du Skapa en resurs.
Välj Nätverk Virtuellt>nätverk.
På sidan Grundläggande väljer du en prenumeration och anger följande värden:
- Resursgrupp: Skapa ny>
virtualnodesresourcegroup
- Namn på virtuellt nätverk:
myvirtualnetwork
- Region:
East US
På sidan IP-adresser konfigurerar du följande adressutrymmen och undernät:
- 10.0.0.0/16:
default
undernät med storlek /24 - 10.1.0.0/16:
aks
undernät med storlek /16 - 10.2.0.0/16:
cg
undernät med storlek /16- Undernätet
cg
måste ha en delegering av undernätet tillMicrosoft.ContainerInstance/containerGroups
. - Om dina poddar som körs i virtuella noder behöver utgående nätverk måste du konfigurera en NAT-gateway och konfigurera
cg
undernätet så att det används. Mer information om den här konfigurationen finns i Konfigurera en NAT-gateway för statisk IP-adress för utgående trafik från en containergrupp.
- Undernätet
Lämna alla andra inställningar som standardinställningar och välj sedan Granska + skapa.
När verifieringen är klar visas en sammanfattning av inställningarna för det virtuella nätverket. Välj Skapa för att skicka din begäran om distribution av virtuella nätverk.
När distributionen startar visas ett meddelande som anger att distributionen pågår. Ett annat meddelande visas när det virtuella nätverket har distribuerats.
Skapa ditt AKS-kluster
På startsidan Azure Portal väljer du Skapa en resurs.
Välj Containrar>Azure Kubernetes Service (AKS).
På sidan Grundläggande väljer du samma prenumeration som du använde för att skapa det virtuella nätverket och anger följande värden:
- Resursgrupp:
virtualnodesresourcegroup
- Förinställd konfiguration av kluster:
Dev/Test
- Kubernetes-klusternamn:
virtualnodescluster
- Region:
East US
- Kubernetes-version: Alla versioner som börjar med
1.29.
– till exempel1.29.10
- Automatisk uppgradering:
Enabled with patch
På sidan Nodpooler väljer du valfri VM-SKU med minst 4 vCPU:er och 16 GB RAM-minne för nodpoolenagentpool
. Dessa noder används som värd för infrastrukturen för virtuella noder. Välj Enable virtual nodes
inte – detta refererar till det tidigare erbjudandet för virtuella noder för AKS.
På sidan Nätverk anger du följande värden:
- Nätverkskonfiguration:
Azure CNI Node Subnet
- Ta med ditt eget virtuella Azure-nätverk:
Enabled
- Virtuellt nätverk:
myvirtualnetwork
- Klusterundernät:
aks
- Kubernetes-tjänstens adressintervall:
10.4.0.0/16
- Ip-adress för Kubernetes DNS-tjänsten:
10.4.0.10
- Nätverksprincip:
Calico
Lämna alla andra inställningar som standardinställningar och välj sedan Granska + skapa.
När valideringen är klar visas en sammanfattning av AKS-klustrets inställningar. Välj Skapa för att skicka din begäran om distribution av AKS-kluster.
När distributionen startar visas ett meddelande som anger att distributionen pågår. Ett annat meddelande visas när AKS-klustret har distribuerats.
Tilldela behörigheter till aks-klustrets hanterade identitet
När du distribuerar ett AKS-kluster skapar AKS en nodresursgrupp i samma prenumeration som värd för klusterinfrastrukturen. Som standard har den här resursgruppen ett namn som MC_<resource group>_<AKS cluster>_<region>
. I den här självstudien ska nodresursgruppen ha namnet MC_virtualnodesresourcegroup_virtualnodescluster_eastus
.
En av resurserna som skapas i nodresursgruppen är en hanterad identitet med namnet virtualnodescluster_agentpool
. Navigera till den här hanterade identiteten och välj Azure-rolltilldelningar. Lägg sedan till följande två rolltilldelningar:
- Omfång:
Resource group
- Prenumeration:
<your subscription name>
- Resursgrupp:
MC_virtualnodesresourcegroup_virtualnodescluster_eastus
- Roll:
Contributor
Med den här rolltilldelningen kan du skapa ACI-containergrupper i nodresursgruppen.
- Omfång:
Resource group
- Prenumeration:
<your subscription name>
- Resursgrupp:
virtualnodesresourcegroup
- Roll:
Contributor
Med den här rolltilldelningen kan ACI-containergrupper matas in i det virtuella nätverk som du skapade i den här resursgruppen.
Installera virtuella noder på Azure Container Instances med hjälp av Helm-diagrammet
Använd Azure CLI för att hämta konfigurationen och autentiseringsuppgifterna för AKS-klustret som du skapade. Detta konfigurerar kubectl för ditt AKS-kluster.
az login
az account set --subscription <your subscription ID>
az aks get-credentials --name virtualnodescluster --resource-group virtualnodesresourcegroup
Dessutom registrerar vi ACI-resursprovidern för din prenumeration så att du kan distribuera containergrupper.
az provider register -n Microsoft.ContainerInstance
Klona GitHub-lagringsplatsen virtualnodesOnAzureContainerInstances. Helm-diagrammet för att installera virtuella noder på Azure Container Instances finns i Helm/virtualnode
mappen .
Installera Helm-diagrammet med följande kommando:
helm install virtualnode <cloned repository location>\Helm\virtualnode
Inom en minut registreras en ny virtuell nod och i tillståndet Klar i AKS-klustret. Du kan kontrollera statusen för dina AKS-klusternoder med kubectl.
kubectl get nodes
Distribuera din första podd till en virtuell nod
Du kan interagera med virtuella noder som andra Kubernetes-noder. Exempel-YAML nedan distribuerar till exempel en podd till den virtuella noden i AKS-klustret – observera användningen av nodväljare och toleranser för att placera podden på rätt sätt. Du kan distribuera YAML med 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
När podden har distribuerats kan du interagera med den precis som en "normal" Kubernetes-podd.
Om du till exempel vill se poddstatus och händelser (användbart för att hitta fel!):
kubectl describe pods demo-pod
Så här visar du loggar för podden:
kubectl logs demo-pod
Så här hämtar du ett gränssnitt för podden:
kubectl exec demo-pod -it -- /bin/bash
Nästa steg
I den här självstudien skapade du ett AKS-kluster i Azure Portal, distribuerade virtuella noder på Azure Container Instances med hjälp av ett Helm-diagram och distribuerade en podd till din virtuella nod. Nu har du grundläggande kunskaper om hur du kör Kubernetes-poddar på din virtuella nod, och du kan använda de flesta Kubernetes-funktioner och konstruktioner på dessa poddar direkt!
Om du vill använda specialiserade funktioner eller beteenden för virtuella noder för dina poddar kan du läsa Poddanpassningar.
Om du vill anpassa installationen av den virtuella noden läser du Nodanpassningar.
Om du planerar att distribuera storskaliga arbetsbelastningar (tusentals poddar per minut) på virtuella noder har vi metodtips och rekommendationer.