Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Virtual Nodes v2 är en förbättrad stack för virtuella noder som utökar AKS bortom VM-baserade noder genom att köra poddar på serverlös beräkning i Azure Container Instances (ACI). Arbetsbelastningar skalas ut till ACI på några sekunder utan att vänta på att nya noder ska provisioneras och du betalar bara för den beräkning du använder medan poddarna körs. Virtuella noder v2 levereras som ett AKS-klustertillägg.
Important
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
Supported
- Init-containrar
- Värdalias
- Containerlivscykelkrokar (
postStartochpreStop) -
kubectl execmed argument - Beständiga volymer och datorer (endast Azure Files)
- VNet-peering
- NSG-kontrollerad utgående
- NAT Gateway för utgående trafik
- Konfidentiella behållare
- Upp till 200 poddar per virtuell nod
Limitations
Följande funktioner stöds inte:
- Windows kontainers
- DaemonSets
- Portvidarebefordring
- IPv6
- De API-serverauktoriserade IP-intervallen
- Azure CNI-överlägg
- Cilium eller NPM som nätverksprincip
- Ta med ditt eget virtuella nätverk (BYO)
- Flera tilläggsinstanser per kluster
- Väntelägespooler
Resurstillgänglighet och kvotgränser
Virtuella noder v2 är tillgängliga i alla Azure offentliga molnregioner där Azure Container Instances stöder VNet-SKU:er. Mer information finns i Resurstillgänglighet och kvotgränser för ACI.
Prerequisites
- Azure CNI i nod-undernätsläge
- Calico eller ingen som nätverksprincip
- Arbetsbelastningsidentitet aktiverad
- Minst en nodpool med en VM-storlek på 4+ vCPU:er och 16+ GiB minne. Varje virtuell nod reserverar cirka 3 vCPU:er och 12 GiB minne på en AKS-nod i ditt kluster, så se till att noderna har tillräckligt med resurser.
- k8s-extension version 1.8 eller senare
-
kubectl1.30 eller senare
Registrera ACI-resursprovidern:
az provider register --namespace Microsoft.ContainerInstance
Note
Kör följande kommando om du stöter på ett fel i något skede av processen för att aktivera tillägget.
az provider register --namespace Microsoft.KubernetesConfig
Aktivera virtuella noder v2
Installera tillägget:
az k8s-extension create \
--name <extension-name> \
--extension-type Microsoft.virtualnodes \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--cluster-type managedClusters \
--configuration-settings replicaCount=1 # specifies number of virtual nodes - optional
Konfigurera tilläggsinställningar
Skapa och uppdatera åtgärder stöder följande konfigurationsinställningar.
| Konfigurationsinställning | Description |
|---|---|
replicaCount |
Antal virtuella noder. |
admissionControllerReplicaCount |
Antal poddar för antagningskontrollanter. |
podAnnotations |
Anteckningar som lagts till i infrastrukturpoddar som en nyckel/värde-karta. |
nodeSelector |
Etiketter som väljer DE AKS-noder som är värdar för infrastruktur- och antagningskontrollantpoddar. |
tolerations |
Toleranser som tillämpas på poddar för infrastruktur- och antagningskontrollanter. |
affinity |
Ytterligare tillhörighetsinställningar sammanfogade med nödvändiga AKS-tillhörighetsregler. |
zones |
Semikolonavgränsade tillgänglighetszoner där poddar distribueras. |
nodeLabels |
Etiketter som har lagts till i virtuella noder som kommaavgränsade key=value par. |
De tillåtna kubernetes.io etiketterna är:
beta.kubernetes.io/archbeta.kubernetes.io/instance-typebeta.kubernetes.io/osfailure-domain.beta.kubernetes.io/regionfailure-domain.beta.kubernetes.io/zonekubernetes.io/archkubernetes.io/hostnamekubernetes.io/osnode.kubernetes.io/instance-typetopology.kubernetes.io/regiontopology.kubernetes.io/zone
Kontrollera tillägget:
az k8s-extension show \
--name <extension-name> \
--cluster-type managedClusters \
--cluster-name <cluster-name> \
--resource-group <resource-group>
Bekräfta provisioningState är Succeeded. Det kan stanna Pending i några minuter.
Kontrollera att tilläggspoddar körs i vn-system namnområdet :
kubectl get pods --namespace vn-system
Uppdatera ett tillägg
az k8s-extension update --name <extension-name> --cluster-name <aks-cluster-name> --resource-group <aks-resource-group> --cluster-type managedClusters
Note
Parametern --auto-upgrade-mode stöder none, patcheller compatible. Om du vill fästa en specifik tilläggsversion med hjälp --versionav anger du --auto-upgrade-mode till none.
Azure Container Registry åtkomst
Om du vill hämta avbildningar från en privat Azure Container Registry (ACR) använder du tilläggets hanterade identitet eller en Kubernetes-avbildningshämtningshemlighet.
Använda tilläggets hanterade identitet
AcrPull Bevilja rollen till den hanterade identitet som genererats för tillägget. Den här rollen ger alla poddar som körs på tilläggets virtuella noder åtkomst till att hämta avbildningar från registret utan extra poddkonfiguration. Du måste ha behörighet att skapa rolltilldelningar i registret.
Hämta huvud-ID:t för den hanterade identiteten för tillägget:
$extensionPrincipalId = az k8s-extension show --name <extension-name> --cluster-name <aks-cluster-name> --resource-group <aks-resource-group> --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv
Hämta resurs-ID för containerregistret:
$acrId = az acr show --name <acr-name> --resource-group <acr-resource-group> --query id --output tsv
AcrPull Tilldela rollen till den tilläggshanterade identiteten i registeromfånget:
az role assignment create --assignee-object-id $extensionPrincipalId --assignee-principal-type ServicePrincipal --role AcrPull --scope $acrId
Vänta några minuter innan rolltilldelningen sprids innan du distribuerar arbetsbelastningar som hämtar avbildningar från registret.
Använda en bildhämtningshemlighet
Instruktioner finns i Kubernetes Pull Secret för ACR-autentisering.
Distribuera en arbetsbelastning till virtuella noder v2
Schemalägg poddar på virtuella noder med hjälp av virtualization: virtualnode2 nodväljaren och toleransen virtual-kubelet.io/provider :
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo
spec:
replicas: 3
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: hello
image: mcr.microsoft.com/azuredocs/aci-helloworld
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: "1"
memory: 1Gi
nodeSelector:
virtualization: virtualnode2
kubernetes.io/os: linux
tolerations:
- key: virtual-kubelet.io/provider
operator: Exists
effect: NoSchedule
Spara manifestet som demo.yamloch tillämpa det sedan.
kubectl apply -f demo.yaml
Kontrollera att poddarna körs.
kubectl get pods -l app=demo -o wide
Inaktivera virtuella noder v2
Varning
När du inaktiverar det virtuella nodtillägget kopplas AKS-klustret från Azure Container Instances containergrupper. Undvik frikopplade instanser som fortsätter att köras och medföra kostnader genom att ta bort alla arbetsbelastningar som körs på den virtuella noden innan du inaktiverar tillägget.
Ta bort tillägget och rensa virtuella nodresurser.
az k8s-extension delete \
--name <extension-name> \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--cluster-type managedClusters
kubectl delete node <virtual-node-name>