Share via


ARM 템플릿을 사용하여 KEDA(Kubernetes 이벤트 기반 자동 크기 조정) 추가 기능 설치

이 문서에서는 ARM 템플릿을 사용하여 AKS(Azure Kubernetes Service)에 KEDA(Kubernetes 이벤트 기반 자동 스케일링) 추가 기능을 배포하는 방법을 보여 줍니다.

Important

클러스터 Kubernetes 버전은 AKS 클러스터에 설치될 KEDA 버전을 결정합니다. 각 AKS 버전에 매핑되는 KEDA 버전을 확인하려면 Kubernetes 구성 요소 버전 테이블AKS 관리되는 추가 기능 열을 참조하세요.

GA Kubernetes 버전의 경우 AKS는 테이블에 있는 해당 KEDA 부 버전을 완벽히 지원합니다. Kubernetes 미리 보기 버전과 최신 KEDA 패치 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.

시작하기 전에

참고 항목

Microsoft Entra 워크로드 ID를 사용 중이고 워크로드 ID 전에 KEDA를 사용하도록 설정하는 경우 적절한 환경 변수를 주입할 수 있도록 KEDA 연산자 Pod를 다시 시작해야 합니다.

  1. kubectl rollout restart deployment keda-operator -n kube-system을 실행하여 Pod를 다시 시작합니다.

  2. kubectl get pod -n kube-system을 사용하여 keda-operator로 시작하는 Pod를 찾아 KEDA 연산자 Pod를 가져옵니다.

  3. kubectl describe pod <keda-operator-pod> -n kube-system을 실행하여 환경 변수를 성공적으로 주입했는지 확인합니다. Environment 아래 AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE, AZURE_AUTHORITY_HOST값이 표시됩니다.

SSH 키 쌍 만들기

  1. Azure Cloud Shell로 이동합니다.

  2. az sshkey create 명령을 사용하여 SSH 키 쌍을 만듭니다.

    az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
    

ARM 템플릿으로 KEDA 추가 기능 사용

  1. AKS 클러스터용 ARM 템플릿을 배포합니다.

  2. 템플릿 편집을 선택합니다.

  3. 다음 예에 표시된 대로 ARM 템플릿에서 workloadAutoScalerProfile 필드를 지정하여 KEDA 추가 기능을 사용하도록 설정합니다.

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. 저장을 선택합니다.

  5. ARM 템플릿에 필요한 값을 업데이트합니다.

    • 구독: 배포에 사용할 Azure 구독을 선택합니다.
    • 리소스 그룹: 배포에 사용할 리소스 그룹을 선택합니다.
    • 지역: 배포에 사용할 지역을 선택합니다.
    • DNS 접두사: 클러스터에 사용할 고유한 DNS 이름을 입력합니다.
    • Linux 관리 사용자 이름: 클러스터의 사용자 이름을 입력합니다.
    • SSH 공개 키 원본: Azure에 저장된 기존 키 사용을 선택합니다.
    • 키 저장: 문서 앞부분에서 만든 키 쌍을 선택합니다.
  6. 검토 + 만들기>만들기를 차례로 선택합니다.

AKS 클러스터에 연결

로컬 디바이스에서 Kubernetes 클러스터에 연결하려면 Kubernetes 명령줄 클라이언트인 kubectl을 사용합니다.

Azure Cloud Shell을 사용하는 경우 kubectl이 이미 설치되어 있습니다. az aks install-cli 명령을 사용하여 kubectl을 로컬로 설치할 수도 있습니다.

  • kubectl을 구성하여 Kubernetes 클러스터에 연결하고 az aks get-credentials 명령을 사용합니다. 다음 예제에서는 MyResourceGroup에서 MyAKSCluster라는 이름의 AKS 클러스터를 위한 자격 증명을 가져옵니다.
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster

배포 예제

다음 코드 조각은 3개의 DS2_v5 노드로 구성된 단일 노드 풀로 활성화된 KEDA를 통해 클러스터를 만드는 샘플 배포입니다.

{
    "$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"
            }
        }
    ]
}

KEDA를 사용하여 앱 스케일링 시작

CRD(사용자 지정 리소스 정의)를 사용하여 KEDA로 앱을 자동 크기 조정할 수 있습니다. 자세한 내용은 KEDA 설명서를 참조하세요.

리소스 제거

  • az group delete 명령을 사용하여 리소스 그룹 및 모든 관련 리소스를 제거합니다.

    az group delete --name <resource-group-name>
    

다음 단계

이 문서에서는 AKS 클러스터에 KEDA 추가 항목을 설치한 다음, 설치 및 실행 중인지 확인하는 방법을 보여 줍니다. 클러스터에 KEDA 추가 기능이 설치되어 있으면 샘플 애플리케이션을 배포하여 앱 스케일링을 시작할 수 있습니다.

KEDA 문제 해결에 대한 자세한 내용은 KEDA(Kubernetes Event-driven Autoscaling) 부가기능 문제 해결을 참조하세요.

자세한 내용은 업스트림 KEDA 문서를 참조하세요.