KEDA 및 Azure Service Bus를 사용한 K8s POD 자동 확장
KEDA는 Horizontal Pod Autoscaler와 같은 표준 Kubernetes 구성 요소와 함께 작동하며 덮어쓰거나 복제하지 않고 기능을 확장할 수 있습니다.
Keda는 클러스터 내에서 Kubernetes Horizontal Pod Autoscaler를 통해 ScaledObject 매니페스트 파일에 설정된 최소 포드 수에서 최대 포드 수까지 확장하는 keda-operator와 확장 결정을 위한 데이터를 가져오는 keda-operator-metrics-apiserver라는 두 가지 핵심 역할을 맡았습니다.
케다 설치
Keda operator 및 metric api-server는 자체 네임스페이스에 설치할 수 있으며 확장할 포드가 있는 동일한 네임스페이스에 실제 scaledobject 구성 요소를 배포합니다.
Keda는 다양한 방법으로 설치할 수 있습니다. 저는 Helm을 사용하기로 했습니다. kubectl 스크립트는 Keda에서도 사용할 수 있습니다website .
Helm을 사용하여 Keda 설치
Helm 저장소 추가
helm repo add kedacore https://kedacore.github.io/charts
Helm 저장소 업데이트
helm repo update
Keda Helm 차트 설치
kubectl create namespace keda
helm install keda kedacore/keda --namespace keda
Azure Service Bus SAS 정책 구성
ServiceBus에서 작동하도록 KEDA를 구성하려면 관리 권한이 필요합니다.
KEDA yaml 매니페스트에서 업데이트하기 위해 이 SAS 키에서 연결 문자열을 선택할 수 있습니다.
YAML 매니페스트
크기 조정은 Azure Service Bus 인증에 TriggerAuthentication 개체를 사용하는 ScaledObject에 의해 이루어집니다.
apiVersion: v1
kind: Secret
metadata:
namespace: poc
name: keda-secrets
labels:
app: exchange-jobs
data:
management-connectionstring: <***Your base 64 encoded connection string from Azure SAS Key section with manage permissions****>
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
namespace: poc
name: exchange-jobs-keda-scaler
spec:
scaleTargetRef:
name: exchange-jobs
pollingInterval: 1 # Optional. Default: 30 seconds - checks for the changes
cooldownPeriod: 20 # Optional. Default: 300 seconds - shutdown - need to find a sweet spot , Its better to keep default so that we don't interrupt any running processes
minReplicaCount: 0
maxReplicaCount: 50 # Optional. Default: 100
triggers:
- type: azure-servicebus
metadata:
topicName: mytopic
subscriptionName: S1
namespace: test-sb-keda-scaler
messageCount: "5" # need to find a sweet spot
authenticationRef:
name: keda-sbus-auth
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
namespace: poc
name: keda-sbus-auth
spec:
secretTargetRef:
- parameter: connection
name: keda-secrets
key: management-connectionstring
위의 yaml은 포드가 있는 네임스페이스에 적용할 수 있으며 예상대로 작동해야 합니다.
참고 사항:
콘솔 앱 테스트를 위해 SBUS 주제 발신자 및 수신자가 필요한 경우 찾으십시오here .
몇 가지 유용한 참고 자료입니다.
◉ Kubernetes 이벤트 기반 자동 확장 – https://aka.ms/azfr/662/01
◉ GitHub의 KEDA – https://aka.ms/azfr/662/02
◉ KEDA를 사용하는 Kubernetes의 Azure Functions – https://aka.ms/azfr/662/03
◉ Azure Friday - KEDA를 사용하는 Kubernetes의 Azure 서버리스 – https://aka.ms/azfr/662/04
Reference
이 문제에 관하여(KEDA 및 Azure Service Bus를 사용한 K8s POD 자동 확장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/paul8989/k8s-pod-auto-scaling-with-keda-and-azure-service-bus-1en7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)