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).

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ą kartą metryki.

Diagram that shows the architecture of K E D A and how it extends Kubernetes instead of re-inventing the wheel.

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 serwer metryk. Z tego powodu rozszerzenie KEDA powinno być jedynym serwerem metryk w klastrze.
    • 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:

  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 zasobników i znajdowanie zasobników rozpoczynających się od keda-operator.

  3. Sprawdź pomyślne wstrzyknięcie zmiennych środowiskowych, uruchamiając polecenie kubectl describe pod <keda-operator-pod> -n kube-system. W obszarze Environmentpowinna zostać wyświetlona wartość , AZURE_FEDERATED_TOKEN_FILEAZURE_TENANT_IDi AZURE_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