Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les nœuds virtuels v2 sont une pile de nœuds virtuels améliorée qui étend AKS au-delà des nœuds basés sur des machines virtuelles en exécutant des pods sur un calcul serverless dans Azure Container Instances (ACI). Les charges de travail sont transférées vers ACI en quelques secondes, sans avoir à attendre que de nouveaux nœuds soient provisionnés, et vous ne payez que pour la puissance de calcul que vous utilisez pendant l'exécution des pods. Les nœuds virtuels v2 sont fournis en tant qu’extension de cluster AKS.
Important
Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions préliminaires sont fournies « en l’état » et « selon leur disponibilité » et ne sont pas couvertes par les accords de niveau de service ni par la garantie limitée. Les versions préliminaires d’AKS sont partiellement couvertes par le support client, dans la limite du raisonnable. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :
Supported
- Initialiser les conteneurs
- Alias d’hôte
- Crochets de cycle de vie des conteneurs (
postStartetpreStop) -
kubectl execavec des arguments - Volumes persistants et PVC (Azure Files uniquement)
- Peering de réseaux virtuels
- Egress contrôlé par NSG
- NAT Gateway pour egress
- Conteneurs confidentiels
- Jusqu’à 200 pods par nœud virtuel
Limitations
Les fonctionnalités suivantes ne sont pas encore prises en charge :
- Conteneurs Windows
- DaemonSets
- Réacheminement de port
- IPv6
- Plages d’adresses IP autorisées du serveur d’API
- Superposition Azure CNI
- Cilium ou NPM comme stratégie réseau
- Apporter votre propre réseau virtuel (BYO)
- Plusieurs instances d’extension par cluster
- Pools En attente
Disponibilité des ressources et limites de quota
Les nœuds virtuels v2 sont disponibles dans toutes les régions de cloud public Azure où Azure Container Instances prend en charge les références SKU de réseau virtuel. Pour plus d’informations, consultez Les limites de disponibilité des ressources et de quota pour ACI.
Prerequisites
- Azure CNI en mode nœud-sous-réseau
- Calico ou aucun en tant que stratégie réseau
- Identité de charge de travail activée
- Au moins un pool de nœuds avec une taille de machine virtuelle de 4 processeurs virtuels et 16+ Gio de mémoire. Chaque nœud virtuel réserve environ 3 processeurs virtuels et 12 Gio de mémoire sur un nœud AKS de votre cluster, de sorte que vos nœuds disposent de suffisamment de ressources.
- Extension Azure k8s version 1.8 ou ultérieure
-
kubectl1.30 ou version ultérieure
Inscrivez le fournisseur de ressources ACI :
az provider register --namespace Microsoft.ContainerInstance
Note
Exécutez la commande suivante si vous rencontrez une erreur à n’importe quel stade du processus d’activation de l’extension.
az provider register --namespace Microsoft.KubernetesConfig
Activer les nœuds virtuels v2
Installez l’extension :
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
Configurer les paramètres d’extension
Les opérations de création et de mise à jour prennent en charge les paramètres de configuration suivants.
| Paramètre de configuration | Description |
|---|---|
replicaCount |
Nombre de nœuds virtuels. |
admissionControllerReplicaCount |
Nombre de pods de contrôleur d’admission. |
podAnnotations |
Annotations ajoutées aux pods d’infrastructure en tant que mappage clé-valeur. |
nodeSelector |
Étiquettes qui sélectionnent les nœuds AKS qui hébergent les pods d’infrastructure et du contrôleur d’admission. |
tolerations |
Tolérances appliquées aux pods de contrôleur d’infrastructure et d’admission. |
affinity |
Paramètres d’affinité supplémentaires fusionnés avec les règles d’affinité AKS requises. |
zones |
Zones de disponibilité délimitées par des points-virgules où les pods sont déployés. |
nodeLabels |
Étiquettes ajoutées aux nœuds virtuels en tant que paires key=value séparées par des virgules. |
Les étiquettes kubernetes.io autorisées sont les suivantes :
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
Vérifiez l’extension :
az k8s-extension show \
--name <extension-name> \
--cluster-type managedClusters \
--cluster-name <cluster-name> \
--resource-group <resource-group>
Confirmez que provisioningState est Succeeded. Il peut rester dans l'état Pending pendant quelques minutes.
Vérifiez que les pods d’extension sont en cours d’exécution dans l’espace de noms vn-system :
kubectl get pods --namespace vn-system
Mettre à jour une extension
az k8s-extension update --name <extension-name> --cluster-name <aks-cluster-name> --resource-group <aks-resource-group> --cluster-type managedClusters
Note
Le paramètre --auto-upgrade-modeprend en charge none, patch ou compatible. Pour épingler une version d’extension spécifique à l’aide de --version, définissez --auto-upgrade-mode sur none.
Accès à Azure Container Registry
Pour extraire des images d’un Azure Container Registry (ACR) privé , utilisez l’identité managée de l’extension ou un secret d’extraction d’image Kubernetes.
Utiliser l’identité managée de l’extension
Accordez le rôle AcrPull à l’identité managée générée pour l’extension. Ce rôle accorde à tous les pods s’exécutant sur l’accès aux nœuds virtuels de l’extension pour extraire des images à partir du Registre sans configuration de pod supplémentaire. Vous devez avoir l’autorisation de créer des attributions de rôles sur le registre.
Obtenez l’ID principal de l’identité managée de l’extension :
$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
Obtenez l’ID de ressource du registre de conteneurs :
$acrId = az acr show --name <acr-name> --resource-group <acr-resource-group> --query id --output tsv
Attribuez le AcrPull rôle à l’identité managée d’extension dans l’étendue du Registre :
az role assignment create --assignee-object-id $extensionPrincipalId --assignee-principal-type ServicePrincipal --role AcrPull --scope $acrId
Patientez plusieurs minutes pour que l’attribution de rôle se propage avant de déployer des charges de travail qui extraient des images à partir du registre.
Utiliser un secret d’extraction d’image
Pour obtenir des instructions, consultez Secret d’extraction Kubernetes pour l’authentification ACR.
Déployer une charge de travail sur des nœuds virtuels v2
Planifiez des pods sur des nœuds virtuels à l’aide du virtualization: virtualnode2 sélecteur de nœuds et de la virtual-kubelet.io/provider tolérance :
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
Enregistrez le manifeste sous demo.yaml, puis appliquez-le.
kubectl apply -f demo.yaml
Vérifiez que les pods sont en cours d'exécution.
kubectl get pods -l app=demo -o wide
Désactiver les nœuds virtuels v2
Warning
Lorsque vous désactivez l’extension de nœud virtuel, le cluster AKS se déconnecte des groupes de conteneurs de stockage Azure Container Instances. Pour éviter les instances orphelines qui continuent d’exécuter et entraînent des frais, supprimez toutes les charges de travail exécutées sur le nœud virtuel avant de désactiver l’extension.
Supprimez l’extension et nettoyez les ressources de nœud virtuel.
az k8s-extension delete \
--name <extension-name> \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--cluster-type managedClusters
kubectl delete node <virtual-node-name>