Udostępnij za pośrednictwem


Instalowanie dodatku do automatycznego skalowania opartego na zdarzeniach platformy Kubernetes (KEDA) przy użyciu interfejsu wiersza polecenia platformy Azure

W tym artykule pokazano, jak zainstalować dodatek do automatycznego skalowania opartego na zdarzeniach platformy Kubernetes (KEDA) platformy Kubernetes Service (AKS) przy użyciu interfejsu wiersza polecenia platformy Azure.

Ważne

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:

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

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

Zanim rozpoczniesz

  • Wymagana jest subskrypcja platformy Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
  • Potrzebny jest zainstalowany interfejs wiersza polecenia platformy Azure.
  • Upewnij się, że masz skonfigurowane reguły zapory umożliwiające dostęp do serwera interfejsu API Kubernetes. Aby uzyskać więcej informacji, zobacz Reguły sieci wychodzącej i nazwy FQDN dla klastrów usługi Azure Kubernetes Service (AKS).

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.

Instalowanie dodatku KEDA za pomocą interfejsu wiersza polecenia platformy Azure

Aby zainstalować dodatek KEDA, użyj polecenia --enable-keda podczas tworzenia lub aktualizowania klastra.

Włączanie dodatku KEDA w klastrze usługi AKS

Uwaga

Chociaż KEDA oferuje różne opcje dostosowywania, dodatek KEDA obecnie zapewnia podstawową typową konfigurację.

Jeśli potrzebujesz konfiguracji niestandardowych, możesz ręcznie edytować pliki YAML KEDA, aby dostosować instalację. Platforma Azure nie oferuje obsługi konfiguracji niestandardowych.

Tworzenie nowego klastra AKS z włączonym dodatkiem KEDA

  1. Utwórz grupę zasobów przy użyciu az group create polecenia .

    az group create --name myResourceGroup --location eastus
    
  2. Utwórz nowy klaster usługi AKS przy użyciu az aks create polecenia i włącz dodatek KEDA przy użyciu flagi --enable-keda .

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --enable-keda \
        --generate-ssh-keys
    

Włączanie dodatku KEDA w istniejącym klastrze usługi AKS

  • Zaktualizuj istniejący klaster przy użyciu az aks update polecenia i włącz dodatek KEDA przy użyciu flagi --enable-keda .

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --enable-keda 
    

Pobieranie poświadczeń dla klastra

  • Pobierz poświadczenia dla klastra usługi AKS przy użyciu az aks get-credentials polecenia .

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Sprawdź, czy dodatek KEDA jest zainstalowany w klastrze

  • Sprawdź, czy dodatek KEDA jest zainstalowany w klastrze przy użyciu az aks show polecenia i ustaw --query parametr na workloadAutoScalerProfile.keda.enabled.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query "workloadAutoScalerProfile.keda.enabled" 
    

    Następujące przykładowe dane wyjściowe pokazują, że dodatek KEDA jest zainstalowany w klastrze:

    true
    

Sprawdź, czy usługa KEDA jest uruchomiona w klastrze

  • Sprawdź, czy dodatek KEDA jest uruchomiony w klastrze przy użyciu kubectl get pods polecenia .

    kubectl get pods -n kube-system 
    

    Następujące przykładowe dane wyjściowe pokazują, że operator KEDA, punkt zaczepienia przyjęć i serwer interfejsu API metryk są instalowane w klastrze:

    keda-admission-webhooks-**********-2n9zl           1/1     Running   0            3d18h
    keda-admission-webhooks-**********-69dkg           1/1     Running   0            3d18h
    keda-operator-*********-4hb5n                      1/1     Running   0            3d18h
    keda-operator-*********-pckpx                      1/1     Running   0            3d18h
    keda-operator-metrics-apiserver-**********-gqg4s   1/1     Running   0            3d18h
    keda-operator-metrics-apiserver-**********-trfcb   1/1     Running   0            3d18h
    

Weryfikowanie wersji usługi KEDA w klastrze

Aby sprawdzić wersję usługi KEDA, użyj polecenia kubectl get crd/scaledobjects.keda.sh -o yaml . Na przykład:

kubectl get crd/scaledobjects.keda.sh -o yaml 

Następujące przykładowe dane wyjściowe pokazują konfigurację KEDA w etykiecie app.kubernetes.io/version :

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.0
    meta.helm.sh/release-name: aks-managed-keda
    meta.helm.sh/release-namespace: kube-system
  creationTimestamp: "2023-08-09T15:58:56Z"
  generation: 1
  labels:
    app.kubernetes.io/component: operator
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: keda-operator
    app.kubernetes.io/part-of: keda-operator
    app.kubernetes.io/version: 2.10.1
    helm.toolkit.fluxcd.io/name: keda-adapter-helmrelease
    helm.toolkit.fluxcd.io/namespace: 64d3b6fd3365790001260647
  name: scaledobjects.keda.sh
  resourceVersion: "1421"
  uid: 29109c8c-638a-4bf5-ac1b-c28ad9aa11fa
spec:
  conversion:
    strategy: None
  group: keda.sh
  names:
    kind: ScaledObject
    listKind: ScaledObjectList
    plural: scaledobjects
    shortNames:
    - so
    singular: scaledobject
  scope: Namespaced
  # Redacted due to length

Wyłączanie dodatku KEDA w klastrze usługi AKS

  • Wyłącz dodatek KEDA w klastrze przy użyciu az aks update polecenia z flagą --disable-keda .

    az aks update \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --disable-keda 
    

Następne kroki

W tym artykule pokazano, jak zainstalować dodatek KEDA w klastrze usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure.

Za pomocą dodatku KEDA zainstalowanego w klastrze możesz wdrożyć przykładową aplikację , aby rozpocząć skalowanie aplikacji.

Aby uzyskać informacje na temat rozwiązywania problemów z usługą KEDA, zobacz Rozwiązywanie problemów z dodatkiem Kubernetes Event-driven Autoscaling (KEDA).

Aby dowiedzieć się więcej, wyświetl nadrzędną dokumentacji usługi KEDA.