3
1

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 14

【前編】ゼロから学ぶKEDA:概要と導入目的

Posted at

はじめに

この記事では、Kubernetesでイベント駆動型スケーリングを実現する KEDAについて、基礎から応用(導入)までを解説します。
「KEDAとは何か?」 という基本的な疑問から始め、KEDAのアーキテクチャやベストプラクティス、さらに実際の導入方法までを3部構成で整理し、KEDAの仕組みと運用を理解できるように構成しています。

【前編】では、「KEDAの基礎」について取り上げ、KEDAの概要、そして導入のモチベーションについて詳しく説明します。

対象読者

  • Kubernetesを学習・導入している方
  • KEDAって聞いたことがあるけど、「何をどうスケールしてくれるのかわからない」という方
  • 「KEDAの導入に興味はあるけど、どこから手をつければいいかわからない」と悩んでいる方

KEDAとは

KEDAは、Kubernetesにおけるイベント駆動型のオートスケーラーです。通常のHPA 
(Horizontal Pod Autoscaler)の仕組みを活用しつつ、独自の拡張機能を提供することで、以下のような柔軟なスケーリングを実現します。


主な特徴

  1. ゼロスケールの対応
    HPAではPod数を1以上に保つ必要がありますが、KEDAでは 0→11→0 のスケーリングが可能です。
  2. 柔軟なスケーリング条件
    CPUやメモリだけでなく、外部メトリクス(例: メッセージキューの長さ、APIリクエスト数)をトリガーにスケール条件を設定できます。
  3. カスタムリソースを活用
    ScaledObject というカスタムリソースを使用して、スケールの設定やトリガーの条件を簡単に記述できます。

KEDAは、登録されたトリガーを定期的に監視し、条件に合致すると、ターゲットとなるPodを起動または停止します。また、必要に応じてHPAを自動的に作成します。この仕組みにより、リソースを効率的に管理し、コスト削減を実現します。

KEDAを導入する理由(モチベーション)

KEDAは、非稼働時間帯にPodを停止(ゼロスケール)することで、リソース利用を最小化できます。例えば、開発環境やステージング環境で、深夜や休日にPodを停止することで、GKEのリソースコストを削減できます。

さらに、Datadogなどの監視ツールとの連携で、監視対象リソースを減らし、モニタリングコストを削減することも可能です。

柔軟なスケーリング条件の対応

KEDAでは、以下のようなスケーリング条件を設定できます。

  1. Cronベースのスケーリング
    特定の時間帯や期間中のみスケールを維持する必要がある場合に便利です。

  2. 複数トリガーの組み合わせ
    例: CPU使用率とメッセージキューの長さを条件にした複雑なスケール条件を設定可能です。

KEDA導入時の注意点

便利なKEDAですが、導入にあたっていくつかの注意点を考慮する必要があります。


  1. スケールアップ時のタイムラグ
    Pod数が0から起動する場合、数秒のタイムラグが発生します。このタイムラグは、即時性が求められる処理では課題となる可能性があるため、必要に応じて事前に手動でスケールアップする対応が必要です。

  2. HPAとの互換性
    KEDAを導入すると独自で設定しているHPAと競合します。必要最低限のPod数を確保する準備を整えた上でKEDAへ移行する必要があります。

  3. 外形監視の調整
    ゼロスケール時には、監視ツールがPodの停止をアラートとして検知する可能性があります。これを回避するためには、ダウンタイム設定を行うなどの監視設定の見直しが必要です。

まとめ

KEDAを導入することで、Kubernetes環境のリソース管理が大幅に効率化され、コスト削減に大きな効果をもたらします。ぜひ活用してみてください。

次回予告

次回の【中編】では、KEDAのアーキテクチャに焦点を当て、その内部構造や動作の仕組みを詳しく解説します。
【後編】では、KEDAの導入手順を実践的に紹介し、ScaledObjectの設定方法などについて解説します。

いいね・コメントお待ちしています!

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?