Samouczek — skalowanie aplikacji w usłudze Azure Kubernetes Service (AKS)
Jeśli wykonano poprzednie samouczki, masz działający klaster Kubernetes i aplikację Azure Store Front.
W tym samouczku, część szósta z siedmiu, przeskaluj zasobniki w poziomie w aplikacji, wypróbuj skalowanie automatyczne zasobników i przeskaluj liczbę węzłów maszyn wirtualnych platformy Azure, aby zmienić pojemność klastra na potrzeby hostowania obciążeń. Dowiedz się, jak odbywa się:
- Skalowanie węzłów platformy Kubernetes.
- Ręczne skalowanie zasobników Kubernetes, które uruchamiają aplikację.
- Skonfiguruj zasobniki skalowania automatycznego, które uruchamiają fronton aplikacji.
Zanim rozpoczniesz
W poprzednich samouczkach spakujesz aplikację do obrazu kontenera, przekazano obraz do usługi Azure Container Registry, utworzono klaster usługi AKS, wdrożono aplikację i użyto usługi Azure Service Bus do ponownego wdrożenia zaktualizowanej aplikacji. Jeśli te kroki nie zostały wykonane i chcesz wykonać te czynności, zacznij od samouczka 1 — Przygotowywanie aplikacji dla usługi AKS.
Ten samouczek wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.34.1 lub nowszej. Uruchom polecenie az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Ręczne skalowanie zasobników
Wyświetl zasobniki w klastrze przy użyciu
kubectl get
polecenia .kubectl get pods
W poniższych przykładowych danych wyjściowych przedstawiono zasobniki z uruchomioną aplikacją Front sklepu Azure:
NAME READY STATUS RESTARTS AGE order-service-848767080-tf34m 1/1 Running 0 31m product-service-4019737227-2q2qz 1/1 Running 0 31m store-front-2606967446-2q2qz 1/1 Running 0 31m
Ręcznie zmień liczbę zasobników we wdrożeniu frontonu sklepu
kubectl scale
przy użyciu polecenia .kubectl scale --replicas=5 deployment.apps/store-front
Sprawdź, czy dodatkowe zasobniki zostały utworzone przy użyciu
kubectl get pods
polecenia .kubectl get pods
W poniższych przykładowych danych wyjściowych przedstawiono dodatkowe zasobniki z uruchomioną aplikacją Azure Store Front:
READY STATUS RESTARTS AGE store-front-2606967446-2q2qzc 1/1 Running 0 15m store-front-3309479140-2hfh0 1/1 Running 0 3m store-front-3309479140-bzt05 1/1 Running 0 3m store-front-3309479140-fvcvm 1/1 Running 0 3m store-front-3309479140-hrbf2 1/1 Running 0 15m store-front-3309479140-qphz8 1/1 Running 0 3m
Automatyczne skalowanie zasobników
Aby korzystać z narzędzia do automatycznego skalowania zasobników w poziomie, wszystkie kontenery muszą mieć zdefiniowane żądania i limity procesora CPU, a zasobniki muszą mieć określone żądania. We wdrożeniu aks-store-quickstart
kontener frontonu żąda 1 mln procesora CPU z limitem 1000 m procesora CPU.
Te żądania zasobów i limity są definiowane dla każdego kontenera, jak pokazano w poniższym skondensowanym przykładzie YAML:
...
containers:
- name: store-front
image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
ports:
- containerPort: 8080
name: store-front
...
resources:
requests:
cpu: 1m
...
limits:
cpu: 1000m
...
Automatyczne skalowanie zasobników przy użyciu pliku manifestu
Utwórz plik manifestu, aby zdefiniować zachowanie narzędzia do automatycznego skalowania i limity zasobów, jak pokazano w poniższym skondensowanym przykładowym pliku manifestu
aks-store-quickstart-hpa.yaml
:apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-front-hpa spec: maxReplicas: 10 # define max replica count minReplicas: 3 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-front metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50
Zastosuj plik manifestu autoskalatora
kubectl apply
przy użyciu polecenia .kubectl apply -f aks-store-quickstart-hpa.yaml
Sprawdź stan narzędzia do automatycznego skalowania przy użyciu
kubectl get hpa
polecenia .kubectl get hpa
Po kilku minutach przy minimalnym obciążeniu aplikacji Front sklepu Azure liczba replik zasobników zmniejsza się do trzech. Możesz ponownie użyć polecenia
kubectl get pods
, aby sprawdzić stan usuwania niepotrzebnych zasobników.
Uwaga
Do klastra można włączyć dodatek AKS oparty na zdarzeniach oparty na zdarzeniach oparty na zdarzeniach (KEDA) do klastra, aby zwiększyć skalowanie na podstawie liczby zdarzeń, które należy przetworzyć. Aby uzyskać więcej informacji, zobacz Włączanie uproszczonego skalowania automatycznego aplikacji za pomocą dodatku Kubernetes Event-Driven Autoscaling (KEDA) (wersja zapoznawcza).
Ręczne skalowanie węzłów usługi AKS
Jeśli klaster Kubernetes został utworzony przy użyciu poleceń w poprzednich samouczkach, klaster ma dwa węzły. Jeśli chcesz zwiększyć lub zmniejszyć tę ilość, możesz ręcznie dostosować liczbę węzłów.
W poniższym przykładzie liczba węzłów w klastrze Kubernetes o nazwie myAKSCluster zostanie zwiększona do trzech. Wykonanie tego polecenia może zająć kilka minut.
Skaluj
az aks scale
węzły klastra przy użyciu polecenia .az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
Po pomyślnym skalowaniu klastra dane wyjściowe będą podobne do następujących przykładowych danych wyjściowych:
"aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { ... "count": 3, "mode": "System", "name": "nodepool1", "osDiskSizeGb": 128, "osDiskType": "Managed", "osType": "Linux", "ports": null, "vmSize": "Standard_DS2_v2", "vnetSubnetId": null ... } ... ]
Możesz również automatycznie skalować węzły w klastrze. Aby uzyskać więcej informacji, zobacz Używanie narzędzia do automatycznego skalowania klastra z pulami węzłów.
Następne kroki
W tym samouczku użyto różnych funkcji skalowania w klastrze Kubernetes. W tym samouczku omówiono:
- Ręczne skalowanie zasobników Kubernetes, które uruchamiają aplikację.
- Skonfiguruj zasobniki skalowania automatycznego, które uruchamiają fronton aplikacji.
- Ręczne skalowanie węzłów Kubernetes.
W następnym samouczku dowiesz się, jak uaktualnić platformę Kubernetes w klastrze usługi AKS.
Azure Kubernetes Service