Share via


Kubernetes 이벤트 기반 자동 크기 조정 추가 기능 문제 해결

이 문서에서는 AKS(Microsoft Azure Kubernetes Service)에 대한 Kubernetes KEDA(이벤트 기반 자동 크기 조정) 추가 기능 문제를 해결하는 방법을 설명합니다. KEDA AKS 추가 기능을 배포할 때 애플리케이션 자동 크기 조정기의 구성과 관련된 문제가 발생할 수 있습니다. 이 문서는 오류를 해결하고 추가 기능에 영향을 주지만 공식 KEDA FAQ문제 해결 가이드에서는 다루지 않는 일반적인 문제를 resolve 데 도움이 됩니다.

필수 구성 요소

KEDA 추가 기능 지원

KEDA 추가 기능은 다른 AKS 추가 기능과 유사한 지원 모델을 따릅니다. 모든 Azure KEDA 스칼라 는 지원되지만 AKS는 타사 스칼라를 지원하지 않습니다. 타사 스칼라에 문제가 발생하는 경우 공식 KEDA GitHub 리포지토리에서 문제를 엽니다.

문제 해결 검사 목록

다음 섹션의 지침을 사용하여 KEDA 구성 요소를 확인하고 문제를 해결합니다.

사용 가능한 KEDA 버전 확인

kubectl get 명령을 사용하여 사용 가능한 KEDA 버전을 확인할 수 있습니다.

kubectl get crd/scaledobjects.keda.sh -o custom-columns='APP:.metadata.labels.app\.kubernetes\.io/version'

명령 출력에는 설치된 KEDA 버전이 표시됩니다.

APP
2.8.1

클러스터 방화벽이 올바르게 구성되었는지 확인합니다.

KEDA는 시작할 수 없으므로 애플리케이션의 크기를 조정하지 못할 수 있습니다.

연산자 로그를 검사 때 다음 텍스트와 유사한 오류 항목을 찾을 수 있습니다.

1.6545953013458195e+09 ERROR Failed to get API Group-Resources {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
sigs.k8s.io/controller-runtime/pkg/cluster.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/cluster/cluster.go:160
sigs.k8s.io/controller-runtime/pkg/manager.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/manager/manager.go:313
main.main
/workspace/main.go:87
runtime.main
/usr/local/go/src/runtime/proc.go:255
1.6545953013459463e+09 ERROR setup unable to start manager {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
main.main
/workspace/main.go:97
runtime.main
/usr/local/go/src/runtime/proc.go:255

메트릭 서버 섹션에서 KEDA를 시작할 수 없다는 것을 발견할 수 있습니다.

I0607 09:53:05.297924 1 main.go:147] keda_metrics_adapter "msg"="KEDA Version: 2.7.1"
I0607 09:53:05.297979 1 main.go:148] keda_metrics_adapter "msg"="KEDA Commit: "
I0607 09:53:05.297996 1 main.go:149] keda_metrics_adapter "msg"="Go Version: go1.17.9"
I0607 09:53:05.298006 1 main.go:150] keda_metrics_adapter "msg"="Go OS/Arch: linux/amd64"
E0607 09:53:15.344324 1 logr.go:279] keda_metrics_adapter "msg"="Failed to get API Group-Resources" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344360 1 main.go:104] keda_metrics_adapter "msg"="failed to setup manager" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344378 1 main.go:209] keda_metrics_adapter "msg"="making provider" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344399 1 main.go:168] keda_metrics_adapter "msg"="unable to run external metrics adapter" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"

이 시나리오는 잘못 구성된 방화벽으로 인해 KEDA 추가 기능을 시작할 수 없다는 것을 의미합니다. KEDA가 올바르게 실행되도록 하려면 Azure Global 필수 네트워크 규칙을 충족하도록 방화벽을 구성합니다.

자체 관리형 오픈 소스 KEDA 설치를 사용하는 클러스터에 대한 추가 기능 사용

이론적으로 Kubernetes에서 하나의 메트릭 서버만 설치하도록 허용하더라도 KEDA를 여러 번 설치할 수 있습니다. 그러나 하나의 설치만 작동하므로 여러 설치는 권장하지 않습니다.

KEDA 추가 기능이 AKS 클러스터에 설치되면 오픈 소스 KEDA의 이전 설치가 재정의되고 추가 기능이 인계됩니다. 이 시나리오에서는 자체 설치된 KEDA 배포의 사용자 지정 및 구성이 손실되고 더 이상 적용되지 않습니다.

기존 자동 크기 조정은 계속 작동할 수 있지만 이 상황에서는 위험이 발생합니다. KEDA 추가 기능은 다르게 구성되며 관리 ID와 같은 기능을 지원하지 않습니다. 설치 중에 오류를 방지하려면 KEDA 추가 기능을 사용하도록 설정하기 전에 기존 KEDA 설치를 제거하는 것이 좋습니다.

KEDA에서 사용되는 메트릭 어댑터를 확인하려면 다음 명령을 실행합니다 kubectl get .

kubectl get APIService/v1beta1.external.metrics.k8s.io -o custom-columns='NAME:.spec.service.name,NAMESPACE:.spec.service.namespace'

개요는 Kubernetes가 메트릭을 가져오는 데 사용할 서비스 및 네임스페이스를 보여 줍니다.

NAME                              NAMESPACE
keda-operator-metrics-apiserver   kube-system

경고

네임스페이스가 이 아닌 kube-system경우 AKS 추가 기능이 무시되고 다른 메트릭 서버가 사용됩니다.

워크로드 ID가 제대로 삽입되지 않은 경우 KEDA 운영자 Pod를 다시 시작하는 방법

Microsoft Entra 워크로드 ID를 사용하고 워크로드 ID를 사용하기 전에 KEDA를 사용하도록 설정하는 경우 KEDA 운영자 Pod를 다시 시작해야 합니다. 이렇게 하면 올바른 환경 변수가 삽입됩니다. 이렇게 하려면 다음과 같이 하십시오.

  1. 다음 명령을 실행하여 Pod를 다시 시작합니다.

    kubectl rollout restart deployment keda-operator -n kube-system
    
  2. 다음 명령을 실행하여 KEDA 연산자 Pod를 가져온 다음 이름이 'keda-operator'로 시작하는 Pod를 찾습니다.

    kubectl get pod -n kube-system
    
  3. 환경 변수가 성공적으로 삽입되었는지 확인하려면 다음 명령을 실행합니다.

    kubectl describe pod <keda-operator-pod-name> -n kube-system
    

    변수가 성공적으로 삽입된 경우 환경 섹션에 , AZURE_FEDERATED_TOKEN_FILEAZURE_AUTHORITY_HOST 에 대한 AZURE_TENANT_ID값이 표시됩니다.

타사 정보 고지 사항

이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 안정성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.