AKS(Azure Kubernetes Service) Kubernetes KEDA(이벤트 기반 자동 크기 조정) 추가 기능을 사용한 간소화된 애플리케이션 자동 크기 조정

중요합니다

AKS용 KEDA 추가 기능은 현재 메트릭 서버 또는 연산자에 대한 CPU 요청 또는 제한 및 기타 Helm 값 수정을 지원하지 않습니다. 추가 기능을 사용할 때는 이 제한 사항에 유의하세요. 질문이 있으면 여기에 자유롭게 연락하십시오.

Kubernetes KEDA(이벤트 기반 자동 크기 조정)는 애플리케이션 자동 크기 조정을 간단하게 만드는 단일 용도의 경량 구성 요소입니다. CNCF(Cloud Native Computing Foundation) 대학원 프로젝트입니다. KEDA는 이벤트 기반 오토스케일링과 scale-to-zero 기능을 통해 애플리케이션이 수요에 맞게 지속 가능하고 비용 효율적으로 확장 또는 축소되도록 합니다.

대부분의 프로덕션 워크로드에서 AKS Automatic은 권장되는 기본 AKS 환경입니다. AKS Automatic은 기본적으로 프로덕션 준비가 되어 있으며 클러스터에 미리 구성된 KEDA를 포함합니다. AKS 표준을 사용하는 경우 관리되는 KEDA 추가 기능을 사용하여 KEDA를 사용하도록 설정할 수 있습니다.

AKS Automatic에 대한 자세한 내용은 AKS(Azure Kubernetes Service) Automatic이란? 참조하세요.

참고

KEDA 버전 2.15+에는 Pod ID 지원을 제거하는 호환성이 손상되는 변경이 도입되었습니다. Pod ID를 사용하는 경우 인증을 위해 워크로드 ID로 이동하는 것이 좋습니다. KEDA 관리되는 추가 기능은 현재 KEDA 버전 2.15 이상을 실행하지 않지만 관리되는 추가 기능은 AKS 미리 보기 버전 1.32에서 KEDA 2.15 이상 실행을 시작합니다.

워크로드 ID를 사용하여 애플리케이션을 안전하게 확장하는 방법에 대한 자세한 내용은 자습서를 참조하세요. KEDA의 주요 변경 사항/사용 중단을 확인하려면 공식 문서를 읽어보세요.

AKS Automatic 및 AKS Standard의 KEDA

KEDA는 두 AKS 클러스터 모드에서 모두 사용할 수 있지만 설치 경로는 다릅니다.

  • AKS 자동: KEDA가 미리 구성되어 있으며 사용할 준비가 된 것입니다.
  • AKS 표준: AKS 관리되는 추가 기능을 켜서 KEDA를 사용하도록 설정합니다.

대부분의 프로덕션 시나리오에서는 AKS Automatic부터 시작하여 프로덕션 준비 기본값을 사용하고 클러스터 관리 오버헤드를 줄입니다.

아키텍처

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

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

KEDA의 아키텍처와 Kubernetes를 확장하는 방법을 보여 주는 다이어그램

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

설치 및 사용

AKS 자동화

KEDA는 AKS 자동에서 미리 구성됩니다. 별도의 KEDA 추가 기능 설치 단계가 필요하지 않습니다.

AKS 표준

다음 방법 중 하나를 사용하여 AKS Standard에서 KEDA를 사용하도록 설정합니다.

관리형 KEDA 추가 기능은 AKS와 통합된 완전히 지원되는 KEDA 설치를 제공합니다.

기능 및 특징

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

  • 수요가 감소하면 워크로드 크기를 0으로 조정합니다.
  • Azure KEDA 스칼라를 사용하여 수요에 맞게 애플리케이션 워크로드를 확장합니다.
  • 배포, StatefulSets, 또는 /scale 하위 리소스를 정의하는 사용자 지정 리소스와 같은 ScaledObjects를 사용하여 애플리케이션을 자동 확장합니다.
  • ScaledJobs를 사용하여 작업형 워크로드를 자동으로 크기 조정합니다.
  • 워크로드에서 자동 크기 조정 인증을 분리하여 프로덕션 수준의 보안을 사용합니다.
  • 사용자 지정 자동 크기 조정 논리에 대한 사용자 고유의 외부 스케일러를 가져옵니다.
  • 인증을 위해 Microsoft Entra 워크로드 ID 통합합니다.

AKS Automatic에서는 클러스터가 KEDA로 미리 구성되어 있으므로 기본적으로 이러한 이벤트 기반 자동 크기 조정 기능을 가져옵니다.

참고

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

프로덕션 지침

다음 지침을 사용하여 클러스터 모드를 선택합니다.

  • KEDA가 미리 구성된 프로덕션 준비 기본 환경을 원하는 경우 AKS 자동을 선택합니다.
  • 더 심층적인 클러스터 수준 사용자 지정 및 명시적 추가 기능 관리가 필요한 경우 AKS 표준을 선택합니다.
  • 이벤트 기반 자동 크기 조정 워크로드의 경우 어느 모드에서든 KEDA를 사용합니다.

추가 기능 제한

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

  • HTTP 워크로드를 확장하기 위한 KEDA의 HTTP 추가 기능(미리 보기)은 확장과 함께 설치되지 않지만 별도로 배포할 수 있습니다.
  • Azure Cosmos DB 변경 피드를 기반으로 확장하는 KEDA의 Azure Cosmos DB용 외부 크기 조정기는 확장과 함께 설치되지 않지만 별도로 배포할 수 있습니다.
  • Kubernetes 클러스터에서는 외부 메트릭 서버를 하나만 허용합니다. 이러한 이유로 KEDA 추가 기능은 클러스터 내부의 유일한 외부 메트릭 서버여야 합니다.
    • 다중 KEDA 설치는 지원되지 않습니다.
  • KEDA ScaledObject 와 HPA(Horizontal Pod Autoscaler)를 결합하여 동일한 워크로드의 크기를 조정하는 것은 권장되지 않습니다. KEDA는 백그라운드에서 HPA(Horizontal Pod Autoscaler)를 사용하고 이상한 크기 조정 동작을 초래하기 때문에 KEDA의 구성 요소들이 서로 경쟁합니다.
    • HPA를 먼저 만들면 KEDA ScaledObject 가 만들어지고 KEDA ScaledObject 를 만들지 못합니다.
    • KEDA ScaledObject 를 먼저 만든 다음 HPA를 만든 경우 HPA 생성이 차단되지 않습니다.

일반적인 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 패치 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.