Udostępnij za pośrednictwem


Uproszczone skalowanie automatyczne aplikacji za pomocą dodatku Kubernetes Event-driven Autoscaling (KEDA)

Ważne

Dodatek KEDA dla usługi AKS nie obsługuje obecnie modyfikowania prośb dotyczących CPU ani limitów oraz innych wartości Helm dla serwera metryk lub operatora. Pamiętaj o tym ograniczeniu podczas korzystania z dodatku. Jeśli masz jakiekolwiek pytania, możesz skontaktować się tutaj.

Kubernetes Event-driven Autoscaling (KEDA) to dedykowany i lekki składnik mający na celu uproszczenie automatycznego skalowania aplikacji i jest projektem absolwenta Cloud Native Computing Foundation (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 / Notatka

Usługa KEDA w wersji 2.15 lub nowszej wprowadza zmianę niekompatybilną, która usuwa obsługę tożsamości zasobnika. Zalecamy przejście na tożsamość roboczą w celu uwierzytelniania, jeśli używasz tożsamości poda. Chociaż dodatek zarządzany przez KEDA obecnie nie uruchamia wersji KEDA 2.15+, to rozpocznie jej uruchamianie w wersji zapoznawczej AKS 1.32.

Aby uzyskać więcej informacji na temat bezpiecznego skalowania aplikacji przy użyciu tożsamości obciążenia, przeczytaj nasz samouczek. Aby zapoznać się z polityką zmian niekompatybilnych i wycofywania w 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ń w zakresie od 0 do N instancji z obsługą wdrożeń, zadań, Jobs Kubernetes lub dowolnego zasobu niestandardowego definiującego StatefulSets zasób podrzędny.
  • Serwer metryk udostępnia metryki zewnętrzne dla narzędzia Horizontal Pod Autoscaler (HPA) w Kubernetes, umożliwiając automatyczne skalowanie, na przykład w przypadku komunikatów w temacie platformy Kafka lub liczby zdarzeń w centrum zdarzeń platformy Azure. Ze względu na ograniczenia nadrzędne, KEDA musi być jedynym zainstalowanym adapterem metryk zewnętrznych.

Diagram przedstawiający architekturę usługi KEDA i sposób rozszerzania platformy Kubernetes.

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, StatefulSetslub 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 Microsoft Entra Workload ID do uwierzytelniania

Uwaga / Notatka

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
  • Nie zaleca się łączenia KEDA ScaledObject z narzędziem Horizontal Pod Autoscaler (HPA) w celu skalowania tego samego obciążenia. Współzawodniczą ze sobą, ponieważ KEDA używa narzędzia Horizontal Pod Autoscaler (HPA) w tle, co powoduje dziwne działanie skalowania.
    • Jeśli najpierw zostanie utworzona usługa HPA, następnie spróbuje się utworzyć KEDA ScaledObject, to KEDA ScaledObject nie zostanie utworzona.
    • Jeśli najpierw zostanie utworzona KEDA ScaledObject, a następnie HPA, tworzenie HPA nie zostanie zablokowane.

Aby uzyskać ogólne pytania dotyczące KEDA, zalecamy zapoznanie się z omówieniem często zadawanych pytań.

Uwaga / Notatka

Jeśli korzystasz z Tożsamości obciążeń Microsoft Entra i włączysz funkcję KEDA przed Tożsamością obciążeń Microsoft Entra, musisz ponownie uruchomić zasobniki operatora KEDA, aby można było wstrzyknąć odpowiednie zmienne środowiskowe:

  1. Uruchom ponownie zasobniki, uruchamiając polecenie kubectl rollout restart deployment keda-operator -n kube-system.

  2. Uzyskaj zasobniki operatorów KEDA przy użyciu kubectl get pod -n kube-system i znajdź zasobniki rozpoczynające się od keda-operator.

  3. Sprawdź poprawność wstrzyknięcia zmiennych środowiskowych, uruchamiając kubectl describe pod <keda-operator-pod> -n kube-system. Pod Environment powinny być widoczne wartości dla AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE i AZURE_AUTHORITY_HOST.

Obsługiwane wersje platform Kubernetes i KEDA

Wersja Kubernetes w twoim klastrze określa, którą wersję KEDA zainstalowano w klastrze Azure Kubernetes Service (AKS). Aby zobaczyć, która wersja KEDA jest przypisana do każdej wersji AKS, zobacz kolumnę AKS managed add-ons w tabeli wersji składników Kubernetes.

W przypadku wersji GA platformy Kubernetes usługa AKS oferuje pełną obsługę odpowiadającej wersji pomocniczej KEDA wymienionej w tabeli. Wersje zapoznawcze Kubernetes i najnowsza poprawka KEDA są częściowo objęte pomocą techniczną dla klientów, oferowaną na zasadzie najlepszych starań. 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:

Dalsze kroki