Instalowanie dodatku Kubernetes Event-driven Autoscaling (KEDA) przy użyciu szablonu usługi ARM
W tym artykule pokazano, jak wdrożyć dodatek do automatycznego skalowania opartego na zdarzeniach platformy Kubernetes (KEDA) platformy Kubernetes Service (AKS) przy użyciu szablonu usługi ARM.
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.
- W tym artykule założono, że masz istniejącą grupę zasobów platformy Azure. Jeśli nie masz istniejącej grupy zasobów, możesz go utworzyć przy użyciu
az group create
polecenia . - 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).
- Utwórz parę kluczy SSH.
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:
Uruchom ponownie zasobniki, 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-system
zasobników i znajdowanie zasobników rozpoczynających się odkeda-operator
.Sprawdź pomyślne wstrzyknięcie zmiennych środowiskowych, uruchamiając polecenie
kubectl describe pod <keda-operator-pod> -n kube-system
. W obszarzeEnvironment
powinna zostać wyświetlona wartość ,AZURE_FEDERATED_TOKEN_FILE
AZURE_TENANT_ID
iAZURE_AUTHORITY_HOST
.
Tworzenie pary kluczy SSH
Przejdź do usługi Azure Cloud Shell.
Utwórz parę kluczy SSH przy użyciu
az sshkey create
polecenia .az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
Włączanie dodatku KEDA z szablonem usługi ARM
Wdróż szablon usługi ARM dla klastra usługi AKS.
Wybierz pozycję Edytuj szablon.
Włącz dodatek KEDA, określając
workloadAutoScalerProfile
pole w szablonie usługi ARM, jak pokazano w poniższym przykładzie:"workloadAutoScalerProfile": { "keda": { "enabled": true } }
Wybierz pozycję Zapisz.
Zaktualizuj wymagane wartości szablonu usługi ARM:
- Subskrypcja: wybierz subskrypcję platformy Azure do użycia na potrzeby wdrożenia.
- Grupa zasobów: wybierz grupę zasobów do użycia na potrzeby wdrożenia.
- Region: wybierz region, który ma być używany do wdrożenia.
- Prefiks DNS: wprowadź unikatową nazwę DNS, która ma być używana dla klastra.
- Nazwa użytkownika administratora systemu Linux: wprowadź nazwę użytkownika klastra.
- Źródło klucza publicznego SSH: wybierz pozycję Użyj istniejącego klucza przechowywanego na platformie Azure.
- Klucze sklepu: wybierz parę kluczy utworzoną wcześniej w artykule.
Wybierz pozycję Przeglądanie + tworzenie>Utwórz.
Nawiązywanie połączenia z klastrem usługi AKS
Aby nawiązać połączenie z klastrem Kubernetes z urządzenia lokalnego, należy użyć narzędzia kubectl, klienta wiersza polecenia kubernetes.
Jeśli korzystasz z usługi Azure Cloud Shell, narzędzie kubectl
jest już zainstalowane. Można go również zainstalować lokalnie przy użyciu az aks install-cli
polecenia .
- Skonfiguruj
kubectl
, aby nawiązać połączenie z klastrem Kubernetes, użyj polecenia az aks get-credentials . Poniższy przykład pobiera poświadczenia dla klastra usługi AKS o nazwie MyAKSCluster w grupie MyResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster
Przykładowe wdrożenie
Poniższy fragment kodu to przykładowe wdrożenie, które tworzy klaster z włączoną funkcją KEDA z jedną pulą węzłów składającą się z trzech DS2_v5
węzłów.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"apiVersion": "2023-03-01",
"dependsOn": [],
"type": "Microsoft.ContainerService/managedClusters",
"location": "westcentralus",
"name": "myAKSCluster",
"properties": {
"kubernetesVersion": "1.27",
"enableRBAC": true,
"dnsPrefix": "myAKSCluster",
"agentPoolProfiles": [
{
"name": "agentpool",
"osDiskSizeGB": 200,
"count": 3,
"enableAutoScaling": false,
"vmSize": "Standard_D2S_v5",
"osType": "Linux",
"type": "VirtualMachineScaleSets",
"mode": "System",
"maxPods": 110,
"availabilityZones": [],
"nodeTaints": [],
"enableNodePublicIP": false
}
],
"networkProfile": {
"loadBalancerSku": "standard",
"networkPlugin": "kubenet"
},
"workloadAutoScalerProfile": {
"keda": {
"enabled": true
}
}
},
"identity": {
"type": "SystemAssigned"
}
}
]
}
Rozpoczynanie skalowania aplikacji za pomocą usługi KEDA
Aplikacje można skalować automatycznie za pomocą usługi KEDA przy użyciu niestandardowych definicji zasobów (CRD). Aby uzyskać więcej informacji, zobacz dokumentację KEDA.
Usuwanie zasobów
Usuń grupę zasobów i wszystkie powiązane zasoby przy użyciu
az group delete
polecenia .az group delete --name <resource-group-name>
Następne kroki
W tym artykule pokazano, jak zainstalować dodatek KEDA w klastrze usługi AKS, a następnie sprawdzić, czy jest zainstalowany i uruchomiony. 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.
Azure Kubernetes Service