Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
W tym artykule pokazano, jak zainstalować dodatek Kubernetes Event-driven Autoscaling (KEDA) w usłudze Azure Kubernetes Service (AKS) przy użyciu narzędzia Azure CLI.
Ważne
Wersja Kubernetes klastra określa, która wersja KEDA zostanie zainstalowana na twoim klastrze AKS. Aby zobaczyć, która wersja KEDA jest mapowana na każdą wersję usługi AKS, zobacz kolumnę Dodatki zarządzane przez AKStabeli wersji składnika Kubernetes.
W przypadku wersji ogólnodostępnych (GA) platformy Kubernetes usługa AKS oferuje pełną obsługę odpowiedniej podwersji KEDA w tabeli. Wersje zapoznawcze platformy Kubernetes i najnowsza poprawka KEDA są częściowo objęte pomocą techniczną dla klientów, świadczoną 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:
Uwaga
Usługa KEDA w wersji 2.15 lub nowszej wprowadza zmianę niekompatybilną, która usuwa obsługę tożsamości zasobnika. Zalecamy użycie "workload identity" do celów uwierzytelniania, jeśli używasz "pod identity". Chociaż dodatek zarządzany przez usługę KEDA nie jest obecnie uruchomiony w wersji 2.15 lub nowszej, 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 zapoznać się z polityką KEDA dotyczącą zmian niekompatybilnych wstecz/zaprzestania użytkowania, przeczytaj ich dokumentację oficjalną.
Zanim rozpoczniesz
- Wymagana jest subskrypcja platformy Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
- Musisz mieć zainstalowany Azure CLI.
- Upewnij się, że masz skonfigurowane reguły zapory umożliwiające dostęp do serwera interfejsu API Kubernetes. Aby uzyskać więcej informacji, zobacz Outbound network and FQDN rules for Azure Kubernetes Service (AKS) clusters.
Uwaga
Jeśli używasz Tożsamość obciążeń Microsoft Entra i włączysz KEDA przed Workload ID, musisz ponownie uruchomić zasobniki operatora KEDA, aby można było wstrzyknąć odpowiednie zmienne środowiskowe:
Uruchom ponownie pody, 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-systemi znajdź zasobniki rozpoczynające się odkeda-operator.Sprawdź pomyślne wstrzyknięcie zmiennych środowiskowych, uruchamiając polecenie
kubectl describe pod <keda-operator-pod> -n kube-system. PodEnvironmentpowinna zostać wyświetlona wartość dlaAZURE_TENANT_ID,AZURE_FEDERATED_TOKEN_FILEiAZURE_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łącz dodatek KEDA w Twoim klastrze 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
Utwórz grupę zasobów przy użyciu
az group createpolecenia .az group create --name myResourceGroup --location eastusUtwórz nowy klaster usługi AKS przy użyciu
az aks createpolecenia 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łącz dodatek KEDA w istniejącym klastrze AKS
Zaktualizuj istniejący klaster przy użyciu
az aks updatepolecenia i włącz dodatek KEDA przy użyciu flagi--enable-keda.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-keda
Uzyskaj poświadczenia dla swojego klastra
Pobierz poświadczenia dla klastra usługi AKS za pomocą polecenia
az aks get-credentials.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 showpolecenia i ustaw--queryparametr naworkloadAutoScalerProfile.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 podspolecenia .kubectl get pods -n kube-systemNastępujące przykładowe dane wyjściowe pokazują, że operator KEDA, hook przyjęć i serwer interfejsu API metryk zostały zainstalowane na 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
Zweryfikuj wersję KEDA w swoim klastrze
Aby sprawdzić wersję 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
Skaluj w pionie operatora keda, jeśli występują błędy OOMKill
Jeśli w zasobnikach keda-operator występują błędy OOMKill, możesz użyć narzędzia Vertical Pod Autoscaler (VPA), aby automatycznie dostosować limity procesora i pamięci.
Włącz usługę VPA w klastrze AKS przy użyciu polecenia
az aks update.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-vpaUtwórz plik o nazwie
keda-operator-vpa.yamlz następującą konfiguracją VPA, aby skierować wdrożenie operatora keda.apiVersion: autoscaling.k8s.io/v1 kind: VerticalPodAutoscaler metadata: name: keda-operator-vpa spec: targetRef: apiVersion: "apps/v1" kind: Deployment name: keda-operator updatePolicy: updateMode: "InPlaceOrRecreate"Zastosuj konfigurację VPA do swojego klastra za pomocą polecenia
kubectl apply.kubectl apply -f keda-operator-vpa.yamlVPA automatycznie dostosowuje żądania CPU i pamięci oraz limity dla podów keda-operator na podstawie zaobserwowanego użycia.
Wyłącz dodatek KEDA na swoim klastrze AKS
Wyłącz dodatek KEDA w klastrze przy użyciu polecenia
az aks updatez 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, przejrzyj dokumentację upstream KEDA.