LoginSignup
0
0

KEDAを使用してEKSのAutoScalingを組む

Last updated at Posted at 2024-05-11

記事概要

EKSにてKEDAを利用してAutoScalingをCloudWatchMetricsをもとに組む

対象読者

  • EKSを使用してAutoScalingが組みたい
  • KEDAを使用したサービスを作りたい

KEDAを使用したスケーリング

前提条件

構築方法

  1. KEDA公式ドキュメントに従ってKEDA(1.24)をデプロイ(YAMLもしくはHelm)
  2. kedaのネームスペース内にkeda-operatorというサービスアカウントが作成されるのでロールをアノテートする。
    ロールのポリシーは公式サイトを参照し、GetMetricsのアクションを許可。
  3. kedaというnamespaceのkeda-operatorという名前のデプロイメントを再作成する
    kubectl rollout restart deployments/keda-operator -n keda
  4. TriggreAuthenticationとScaledObjectのYAMLを作成し、applyする
    spec.advanced.behaviorはサンプルです。このままやるとよ謎の挙動になります。
    HPAのスケーリングポリシーを参考に自分で調節してみてください
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: auth-keda
  namespace: {アプリの名前空間}
spec:
  podIdentity:
    provider: aws
    identityOwner: keda
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: aws-cloudwatch-scaledobject
  namespace: {アプリの名前空間}
spec:
  scaleTargetRef:
    name: {スケーリング対象のデプロイメント}
  minReplicaCount:  0
  advanced:
    horizontalPodAutoscalerConfig:
      behavior:
        scaleDown:
          stabilizationWindowSeconds: 60
          policies:
          - type: Percent
            value: 100
            periodSeconds: 15
        scaleUp:
          stabilizationWindowSeconds: 0
          policies:
          - type: Percent
            value: 20
            periodSeconds: 30
          - type: Pods
            value: 1
            periodSeconds: 30
          selectPolicy: Max
  triggers:
  - type: aws-cloudwatch
    metadata:
      namespace: AWS/ApplicationELB
      dimensionName: TargetGroup
      dimensionValue: {対象となるメトリクスのディメンション名}
      metricName: RequestCountPerTarget
      targetMetricValue: "6"
      minMetricValue: "0"
      metricCollectionTime: "120"
      metricStat: "Sum"
      metricStatPeriod: "60"
      awsRegion: {リージョン}
    authenticationRef:
      name: auth-keda
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0