4
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 21

【中編】ゼロから学ぶKEDA:アーキテクチャ・ベストプラクティス解説【コスト削減編】

Last updated at Posted at 2024-12-21

はじめに

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

【中編】となる本記事では、KEDAのアーキテクチャに焦点を当て、ベストプラクティスについても解説します。

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

対象読者

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

KEDAアーキテクチャ

  • KEDAは、Kubernetes標準機能である Horizontal Pod Autoscaler (HPA) を活用しつつ、イベント駆動型のスケーリングを可能にする拡張機能を提供します。その大きな特徴は 0↔1スケール を実現することで、HPAの制限を超えた柔軟なPod管理が可能です。(詳しくは【前編】ゼロから学ぶKEDA:概要と導入目的をご覧ください)

スクリーンショット 2024-12-15 16.46.30.png
上記の画像はKEDA公式サイトより引用しています。

動作フロー

  1. ScaledObjectに登録
    ターゲットやトリガー条件を設定し、KEDAに登録します。
  2. トリガーの監視
    KEDAは指定されたトリガーを定期的にチェックし、条件が満たされた場合に動作します。
  3. Podのスケール制御
    条件に応じて、HPAを作成し、Podを動的にスケールします。

図全体の構成と流れのイメージ

KEDAの内部構造は以下の 3つの主要コンポーネント で構成され、それぞれが連携してPodのスケーリングを支えています。

名前 役割、説明
keda-operator - ゼロスケール時にPod数を 0→11→0 に制御
keda-metrics-apiserver - Scalerが取得した外部メトリクスをHPAに連携
- 実際のスケーリングはHPAが実行(Pod数 1→nn→1
keda-admission - リソース構成をバリデーションし、設定ミスを防止
- マニフェストの構成エラーを未然に防ぐ

動作確認コマンド

KEDAの各コンポーネントが正常に動作しているかを確認するには、以下のコマンドを実行します。
※ KEDAのセットアップ方法については【後編】で詳しく解説します。

> kubectl get po -n keda

NAME                                     READY   STATUS    RESTARTS   AGE
keda-admission-7bd8cb458d-chn7q          1/1     Running   0          5d10h
keda-metrics-apiserver-fbd9dc66f-zvcvz   1/1     Running   0          2d16h
keda-operator-859b7bc75c-2grnt           1/1     Running   0          4d

KEDAのベストプラクティス

KEDAを運用する際のベストプラクティスについて解説します。
(詳細は KEDA公式ドキュメントのベストプラクティス をご参照ください。)

同じターゲットに対して複数のトリガーを使用する

  • 設定: ScaledObject内に複数のトリガーを指定可能です。
  • メリット:
    • 異なるトリガーの組み合わせにより、柔軟なスケーリングポリシーを構築できる。
    • ルールを一箇所で管理しやすい。

KEDAのScaledObjectと独自のHPAを組み合わせて利用しない

  • 理由: KEDAが内部で作成するHPAと競合するリスクがあるためです。
  • 推奨:
    CPUやメモリを基準にスケールする場合は、KEDAの CPUスケーラーメモリスケーラー を使用しましょう。

まとめ

次回の【後編】では、KEDAの導入手順や設定例について解説します。

【後編】に続く

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

4
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
4
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?