(PRZESTARZAŁE) Skalowanie zasobników i infrastruktury rozwiązania Kubernetes
Porada
Aby uzyskać zaktualizowaną wersję tego samouczka korzystającą z Azure Kubernetes Service, zobacz Samouczek: skalowanie aplikacji w usłudze Azure Kubernetes Service (AKS).
Ostrzeżenie
Usługa Azure Container Service (ACS) stała się przestarzała. Do usługi ACS nie są już dodawane żadne nowe funkcje. Wszystkie interfejsy API, środowisko portalu, polecenia interfejsu wiersza polecenia i dokumentacja są oznaczone jako przestarzałe.
W 2017 r. wprowadziliśmy usługę Azure Kubernetes Service (AKS), aby uprościć wdrażanie i operacje platformy Kubernetes oraz zarządzanie nią. Jeśli używasz orkiestratora platformy Kubernetes, przeprowadź migrację do usługi AKS do 31 stycznia 2020 r. Aby rozpocząć pracę, zapoznaj się z artykułem dotyczącym migracji do usługi Azure Kubernetes Service.
Aby uzyskać więcej informacji, zobacz ogłoszenie o zakończeniu obsługi usługi Azure Container Service w witrynie Azure.com.
Jeśli wykonujesz kolejno zadania z samouczków, masz już działający klaster Kubernetes w usłudze Azure Container Service z wdrożoną aplikacją do głosowania platformy Azure.
Ta część samouczka, piąta z siedmiu, obejmuje skalowanie w poziomie zasobników w tej aplikacji oraz skalowanie automatyczne. Dowiesz się również, jak, skalując liczbę węzłów agenta maszyny wirtualnej platformy Azure, zmieniać możliwości hostowania obciążeń w klastrze. Wykonano następujące zadania:
- Ręczne skalowanie zasobników Kubernetes
- Konfigurowanie skalowania automatycznego zasobników obsługujących fronton aplikacji
- Skalowanie węzłów agentów platformy Azure dla rozwiązania Kubernetes
W kolejnych samouczkach aplikacja do głosowania platformy Azure zostanie zaktualizowana, a usługa Log Analytics zostanie skonfigurowana do monitorowania klastra Kubernetes.
Zanim rozpoczniesz
W poprzednich samouczkach aplikacja została spakowana w postaci obrazu kontenera, obraz został przekazany do usługi Azure Container Registry i utworzono klaster Kubernetes. Następnie uruchomiono aplikację w klastrze usługi Kubernetes.
Jeśli te kroki nie zostały wykonane, a chcesz skorzystać z tej części samouczka, wróć do części Samouczek 1 — tworzenie obrazów kontenera.
Ręczne skalowanie zasobników
Poprzednio wdrożono fronton aplikacji do głosowania platformy Azure oraz wystąpienie pamięci podręcznej Redis — każdy z tych elementów został wdrożony z jedną repliką. Aby to zweryfikować, uruchom polecenie kubectl get.
Przejdź do witryny https://shell.azure.com , aby otworzyć Cloud Shell w przeglądarce.
kubectl get pods
Dane wyjściowe:
NAME READY STATUS RESTARTS AGE
azure-vote-back-2549686872-4d2r5 1/1 Running 0 31m
azure-vote-front-848767080-tf34m 1/1 Running 0 31m
Ręcznie zmień liczbę zasobników we wdrożeniu aplikacji azure-vote-front
, używając polecenia kubectl scale. W tym przykładzie liczba ta zostanie zwiększona do 5.
kubectl scale --replicas=5 deployment/azure-vote-front
Uruchom polecenie kubectl get pods, aby zweryfikować utworzenie zasobników przez rozwiązanie Kubernetes. Po upływie około minuty dodatkowe zasobniki zaczną działać:
kubectl get pods
Dane wyjściowe:
NAME READY STATUS RESTARTS AGE
azure-vote-back-2606967446-nmpcf 1/1 Running 0 15m
azure-vote-front-3309479140-2hfh0 1/1 Running 0 3m
azure-vote-front-3309479140-bzt05 1/1 Running 0 3m
azure-vote-front-3309479140-fvcvm 1/1 Running 0 3m
azure-vote-front-3309479140-hrbf2 1/1 Running 0 15m
azure-vote-front-3309479140-qphz8 1/1 Running 0 3m
Automatyczne skalowanie zasobników
Rozwiązanie Kubernetes obsługuje automatyczne skalowanie zasobników w poziomie, umożliwiające dostosowywanie liczby zasobników we wdrożeniu do użycia procesora lub innych wybranych metryk.
Aby móc korzystać ze skalowania automatycznego, należy zdefiniować wymagania i limity użycia procesora CPU dla zasobników. We wdrożeniu aplikacji azure-vote-front
kontener frontonu wymaga 0,25 CPU, a limit wynosi 0,5 CPU. Ustawienia są następujące:
resources:
requests:
cpu: 250m
limits:
cpu: 500m
W poniższym przykładzie użyto polecenia kubectl autoscale w celu automatycznego skalowania liczby zasobników we wdrożeniu aplikacji azure-vote-front
. Jeśli użycie procesora CPU przekroczy 50%, skalowanie automatyczne spowoduje zwiększenie liczby zasobników, maksymalnie do 10.
kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10
Aby wyświetlić stan skalowania automatycznego, uruchom następujące polecenie:
kubectl get hpa
Dane wyjściowe:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
azure-vote-front Deployment/azure-vote-front 0% / 50% 3 10 3 2m
Po upływie kilku minut, przy minimalnym obciążeniu aplikacji do głosowania platformy Azure, liczba replik zasobników zostanie automatycznie zmniejszona do 3.
Skalowanie agentów
Jeśli utworzono klaster Kubernetes przy użyciu domyślnych poleceń z poprzedniego samouczka, zawiera on trzy węzły agentów. Jeśli planujesz zwiększenie lub zmniejszenie liczby obciążeń kontenerów w klastrze, możesz ręcznie dostosować liczbę agentów. Użyj polecenia az acs scale, określając liczbę agentów za pomocą parametru --new-agent-count
.
W poniższym przykładzie liczba węzłów agentów w klastrze Kubernetes o nazwie myK8scluster zostanie zwiększona do 4. Wykonanie tego polecenia może zająć kilka minut.
az acs scale --resource-group=myResourceGroup --name=myK8SCluster --new-agent-count 4
Wartość parametru agentPoolProfiles:count
w danych wyjściowych polecenia wskazuje liczbę węzłów agentów:
{
"agentPoolProfiles": [
{
"count": 4,
"dnsPrefix": "myK8SCluster-myK8SCluster-e44f25-k8s-agents",
"fqdn": "",
"name": "agentpools",
"vmSize": "Standard_D2_v2"
}
],
...
Następne kroki
W tym samouczku użyto różnych funkcji skalowania w klastrze Kubernetes. Wykonano następujące zadania:
- Ręczne skalowanie zasobników Kubernetes
- Konfigurowanie skalowania automatycznego zasobników obsługujących fronton aplikacji
- Skalowanie węzłów agentów platformy Azure dla rozwiązania Kubernetes
Przejdź do następnego samouczka, aby dowiedzieć się, jak zaktualizować aplikację w usłudze Kubernetes.