Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Virtuální uzly v2 je vylepšený zásobník virtuálních uzlů, který rozšiřuje AKS nad uzly založené na virtuálních počítačích spouštěním podů na bezserverových výpočetních prostředcích v Azure Container Instances (ACI). Úlohy se zprovozní do ACI během několika sekund, aniž by čekaly na zřízení nových uzlů a platíte jenom za výpočetní prostředky, které používáte, zatímco jsou pody spuštěné. Virtuální uzly v2 se doručují jako rozšíření clusteru AKS.
Important
Funkce AKS ve verzi Preview jsou k dispozici na bázi samoobsluhy a dobrovolného přihlášení. Ukázky jsou poskytovány "tak, jak jsou" a "dle dostupnosti" a jsou vyloučeny ze smluv o úrovni služeb a z omezené záruky. Předběžné verze AKS jsou částečně pokryty zákaznickou podporou podle možností. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
Podporováno
- Inicializační kontejnery
- Aliasy hostitele
- Háky životního cyklu kontejnerů (
postStartapreStop) -
kubectl execs argumenty - Trvalé svazky a pvcs (pouze Azure Files)
- Propojení virtuálních sítí
- Výchozí přenos dat řízený skupinou zabezpečení sítě
- NAT Gateway pro výchozí přenos dat
- Důvěrné kontejnery
- Až 200 podů na virtuální uzel
Limitations
Následující funkce nejsou podporované:
- Kontejnery Windows
- DaemonSets
- Přesměrování portů
- protokol IPv6
- Rozsahy IP adres autorizovaných serverem rozhraní API
- Azure CNI překryvná vrstva
- Cilium nebo NPM jako síťová zásada
- Používání vlastní virtuální sítě (BYO)
- Více instancí rozšíření na cluster
- Pohotovostní fondy
Dostupnost prostředků a omezení kvót
Virtuální uzly v2 jsou dostupné ve všech Azure oblastech veřejného cloudu, kde Azure Container Instances podporuje skladové položky virtuální sítě. Další informace najdete v tématu Omezení dostupnosti prostředků a kvót pro ACI.
Prerequisites
- Azure CNI v režimu podsítě uzlu
- Calico nebo žádná jako zásady sítě
- Povolená identita úloh
- Alespoň jeden fond uzlů s velikostí virtuálního počítače 4 a více virtuálních procesorů a 16+ GiB paměti. Každý virtuální uzel si v clusteru vyhrazuje přibližně 3 virtuální procesory a 12 GiB paměti na uzlu AKS, takže zajistěte, aby uzly měly dostatek prostředků.
- Rozšíření k8s verze 1.8 nebo vyšší
-
kubectl1.30 nebo novější
Zaregistrujte poskytovatele prostředků ACI:
az provider register --namespace Microsoft.ContainerInstance
Note
Pokud v jakékoli fázi procesu povolení rozšíření dojde k chybě, spusťte následující příkaz.
az provider register --namespace Microsoft.KubernetesConfig
Povolení virtuálních uzlů v2
Nainstalujte rozšíření:
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
Konfigurace nastavení rozšíření
Operace vytváření a aktualizace podporují následující nastavení konfigurace.
| Nastavení konfigurace | Description |
|---|---|
replicaCount |
Počet virtuálních uzlů |
admissionControllerReplicaCount |
Počet podů kontroleru přístupu |
podAnnotations |
Poznámky přidané do podů infrastruktury jako mapa klíč-hodnota |
nodeSelector |
Popisky, které vyberou uzly AKS, které hostují pody infrastruktury a kontroleru přístupu. |
tolerations |
Tolerance použité u podů infrastruktury a kontroleru přístupu |
affinity |
Další nastavení spřažení sloučená s požadovanými pravidly spřažení AKS |
zones |
Zóny dostupnosti oddělené středníkem, ve kterých jsou nasazeny pody. |
nodeLabels |
Popisky přidané do virtuálních uzlů jako dvojice oddělené key=value čárkami |
Povolené kubernetes.io popisky jsou:
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
Ověřte rozšíření:
az k8s-extension show \
--name <extension-name> \
--cluster-type managedClusters \
--cluster-name <cluster-name> \
--resource-group <resource-group>
Potvrďte, že provisioningState je Succeeded. Může zůstat Pending několik minut.
Ověřte, že pody rozšíření běží v vn-system oboru názvů:
kubectl get pods --namespace vn-system
Aktualizace rozšíření
az k8s-extension update --name <extension-name> --cluster-name <aks-cluster-name> --resource-group <aks-resource-group> --cluster-type managedClusters
Note
Parametr --auto-upgrade-mode podporuje none, patchnebo compatible. Pokud chcete připnout konkrétní verzi rozšíření pomocí --versionparametru , nastavte --auto-upgrade-mode na nonehodnotu .
přístup k Azure Container Registry
Pokud chcete vyžádat image z privátní Azure Container Registry (ACR), použijte spravovanou identitu rozšíření nebo tajný klíč pro vyžádání image Kubernetes.
Použití spravované identity rozšíření
AcrPull Udělte roli spravované identitě vygenerované pro rozšíření. Tato role uděluje všem podům spuštěným na virtuálních uzlech rozšíření přístup k načtení imagí z registru bez další konfigurace podu. Musíte mít oprávnění k vytváření přiřazení rolí v registru.
Získejte ID objektu zabezpečení spravované identity rozšíření:
$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
Získejte ID prostředku registru kontejneru:
$acrId = az acr show --name <acr-name> --resource-group <acr-resource-group> --query id --output tsv
AcrPull Přiřaďte roli spravované identitě rozšíření v oboru registru:
az role assignment create --assignee-object-id $extensionPrincipalId --assignee-principal-type ServicePrincipal --role AcrPull --scope $acrId
Před nasazením úloh, které načítá image z registru, počkejte několik minut, než se přiřazení role rozšíří.
Použití tajného kódu pro vyžádání obrázku
Pokyny najdete v tématu Kubernetes Pull Secret pro ověřování ACR.
Nasazení úlohy do virtuálních uzlů v2
Naplánujte pody na virtuálních uzlech pomocí selektoru virtualization: virtualnode2virtual-kubelet.io/provider uzlu a tolerance:
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
Uložte manifest jako demo.yamla pak ho použijte.
kubectl apply -f demo.yaml
Ověřte, že jsou pody spuštěné.
kubectl get pods -l app=demo -o wide
Zakázání virtuálních uzlů v2
Výstraha
Když rozšíření virtuálního uzlu zakážete, cluster AKS se odpojí od záložních Azure Container Instances skupin kontejnerů. Pokud se chcete vyhnout osamoceným instancím, které budou dál běžet a účtují poplatky, odstraňte všechny úlohy spuštěné na virtuálním uzlu, než rozšíření zakážete.
Odstraňte rozšíření a vyčistěte prostředky virtuálního uzlu.
az k8s-extension delete \
--name <extension-name> \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--cluster-type managedClusters
kubectl delete node <virtual-node-name>