Udostępnij za pośrednictwem


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:

  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.

Tworzenie pary kluczy SSH

  1. Przejdź do usługi Azure Cloud Shell.

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

  1. Wdróż szablon usługi ARM dla klastra usługi AKS.

  2. Wybierz pozycję Edytuj szablon.

  3. 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
            }
        }
    
  4. Wybierz pozycję Zapisz.

  5. 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.
  6. 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.