Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Virtual Nodes v2 is een verbeterde stack van virtuele knooppunten die AKS verder uitbreidt dan vm-knooppunten door pods uit te voeren op serverloze compute in Azure Container Instances (ACI). Workloads schalen in seconden uit naar ACI zonder te wachten tot er nieuwe knooppunten zijn ingericht en u betaalt alleen voor de rekenkracht die u gebruikt zolang de pods draaien. Virtual Nodes v2 wordt geleverd als een AKS-clusterextensie.
Important
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals het is' en 'voor zover beschikbaar' en zijn uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning naar best vermogen. Zodoende zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Supported
- Initcontainers
- Aliassen voor hosts
- Hooks voor de levenscyclus van containers (
postStartenpreStop) -
kubectl execmet argumenten - Persistente volumes en PVC's (alleen Azure Files)
- VNet-peering
- NSG-gestuurd uitgaand verkeer
- NAT-gateway voor uitgaand verkeer
- Vertrouwelijke containers
- Maximaal 200 pods per virtueel knooppunt
Limitations
De volgende functies worden niet ondersteund:
- Windows-containers
- DaemonSets
- Poortdoorsturing
- IPv6
- Geautoriseerde IP-adresbereiken van API-server
- Azure CNI-overlay
- Cilium of NPM als netwerkbeleid
- Gebruik uw eigen (BYO) virtueel netwerk
- Meerdere extensie-exemplaren per cluster
- Standbypools
Beschikbaarheid en quotumlimieten voor resources
Virtual Nodes v2 is beschikbaar in alle Azure openbare cloudregio's waar Azure Container Instances VNet-SKU's ondersteunt. Zie beschikbaarheids- en quotumlimieten voor resources voor ACI voor meer informatie.
Prerequisites
- Azure CNI in de modus knooppuntsubnet
- Calico of geen als netwerkbeleid
- Identiteit voor workloads ingeschakeld
- Ten minste één knooppuntpool met een VM-grootte van 4 of meer vCPU's en 16 GiB of meer geheugen. Elk virtueel knooppunt reserveert ongeveer 3 vCPU's en 12 GiB geheugen op een AKS-knooppunt in uw cluster, dus zorg ervoor dat uw knooppunten voldoende resources hebben.
- k8s-extension versie 1.8 of hoger
-
kubectl1.30 of later
Registreer de ACI-resourceprovider:
az provider register --namespace Microsoft.ContainerInstance
Note
Voer de volgende opdracht uit als er een fout optreedt in een fase van het extensie-activeringsproces.
az provider register --namespace Microsoft.KubernetesConfig
Virtuele knooppunten v2 inschakelen
De extensie installeren:
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
Extensie-instellingen configureren
Het maken en bijwerken van bewerkingen ondersteunt de volgende configuratie-instellingen.
| Configuratie-instelling | Description |
|---|---|
replicaCount |
Aantal virtuele knooppunten. |
admissionControllerReplicaCount |
Aantal toegangscontrollerpods. |
podAnnotations |
Aantekeningen toegevoegd aan infrastructuurpods als een sleutel-waardetoewijzing. |
nodeSelector |
Labels die de AKS-knooppunten selecteren die infrastructuur en toegangscontrollerpods hosten. |
tolerations |
Toleranties toegepast op infrastructuur- en toegangscontrollerpods. |
affinity |
Aanvullende affiniteitsinstellingen zijn samengevoegd met de vereiste AKS-affiniteitsregels. |
zones |
Door puntkomma's gescheiden beschikbaarheidszones waar pods worden geïmplementeerd. |
nodeLabels |
Labels toegevoegd aan virtuele knooppunten als door komma's gescheiden key=value paren. |
De toegestane kubernetes.io labels zijn:
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
Controleer de extensie:
az k8s-extension show \
--name <extension-name> \
--cluster-type managedClusters \
--cluster-name <cluster-name> \
--resource-group <resource-group>
Bevestig provisioningState dit.Succeeded Het kan een paar minuten blijven Pending .
Controleer of de extensie-pods actief zijn in de naamruimte vn-system:
kubectl get pods --namespace vn-system
Een extensie bijwerken
az k8s-extension update --name <extension-name> --cluster-name <aks-cluster-name> --resource-group <aks-resource-group> --cluster-type managedClusters
Note
De --auto-upgrade-mode-parameter ondersteunt none, patch of compatible. Als u een specifieke extensieversie wilt vastmaken met behulp van --version, stelt u in --auto-upgrade-mode op none.
Toegang tot Azure Container Registry
Als u images wilt ophalen uit een privé-Azure Container Registry (ACR), gebruikt u de beheerde identiteit van de extensie of een Kubernetes-image pull secret.
De beheerde identiteit van de extensie gebruiken
Verdeel de AcrPull rol aan de beheerde identiteit die voor de extensie is gegenereerd. Deze rol verleent alle pods die worden uitgevoerd op de virtuele knooppunten van de extensie toegang tot het ophalen van installatiekopieën uit het register zonder extra podconfiguratie. U moet gemachtigd zijn om roltoewijzingen in het register te maken.
Haal de principal-id op van de beheerde identiteit van de extensie:
$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
Haal de resource-id van het containerregister op:
$acrId = az acr show --name <acr-name> --resource-group <acr-resource-group> --query id --output tsv
Wijs de AcrPull rol toe aan de beheerde identiteit van de extensie op het registerbereik:
az role assignment create --assignee-object-id $extensionPrincipalId --assignee-principal-type ServicePrincipal --role AcrPull --scope $acrId
Wacht enkele minuten totdat de roltoewijzing is doorgegeven voordat u workloads implementeert die installatiekopieën uit het register ophalen.
Een pull-geheim voor afbeeldingen gebruiken
Zie Kubernetes Pull Secret voor ACR-verificatie voor instructies.
Een workload implementeren op virtuele knooppunten v2
Plan pods op virtuele knooppunten met behulp van de virtualization: virtualnode2 knooppuntkiezer en de virtual-kubelet.io/provider tolerantie:
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
Sla het manifest op als demo.yamlen pas het toe.
kubectl apply -f demo.yaml
Controleer of de pods worden uitgevoerd.
kubectl get pods -l app=demo -o wide
Virtuele knooppunten v2 uitschakelen
Warning
Wanneer u de extensie voor virtuele knooppunten uitschakelt, wordt de verbinding met het AKS-cluster verbroken met de back-up Azure Container Instances containergroepen. Verwijder alle workloads die worden uitgevoerd op het virtuele knooppunt voordat u de extensie uitschakelt om zwevende exemplaren te voorkomen die blijven werken en kosten in rekening brengen.
Verwijder de extensie en schoon virtuele knooppuntbronnen op.
az k8s-extension delete \
--name <extension-name> \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--cluster-type managedClusters
kubectl delete node <virtual-node-name>