Vytvoření a konfigurace clusteru Azure Kubernetes Services (AKS) pro použití virtuálních uzlů na webu Azure Portal
Virtuální uzly umožňují síťovou komunikaci mezi pody, které běží ve službě Azure Container Instances (ACI) a clustery Azure Kubernetes Service (AKS). K zajištění této komunikace se vytvoří podsíť virtuální sítě a přiřadí se delegovaná oprávnění. Virtuální uzly fungují jenom s clustery AKS vytvořenými pomocí pokročilých sítí (Azure CNI). Clustery AKS se ve výchozím nastavení vytvářejí se základními sítěmi (kubenet).
V tomto článku se dozvíte, jak vytvořit virtuální síť a podsítě a pak nasadit cluster AKS, který používá pokročilé sítě pomocí webu Azure Portal.
Poznámka:
Přehled dostupnosti a omezení oblasti virtuálních uzlů najdete v tématu Použití virtuálních uzlů v AKS.
Než začnete
Potřebujete poskytovatele služeb ACI zaregistrovaného ve vašem předplatném.
Pomocí příkazu zkontrolujte stav registrace
az provider list
zprostředkovatele ACI.az provider list --query "[?contains(namespace,'Microsoft.ContainerInstance')]" -o table
Následující příklad výstupu ukazuje, že je zaregistrovaný zprostředkovatel Microsoft.ContainerInstance:
Namespace RegistrationState RegistrationPolicy --------------------------- ------------------- -------------------- Microsoft.ContainerInstance Registered RegistrationRequired
Pokud je zprostředkovatel notRegistered, zaregistrujte ho
az provider register
pomocí příkazu.az provider register --namespace Microsoft.ContainerInstance
Vytvoření clusteru AKS
- Přejděte na domovskou stránku webu Azure Portal.
- Vyberte Vytvořit kontejnery prostředků>.
- V prostředku Azure Kubernetes Service (AKS) vyberte Vytvořit.
- Na stránce Základy nakonfigurujte následující možnosti:
- Podrobnosti projektu: Vyberte předplatné Azure a pak vyberte nebo vytvořte skupinu prostředků Azure, například myResourceGroup.
- Podrobnosti o clusteru: Zadejte název clusteru Kubernetes, například myAKSCluster. Vyberte oblast a verzi Kubernetes pro cluster AKS.
- Vyberte Další: Fondy uzlů a zaškrtněte políčko *Povolit virtuální uzly.
- Vyberte Zkontrolovat a vytvořit.
- Po dokončení ověření vyberte Vytvořit.
Ve výchozím nastavení tento proces vytvoří identitu spravovaného clusteru, která se používá ke komunikaci clusteru a integraci s jinými službami Azure. Další informace najdete v tématu Použití spravovaných identit. Jako identitu clusteru můžete použít také instanční objekt.
Tento proces nakonfiguruje cluster pro pokročilé sítě a virtuální uzly tak, aby používal vlastní podsíť virtuální sítě Azure. Podsíť má delegovaná oprávnění pro připojení prostředků Azure mezi clusterem AKS. Pokud ještě nemáte delegovanou podsíť, Azure Portal vytvoří a nakonfiguruje virtuální síť a podsíť Azure s virtuálními uzly.
Připojení ke clusteru
Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít ke spuštění kroků v tomto článku. Má předinstalované obecné nástroje Azure, které jsou nakonfigurované pro použití s vaším účtem. Ke správě clusteru Kubernetes použijte klienta příkazového řádku Kubernetes kubectl. Klient kubectl
je předinstalovaný ve službě Azure Cloud Shell.
Pomocí příkazu nakonfigurujte
kubectl
připojení ke clusteruaz aks get-credentials
Kubernetes. Následující příklad získá přihlašovací údaje pro název clusteru myAKSCluster ve skupině prostředků myResourceGroup:az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Ověřte připojení ke clusteru pomocí příkazu
kubectl get nodes
.kubectl get nodes
Následující příklad výstupu ukazuje jeden uzel virtuálního počítače vytvořený a virtuální linuxový uzel s názvem virtual-node-aci-linux:
NAME STATUS ROLES AGE VERSION virtual-node-aci-linux Ready agent 28m v1.11.2 aks-agentpool-14693408-0 Ready agent 32m v1.11.2
Nasazení ukázkové aplikace
V Azure Cloud Shellu vytvořte soubor s názvem
virtual-node.yaml
a zkopírujte ho do následujícího YAML:apiVersion: apps/v1 kind: Deployment metadata: name: aci-helloworld spec: replicas: 1 selector: matchLabels: app: aci-helloworld template: metadata: labels: app: aci-helloworld spec: containers: - name: aci-helloworld image: mcr.microsoft.com/azuredocs/aci-helloworld ports: - containerPort: 80 nodeSelector: kubernetes.io/role: agent beta.kubernetes.io/os: linux type: virtual-kubelet tolerations: - key: virtual-kubelet.io/provider operator: Exists
YAML definuje nodeSelector a tolerance, což umožňuje naplánování podu na virtuálním uzlu. Pod je přiřazena interní IP adresa z podsítě virtuální sítě Azure delegovaná pro použití s virtuálními uzly.
Spusťte aplikaci pomocí
kubectl apply
příkazu.kubectl apply -f virtual-node.yaml
Zobrazte pody naplánované na uzlu pomocí
kubectl get pods
příkazu s argumentem-o wide
.kubectl get pods -o wide
Následující příklad výstupu
virtual-node-helloworld
ukazuje pod naplánovaný navirtual-node-linux
uzlu.NAME READY STATUS RESTARTS AGE IP NODE virtual-node-helloworld-9b55975f-bnmfl 1/1 Running 0 4m 10.241.0.4 virtual-node-aci-linux
Poznámka:
Pokud používáte image uložené ve službě Azure Container Registry, nakonfigurujte a použijte tajný klíč Kubernetes. Omezení virtuálních uzlů je, že nemůžete použít integrované ověřování instančního objektu Microsoft Entra. Pokud tajný kód nepoužíváte, pody naplánované na virtuálních uzlech se nespustí a nahlásí chybu HTTP response status code 400 error code "InaccessibleImage"
.
Testování podu virtuálního uzlu
Pokud chcete otestovat pod spuštěný na virtuálním uzlu, přejděte k ukázkové aplikaci pomocí webového klienta. Pod má přiřazenou interní IP adresu, takže můžete snadno otestovat připojení z jiného podu v clusteru AKS.
Vytvořte testovací pod a připojte k němu relaci terminálu pomocí následujícího
kubectl run
příkazu.kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Nainstalujte
curl
do podu pomocí následujícíhoapt-get
příkazu.apt-get update && apt-get install -y curl
Pomocí následujícího
curl
příkazu přejděte na adresu podu a zadejte svou interní IP adresu.curl -L http://10.241.0.4
Následující zhuštěný ukázkový výstup ukazuje ukázkové aplikace.
<html> <head> <title>Welcome to Azure Container Instances!</title> </head> [...]
Ukončete relaci terminálu s testovacím podem ,
exit
který odstraní také pod.exit
Další kroky
V tomto článku jste naplánovali pod na virtuálním uzlu a přiřadili jste privátní interní IP adresu. Pokud chcete, můžete místo toho vytvořit nasazení služby a směrovat provoz do podu prostřednictvím nástroje pro vyrovnávání zatížení nebo kontroleru příchozího přenosu dat. Další informace najdete v tématu Vytvoření základního kontroleru příchozího přenosu dat v AKS.
Virtuální uzly jsou jednou komponentou řešení škálování v AKS. Další informace o škálování řešení najdete v následujících článcích:
Azure Kubernetes Service