Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

KEDAによるイベント駆動ジョブスケール / Event-driven job scale b...

KEDAによるイベント駆動ジョブスケール / Event-driven job scale by KEDA

Kubernetes Novice Tokyo #25 LT でお話しした資料です
https://k8s-novice-jp.connpass.com/event/282344/

kohbis

May 27, 2023
Tweet

More Decks by kohbis

Other Decks in Technology

Transcript

  1. MIXI, Inc. Agenda 1. Introduction 2. KEDA とは 3. KEDA

    によるバックグラウンドジョブのスケール 4. KEDA を動かしてみる 5. まとめ
  2. MIXI, Inc. About Me • Kubernetes 歴 1年 • Kubernetes

    Novice Tokyo 勉強会には大変お世話になっています Kohei SUGIMOTO 株式会社MIXI 2022/04 ~『家族アルバム みてね』 SRE Twitter : @kohbis
  3. MIXI, Inc. 『家族アルバム みてね』のアーキテクチャ(概要) • Amazon EKS クラスター上の Ruby on

    Rails アプリケーションがほとんど • バックグラウンドジョブは基本的にい ずれか ◦ Shoryuken - Amazon SQS ◦ Sidekiq - Redis
  4. MIXI, Inc. KEDA - Kubernetes Event-driven Autoscaling • 様々なイベントリソースのメトリクスに対応した Scalers

    を選択してコンテナのス ケーリングを実現するコンポーネント ◦ Amazon SQS、Google Cloud Pub/Sub などビルトインで 50 以上 • HPA (Horizontal Pod Autoscaler) の CPU/メモリベースでは対応できないケースに活 用できる ◦ 例 ▪ CPU 使用率が上がるまでなかなかスケールされない ▪ I/O 待ちや API 通信が多く CPU 使用率が上がりきらない • ScaledObject という CR の定義に従って内部的に HPA を作成、更新、削除
  5. MIXI, Inc. KEDA の役割 • Agent ◦ Deploymentsのアクティブ/非アクティブを管理 ◦ イベントがないときはレプリカ数を

    0 にスケー ルインさせることができる • Metrics ◦ キューの長さなどイベントデータを HPA に公開 • Admission Webhooks ◦ リソースへの変更を検証して設定ミスを防止 引用元: https://keda.sh/docs/2.10/concepts/#architecture
  6. MIXI, Inc. バックグラウンドジョブのスケール • 『家族アルバム みてね』の場合 ◦ Shoryuken ▪ KEDA

    による SQS メッセージサイズでのスケール ◦ Sidekiq ▪ KEDA + Prometheus による Busy ワーカー割合でのスケール
  7. MIXI, Inc. Shoryuken - KEDA による SQS メッセージサイズでのスケール • Shoryuken

    ◦ Amazon SQS をバックエンドに非同期処理を実装できる • AWS SQS Queue Scaler を利用
  8. MIXI, Inc. Sidekiq - KEDA + Prometheus による Busy ワーカー割合でのスケール

    • Sidekiq ◦ Redis をバックエンドに非同期処理を実装できる ◦ API (Sidekiq::ProcessSet) からメトリクス取得が可能 • Sidekiq メトリクスを Prometheus Exporter で公開 • Prometheus Scaler を利用して “Busy ワーカー数 / 並列数 = 稼働率” でスケール
  9. MIXI, Inc. KEDA を動かしてみる - 準備 • 環境 : Rancher

    Desktop • Metrics API Scaler を利用 { "metrics": { "count": 1 } }
  10. MIXI, Inc. まとめ • KEDA でイベント駆動のオートスケールを実現できる • KEDA は様々なイベントリソースに対応した Scalers

    がある • KEDA は最小 0 のスケールインが可能、コスト効率のよいリソース活用ができる KEDA は既存リソースへの変更少なく導入が可能 Knative Eventing や各マネージドサービス機能と比較・検討しつつ サクッと試してもよいかも。