9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZOZOAdvent Calendar 2024

Day 3

KEDAでKubernetes Podのゼロスケールを実現する

Last updated at Posted at 2024-12-02

本記事

KEDAを利用してKubernetes Pod数をゼロにする(ゼロスケール)方法を紹介します。

KEDAとは

イベント駆動型のオートスケーラーで、Podの水平スケールを実現するKubernetesコンポーネントです。様々な外部メトリクスをサポートしています。

ゼロスケール

Kubernetesの標準APIリソースであるHorizontal Pod Autoscaling(HPA)ではゼロスケールはできません。

厳密にはfeature gateHPAScaleToZeroを有効化すれば可能ですが、Kubernetes v1.29時点ではAlphaとなっています。

KEDAではゼロスケールを実現することが可能です。

ScaledObject

スケール対象と、その対象をスケールさせるトリガーを設定するカスタムリソースです。
今回は Cronを使用します。

Cronの設定

ゼロスケールの設定例です。毎日10時から19時の間はPodが2台稼働し、それ以外の時間帯でPodのゼロスケールを実現しています。

ポイントとしては、desiredReplicas0を設定することはできません。cron設定ではゼロスケールの時間帯を指定するのではなく、Podが稼働する時間帯を指定します。

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: sample-scaledobject
spec:
  scaleTargetRef:
    name: sample-deployment
  maxReplicaCount: 3
  minReplicaCount: 0
  triggers:
  - type: cron
    metadata:
      timezone: Asia/Tokyo
      start: 0 10 * * *
      end: 0 19 * * *
      desiredReplicas: "2"

終わりに

KEDAでKubernetes Podのゼロスケールを実現する方法を紹介しました。開発環境など平日の深夜帯や休日にPodを稼働させる必要がない場合、ゼロスケールでコストの削減が見込めます。ぜひ活用してみてください。

9
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
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?