Tworzenie i konfigurowanie klastra usługi Azure Kubernetes Services (AKS) do używania węzłów wirtualnych w witrynie Azure Portal
Węzły wirtualne umożliwiają komunikację sieciową między zasobnikami uruchomionymi w klastrach usługi Azure Container Instances (ACI) i azure Kubernetes Service (AKS). Aby zapewnić tę komunikację, zostanie utworzona podsieć sieci wirtualnej i przypisano uprawnienia delegowane. Węzły wirtualne działają tylko z klastrami usługi AKS utworzonymi przy użyciu zaawansowanej sieci (Azure CNI). Klastry usługi AKS są tworzone domyślnie przy użyciu podstawowej sieci (kubenet).
W tym artykule pokazano, jak utworzyć sieć wirtualną i podsieci, a następnie wdrożyć klaster usługi AKS korzystający z zaawansowanej sieci przy użyciu witryny Azure Portal.
Uwaga
Aby zapoznać się z omówieniem dostępności i ograniczeń regionów węzłów wirtualnych, zobacz Używanie węzłów wirtualnych w usłudze AKS.
Zanim rozpoczniesz
Potrzebujesz dostawcy usług ACI zarejestrowanego w ramach subskrypcji.
Sprawdź stan rejestracji dostawcy ACI przy użyciu
az provider list
polecenia .az provider list --query "[?contains(namespace,'Microsoft.ContainerInstance')]" -o table
Następujące przykładowe dane wyjściowe pokazują, że dostawca Microsoft.ContainerInstance jest zarejestrowany:
Namespace RegistrationState RegistrationPolicy --------------------------- ------------------- -------------------- Microsoft.ContainerInstance Registered RegistrationRequired
Jeśli dostawca nie jest zarejestrowany, zarejestruj go przy użyciu
az provider register
polecenia .az provider register --namespace Microsoft.ContainerInstance
Tworzenie klastra AKS
- Przejdź do strony głównej witryny Azure Portal.
- Wybierz pozycję Utwórz kontenery zasobów>.
- W zasobie usługi Azure Kubernetes Service (AKS) wybierz pozycję Utwórz.
- Na stronie Podstawowe skonfiguruj następujące opcje:
- Szczegóły projektu: wybierz subskrypcję platformy Azure, a następnie wybierz lub utwórz grupę zasobów platformy Azure, taką jak myResourceGroup.
- Szczegóły klastra: wprowadź nazwę klastra Kubernetes, taką jak myAKSCluster. Wybierz region i wersję rozwiązania Kubernetes dla klastra AKS.
- Wybierz pozycję Dalej: Pule węzłów i zaznacz *Włącz węzły wirtualne.
- Wybierz pozycję Przejrzyj i utwórz.
- Po zakończeniu walidacji wybierz pozycję Utwórz.
Domyślnie ten proces tworzy tożsamość klastra zarządzanego, która jest używana do komunikacji klastra i integracji z innymi usługami platformy Azure. Aby uzyskać więcej informacji, zobacz Używanie tożsamości zarządzanych. Możesz również użyć jednostki usługi jako tożsamości klastra.
Ten proces umożliwia skonfigurowanie klastra pod kątem zaawansowanej sieci i węzłów wirtualnych do używania własnej podsieci sieci wirtualnej platformy Azure. Podsieć ma delegowane uprawnienia do łączenia zasobów platformy Azure między klastrem usługi AKS. Jeśli nie masz jeszcze delegowanej podsieci, witryna Azure Portal tworzy i konfiguruje sieć wirtualną i podsieć platformy Azure z węzłami wirtualnymi.
Łączenie z klastrem
Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której można użyć do wykonania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie. Aby zarządzać klastrem Kubernetes, należy użyć klienta wiersza polecenia usługi Kubernetes — narzędzia kubectl. Klient kubectl
jest instalowany wstępnie wraz z usługą Azure Cloud Shell.
Skonfiguruj
kubectl
, aby nawiązać połączenie z klastremaz aks get-credentials
Kubernetes przy użyciu polecenia . Poniższy przykład umożliwia pobranie poświadczeń dla nazwy klastra myAKSCluster w grupie zasobów myResourceGroup:az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Sprawdź połączenie z klastrem przy użyciu polecenia
kubectl get nodes
.kubectl get nodes
W poniższych przykładowych danych wyjściowych przedstawiono utworzony pojedynczy węzeł maszyny wirtualnej i wirtualny węzeł systemu Linux o nazwie 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
Wdrażanie przykładowej aplikacji
W usłudze Azure Cloud Shell utwórz plik o nazwie
virtual-node.yaml
i skopiuj następujący kod 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 definiuje węzełSelector i tolerancję, która umożliwia zaplanowanie zasobnika w węźle wirtualnym. Zasobnik ma przypisany wewnętrzny adres IP z podsieci sieci wirtualnej platformy Azure delegowanej do użycia z węzłami wirtualnymi.
Uruchom aplikację przy użyciu
kubectl apply
polecenia .kubectl apply -f virtual-node.yaml
Wyświetl zasobniki zaplanowane w węźle przy użyciu
kubectl get pods
polecenia z argumentem-o wide
.kubectl get pods -o wide
Poniższe przykładowe dane wyjściowe pokazują
virtual-node-helloworld
zasobnik zaplanowany na węźlevirtual-node-linux
.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
Uwaga
Jeśli używasz obrazów przechowywanych w usłudze Azure Container Registry, skonfiguruj klucz tajny platformy Kubernetes i użyj go. Ograniczeniem węzłów wirtualnych jest to, że nie można używać zintegrowanego uwierzytelniania jednostki usługi Microsoft Entra. Jeśli nie używasz wpisu tajnego, zasobniki zaplanowane na węzłach wirtualnych nie mogą uruchomić i zgłosić błąd HTTP response status code 400 error code "InaccessibleImage"
.
Testowanie zasobnika węzła wirtualnego
Aby przetestować zasobnik uruchomiony w węźle wirtualnym, przejdź do aplikacji demonstracyjnej za pomocą klienta internetowego. Zasobnik ma przypisany wewnętrzny adres IP, dzięki czemu można łatwo przetestować łączność z innego zasobnika w klastrze usługi AKS.
Utwórz zasobnik testowy i dołącz do niego sesję terminalu przy użyciu następującego
kubectl run
polecenia.kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Zainstaluj
curl
w zasobniku przy użyciu następującegoapt-get
polecenia.apt-get update && apt-get install -y curl
Uzyskaj dostęp do adresu zasobnika przy użyciu następującego
curl
polecenia i podaj wewnętrzny adres IP.curl -L http://10.241.0.4
Następujące skrócone przykładowe dane wyjściowe pokazują demonstracyjną aplikację.
<html> <head> <title>Welcome to Azure Container Instances!</title> </head> [...]
Zamknij sesję terminalu do zasobnika testowego za pomocą
exit
polecenia , który również usuwa zasobnik.exit
Następne kroki
W tym artykule zaplanowano zasobnik w węźle wirtualnym i przypisano prywatny wewnętrzny adres IP. Jeśli chcesz, możesz utworzyć wdrożenie usługi i kierować ruch do zasobnika za pośrednictwem modułu równoważenia obciążenia lub kontrolera ruchu przychodzącego. Aby uzyskać więcej informacji, zobacz Tworzenie podstawowego kontrolera ruchu przychodzącego w usłudze AKS.
Węzły wirtualne są jednym ze składników rozwiązania skalowania w usłudze AKS. Aby uzyskać więcej informacji na temat skalowania rozwiązań, zobacz następujące artykuły:
Azure Kubernetes Service