KEDA(Kubernetes 이벤트 기반 자동 스케일링) 추가 항목을 사용한 간소화된 애플리케이션 자동 스케일링

KEDA(Kubernetes 이벤트 기반 자동 스케일링)는 애플리케이션 자동 스케일링을 간단하게 만들려는 단일 용도의 경량 구성 요소이며 CNCF Graduate 프로젝트입니다.

이벤트 기반 자동 크기 조정을 적용하여 0으로 조정을 통해 지속 가능하고 비용 효율적인 방식으로 수요를 충족하도록 애플리케이션을 크기 조정합니다.

KEDA 추가 항목을 사용하면 관리형 KEDA 설치를 배포하여 AKS(Azure Kubernetes Services) 클러스터에서 애플리케이션을 스케일링할 수 있는 풍부한 Azure KEDA 스케일러 카탈로그를 제공하므로 작업이 더욱 쉬워집니다.

아키텍처

KEDA는 다음 두 가지 기본 구성 요소를 제공합니다.

  • KEDA 연산자를 사용하면 최종 사용자가 Kubernetes 배포, 작업, StatefulSets 또는 /scale 하위 리소스를 정의하는 사용자 지정 리소스를 지원하여 워크로드를 0에서 N 인스턴스까지 스케일링 인/아웃할 수 있습니다.
  • 메트릭 서버는 Kafka 항목의 메시지 또는 Azure Event Hubs의 이벤트 수와 같은 자동 크기 조정을 위해 Kubernetes의 수평형 Pod HPA(Horizontal Pod Autoscaler)에 외부 메트릭을 노출합니다. 업스트림 제한으로 인해 KEDA는 설치된 유일한 메트릭 어댑터여야 합니다.

Diagram that shows the architecture of K E D A and how it extends Kubernetes instead of re-inventing the wheel.

공식 KEDA 설명서에서 KEDA의 작동 방식에 대해 자세히 알아봅니다.

설치

KEDA는 ARM 템플릿 또는 Azure CLI를 사용하여 KEDA 추가 기능을 사용하도록 설정함으로써 AKS(Azure Kubernetes Service) 클러스터에 추가할 수 있습니다.

KEDA 추가 기능은 AKS와 통합된 KEDA 설치를 완벽하게 지원합니다.

기능 및 특징

KEDA는 다음과 같은 기능을 제공합니다.

  • scale-to-zero로 지속 가능하고 비용 효율적인 애플리케이션 빌드
  • Azure KEDA 크기 조정기로 구성된 풍부한 카탈로그를 사용하여 수요에 맞게 애플리케이션 워크로드 크기 조정
  • Deployments, StatefulSets 또는 /scale 하위 리소스를 정의하는 모든 사용자 지정 리소스와 같이 ScaledObjects를 사용하는 자동 크기 조정 애플리케이션
  • ScaledJobs를 사용하여 작업과 유사한 워크로드 자동 크기 조정
  • 워크로드에서 자동 크기 조정 인증을 분리하여 프로덕션 등급 보안 사용
  • 맞춤형 자동 크기 조정 결정을 사용하기 위해 자체 외부 크기 조정기 가져오기
  • 인증을 위해 Microsoft Entra 워크로드 ID와 통합

참고 항목

워크로드 ID를 사용하려는 경우 KEDA 추가 기능을 사용하도록 설정하기 전에 워크로드 ID 추가 기능을 사용하도록 설정합니다.

추가 기능 제한

KEDA AKS 추가 기능에는 다음과 같은 제한 사항이 있습니다.

  • HTTP 워크로드를 확장하기 위한 KEDA의 HTTP 추가 기능(미리 보기)은 확장과 함께 설치되지 않지만 별도로 배포할 수 있습니다.
  • Azure Cosmos DB 변경 피드를 기반으로 확장하는 KEDA의 Azure Cosmos DB용 외부 크기 조정기는 확장과 함께 설치되지 않지만 별도로 배포할 수 있습니다.
  • Kubernetes 클러스터에는 하나의 메트릭 서버만 허용됩니다. 따라서 KEDA 추가 기능은 클러스터 내부의 유일한 메트릭 서버여야 합니다.
    • 다중 KEDA 설치는 지원되지 않습니다.

일반적인 KEDA 질문의 경우 FAQ 개요를 방문하는 것이 좋습니다.

참고 항목

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 값이 표시됩니다.

지원되는 Kubernetes 및 KEDA 버전

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

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

다음 단계