Uproszczone skalowanie automatyczne aplikacji za pomocą dodatku Kubernetes Event-driven Autoscaling (KEDA)
Kubernetes — autoskalowanie sterowane zdarzeniami (KEDA) to pojedynczy i lekki składnik, który dąży do uproszczenia autoskalowania aplikacji i jest projektem absolwenta CNCF.
Stosuje skalowanie automatyczne oparte na zdarzeniach w celu skalowania aplikacji w celu zaspokojenia zapotrzebowania w zrównoważony i ekonomiczny sposób z skalowaniem do zera.
Dodatek KEDA ułatwia wdrażanie zarządzanej instalacji KEDA, zapewniając bogaty katalog skalowania KEDA platformy Azure, z którym można skalować aplikacje w klastrze usługi Azure Kubernetes Services (AKS).
Uwaga
Usługa KEDA w wersji 2.15 wprowadza zmianę powodującą niezgodność, która usuwa obsługę tożsamości zasobnika. Zalecamy przejście do tożsamości obciążenia na potrzeby uwierzytelniania, jeśli używasz tożsamości zasobnika. Chociaż dodatek zarządzany przez usługę KEDA nie uruchamia obecnie usługi KEDA w wersji 2.15, rozpocznie uruchamianie go w wersji zapoznawczej usługi AKS w wersji 1.32.
Aby uzyskać więcej informacji na temat bezpiecznego skalowania aplikacji przy użyciu tożsamości obciążenia, przeczytaj nasz samouczek. Aby wyświetlić zasady zmiany powodujące niezgodność/wycofanie usługi KEDA, przeczytaj oficjalną dokumentację.
Architektura
Usługa KEDA udostępnia dwa główne składniki:
- Operator KEDA umożliwia użytkownikom końcowym skalowanie obciążeń z zakresu od 0 do N wystąpień z obsługą wdrożeń kubernetes, zadań, stanowychset lub dowolnego zasobu niestandardowego definiującego
/scale
podźródło. - Serwer metryk uwidacznia metryki zewnętrzne dla narzędzia Horizontal Pod Autoscaler (HPA) na platformie Kubernetes na potrzeby skalowania automatycznego, takich jak komunikaty w temacie platformy Kafka lub liczba zdarzeń w centrum zdarzeń platformy Azure. Ze względu na ograniczenia nadrzędne KEDA musi być jedyną zainstalowaną zewnętrzną kartą metryki.
Dowiedz się więcej o sposobie działania KEDA w oficjalnej dokumentacji KEDA.
Instalacja
KEDA można dodać do klastra usługi Azure Kubernetes Service (AKS), włączając dodatek KEDA przy użyciu szablonu usługi ARM lub interfejsu wiersza polecenia platformy Azure.
Dodatek KEDA zapewnia w pełni obsługiwaną instalację usługi KEDA zintegrowaną z usługą AKS.
Możliwości i funkcje
Usługa KEDA oferuje następujące możliwości i funkcje:
- Tworzenie zrównoważonych i oszczędnych aplikacji z skalowaniem do zera
- Skalowanie obciążeń aplikacji w celu sprostania zapotrzebowaniu przy użyciu bogatego katalogu skalowania usługi Azure KEDA
- Automatyczne skalowanie aplikacji z elementami
ScaledObjects
, takimi jak Wdrożenia, StatefulSets lub dowolny zasób niestandardowy, który definiuje/scale
podźródło - Skalowanie automatyczne obciążeń podobnych do zadań za pomocą polecenia
ScaledJobs
- Używanie zabezpieczeń klasy produkcyjnej przez oddzielenie uwierzytelniania automatycznego skalowania od obciążeń
- Korzystanie z własnego zewnętrznego modułu skalowania w celu korzystania z dostosowanych decyzji dotyczących skalowania automatycznego
- Integracja z Tożsamość obciążeń Microsoft Entra na potrzeby uwierzytelniania
Uwaga
Jeśli planujesz używać tożsamości obciążenia, włącz dodatek tożsamości obciążenia przed włączeniem dodatku KEDA.
Ograniczenia dodatku
Dodatek KEDA AKS ma następujące ograniczenia:
- Dodatek HTTP do rozszerzenia KEDA (wersja zapoznawcza) do skalowania obciążeń HTTP nie jest instalowany razem z rozszerzeniem, ale można go wdrożyć oddzielnie.
- Zewnętrzny moduł skalowania rozszerzenia KEDA dla usługi Azure Cosmos DB do skalowania na podstawie zestawienia zmian usługi Azure Cosmos DB nie jest instalowany razem z rozszerzeniem, ale można go wdrożyć oddzielnie.
- W klastrze Kubernetes dozwolony jest tylko jeden zewnętrzny serwer metryk. Ze względu na to dodatek KEDA powinien być jedynym zewnętrznym serwerem metryk wewnątrz klastra.
- Wiele instalacji rozszerzenia KEDA nie jest obsługiwanych
Aby uzyskać ogólne pytania dotyczące KEDA, zalecamy zapoznanie się z omówieniem często zadawanych pytań.
Uwaga
Jeśli używasz Tożsamość obciążeń Microsoft Entra i włączysz funkcję KEDA przed Tożsamość obciążeń, musisz ponownie uruchomić zasobniki operatora KEDA, aby można było wstrzyknąć odpowiednie zmienne środowiskowe:
Uruchom ponownie zasobniki, uruchamiając polecenie
kubectl rollout restart deployment keda-operator -n kube-system
.Uzyskaj zasobniki operatorów KEDA przy użyciu
kubectl get pod -n kube-system
zasobników i znajdowanie zasobników rozpoczynających się odkeda-operator
.Sprawdź pomyślne wstrzyknięcie zmiennych środowiskowych, uruchamiając polecenie
kubectl describe pod <keda-operator-pod> -n kube-system
. W obszarzeEnvironment
powinna zostać wyświetlona wartość ,AZURE_FEDERATED_TOKEN_FILE
AZURE_TENANT_ID
iAZURE_AUTHORITY_HOST
.
Obsługiwane wersje platform Kubernetes i KEDA
Wersja klastra Kubernetes określa, jaka wersja KEDA zostanie zainstalowana w klastrze usługi AKS. Aby zobaczyć, która wersja KEDA jest mapowana na każdą wersję usługi AKS, zobacz kolumnę AKS managed add-ons ( Dodatki zarządzane przez usługę AKS) tabeli wersji składnika Kubernetes.
W przypadku wersji ogólnodostępnych platformy Kubernetes usługa AKS oferuje pełną obsługę odpowiedniej wersji pomocniczej KEDA w tabeli. Wersje wersji zapoznawczej platformy Kubernetes i najnowsza poprawka KEDA są częściowo objęte pomocą techniczną dla klientów. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:
Następne kroki
- Włączanie dodatku KEDA z szablonem usługi ARM
- Włączanie dodatku KEDA za pomocą interfejsu wiersza polecenia platformy Azure
- Rozwiązywanie problemów z dodatkiem KEDA
- Automatyczne skalowanie procesu roboczego platformy .NET Core przetwarza komunikaty kolejki usługi Azure Service Bus
- Wyświetlanie nadrzędnej dokumentacji usługi KEDA
Azure Kubernetes Service