Udostępnij za pośrednictwem


Rozwiązywanie problemów z dodatkiem Kubernetes Event-driven Autoscaling

W tym artykule omówiono sposób rozwiązywania problemów z dodatkiem Kubernetes Event-driven Autoscaling (KEDA) do usługi Microsoft Azure Kubernetes Service (AKS). Podczas wdrażania dodatku KEDA AKS mogą wystąpić problemy związane z konfiguracją modułu automatycznego skalowania aplikacji. Ten artykuł pomoże w rozwiązywaniu problemów z błędami i rozwiązywaniu typowych problemów, które mają wpływ na dodatek, ale nie zostały omówione w oficjalnym przewodniku rozwiązywania problemów i często zadawanych pytaniach dotyczących dodatku KEDA.

Wymagania wstępne

Pomoc techniczna dla dodatku KEDA

Dodatek KEDA jest zgodny z podobnym modelem obsługi do innych dodatków usługi AKS. Obsługiwane są wszystkie moduły skalowania KEDA platformy Azure, ale usługa AKS nie obsługuje skalowania innych firm. Jeśli wystąpią problemy ze skalerami innych firm, otwórz problem w oficjalnym repozytorium GitHub usługi KEDA.

Lista kontrolna rozwiązywania problemów

Zweryfikuj i rozwiąż problemy ze składnikami KEDA, korzystając z instrukcji w poniższych sekcjach.

Sprawdzanie dostępnej wersji KEDA

Dostępną wersję KEDA można określić za pomocą polecenia kubectl get :

kubectl get crd/scaledobjects.keda.sh -o custom-columns='APP:.metadata.labels.app\.kubernetes\.io/version'

Dane wyjściowe polecenia wyświetla zainstalowaną wersję KEDA:

APP
2.8.1

Upewnij się, że zapora klastra jest poprawnie skonfigurowana

Usługa KEDA może nie zostać pomyślnie skalowana, ponieważ nie można jej uruchomić.

Podczas sprawdzania dzienników operatorów mogą znajdować się wpisy o błędach podobne do następującego tekstu:

1.6545953013458195e+09 ERROR Failed to get API Group-Resources {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
sigs.k8s.io/controller-runtime/pkg/cluster.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/cluster/cluster.go:160
sigs.k8s.io/controller-runtime/pkg/manager.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/manager/manager.go:313
main.main
/workspace/main.go:87
runtime.main
/usr/local/go/src/runtime/proc.go:255
1.6545953013459463e+09 ERROR setup unable to start manager {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
main.main
/workspace/main.go:97
runtime.main
/usr/local/go/src/runtime/proc.go:255

W sekcji serwer metryk może się okazać, że nie można uruchomić usługi KEDA:

I0607 09:53:05.297924 1 main.go:147] keda_metrics_adapter "msg"="KEDA Version: 2.7.1"
I0607 09:53:05.297979 1 main.go:148] keda_metrics_adapter "msg"="KEDA Commit: "
I0607 09:53:05.297996 1 main.go:149] keda_metrics_adapter "msg"="Go Version: go1.17.9"
I0607 09:53:05.298006 1 main.go:150] keda_metrics_adapter "msg"="Go OS/Arch: linux/amd64"
E0607 09:53:15.344324 1 logr.go:279] keda_metrics_adapter "msg"="Failed to get API Group-Resources" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344360 1 main.go:104] keda_metrics_adapter "msg"="failed to setup manager" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344378 1 main.go:209] keda_metrics_adapter "msg"="making provider" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344399 1 main.go:168] keda_metrics_adapter "msg"="unable to run external metrics adapter" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"

Ten scenariusz prawdopodobnie oznacza, że dodatek KEDA nie może uruchomić się z powodu błędnie skonfigurowanej zapory. Aby upewnić się, że usługa KEDA działa prawidłowo, skonfiguruj zaporę tak, aby spełniała globalne wymagane reguły sieciowe platformy Azure.

Włączanie dodatku dla klastrów z własnymi instalacjami KEDA typu open source

Teoretycznie można zainstalować narzędzie KEDA wiele razy, mimo że platforma Kubernetes umożliwia zainstalowanie tylko jednego serwera metryk. Nie zalecamy jednak wielu instalacji, ponieważ działa tylko jedna instalacja.

Po zainstalowaniu dodatku KEDA w klastrze usługi AKS poprzednia instalacja KEDA typu open source zostanie zastąpiona, a dodatek zostanie przesłonięty. W tym scenariuszu dostosowanie i konfiguracja samodzielnego wdrożenia usługi KEDA zostaną utracone i nie zostaną już zastosowane.

Chociaż istniejące skalowanie automatyczne może nadal działać, taka sytuacja stanowi zagrożenie. Dodatek KEDA zostanie skonfigurowany inaczej i nie będzie obsługiwać funkcji, takich jak tożsamość zarządzana. Aby zapobiec błędom podczas instalacji, zalecamy odinstalowanie istniejących instalacji KEDA przed włączeniem dodatku KEDA.

Aby określić, która karta metryk jest używana przez usługę kubectl get KEDA, uruchom polecenie:

kubectl get APIService/v1beta1.external.metrics.k8s.io -o custom-columns='NAME:.spec.service.name,NAMESPACE:.spec.service.namespace'

Omówienie przedstawia usługę i przestrzeń nazw, która będzie używana przez platformę Kubernetes do pobierania metryk:

NAME                              NAMESPACE
keda-operator-metrics-apiserver   kube-system

Ostrzeżenie

Jeśli przestrzeń nazw nie kube-systemjest , dodatek usługi AKS jest ignorowany, a używany jest inny serwer metryk.

Jak ponownie uruchomić zasobniki operatora KEDA, gdy tożsamość obciążenia nie jest prawidłowo wstrzykiwana

Jeśli używasz Tożsamość obciążeń Microsoft Entra i włączysz funkcję KEDA przed użyciem Tożsamość obciążeń, musisz ponownie uruchomić zasobniki operatorów KEDA. Zapewnia to wstrzyknięcie prawidłowych zmiennych środowiskowych. W tym celu wykonaj następujące kroki:

  1. Uruchom ponownie zasobniki, uruchamiając następujące polecenie:

    kubectl rollout restart deployment keda-operator -n kube-system
    
  2. Uzyskaj zasobniki operatorów KEDA, uruchamiając następujące polecenie, a następnie znajdź zasobniki o nazwach rozpoczynających się od "keda-operator".

    kubectl get pod -n kube-system
    
  3. Aby sprawdzić, czy zmienne środowiskowe zostały pomyślnie wprowadzone, uruchom następujące polecenie:

    kubectl describe pod <keda-operator-pod-name> -n kube-system
    

    Jeśli zmienne zostały pomyślnie wprowadzone, powinny zostać wyświetlone wartości , AZURE_TENANT_IDAZURE_FEDERATED_TOKEN_FILEi AZURE_AUTHORITY_HOST w sekcji Środowisko.

Zastrzeżenie dotyczące innych firm

Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pomoc techniczną społeczności platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.