Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KEDAによるイベント駆動ジョブスケール / Event-driven job scale b...
Search
kohbis
May 27, 2023
Technology
2
1.3k
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
Share
More Decks by kohbis
See All by kohbis
Grafana MCP serverでなんかし隊 / Try Grafana MCP server
kohbis
0
390
Custom Prometheus Exporterによる オブザーバビリティ拡張 / Extending observability with Custom Prometheus Exporter
kohbis
1
120
データベースで見る『家族アルバム みてね』の変遷 / The Evolution of Family Album Through the Lens of Databases
kohbis
5
1.3k
SREコミュニティイベントとわたし / Me and SRE community events
kohbis
2
190
サクッと試すNew Relic Kubernetes APM auto-attach / New Relic Kubernetes APM auto-attach
kohbis
0
370
悩ましきインシデント管理 みてねのケース / Incident management is a tough
kohbis
2
770
サービス成長と共に肥大化するモノレポ、長くなるCI時間 / As services grow, monorepos get bigger and CI time gets longer
kohbis
5
3.2k
そこまで大規模じゃない EKS環境を(あまり)頑張らずに 最新化し続けたい / FamilyAlbum EKS Continuous Improvement
kohbis
2
1.8k
1,800万人が利用する『家族アルバム みてね』におけるK8s基盤のアップグレード戦略と継続的改善 / FamilyAlbum's upgrade strategy and continuous improvement for K8s infrastructure
kohbis
5
4.2k
Other Decks in Technology
See All in Technology
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
170
[TechNight #90-1] 本当に使える?ZDMの新機能を実践検証してみた
oracle4engineer
PRO
3
140
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
4
1.1k
Observability infrastructure behind the trillion-messages scale Kafka platform
lycorptech_jp
PRO
0
130
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
180
A2Aのクライアントを自作する
rynsuke
1
160
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
110
OpenHands🤲にContributeしてみた
kotauchisunsun
1
310
本当に使える?AutoUpgrade の新機能を実践検証してみた
oracle4engineer
PRO
1
130
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
12
4.4k
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
5
570
OAuth/OpenID Connectで実現するMCPのセキュアなアクセス管理
kuralab
5
910
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Fireside Chat
paigeccino
37
3.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Adopting Sorbet at Scale
ufuk
77
9.4k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
920
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Transcript
KEDAによる イベント駆動ジョブスケール @kohbis Kubernetes Novice Tokyo #25
MIXI, Inc. Agenda 1. Introduction 2. KEDA とは 3. KEDA
によるバックグラウンドジョブのスケール 4. KEDA を動かしてみる 5. まとめ
MIXI, Inc. Introduction
MIXI, Inc. About Me • Kubernetes 歴 1年 • Kubernetes
Novice Tokyo 勉強会には大変お世話になっています Kohei SUGIMOTO 株式会社MIXI 2022/04 ~『家族アルバム みてね』 SRE Twitter : @kohbis
MIXI, Inc. 子どもの写真・動画を、無料・無制限に 共有できるスマートフォンアプリです
MIXI, Inc. 『家族アルバム みてね』のアーキテクチャ(概要) • Amazon EKS クラスター上の Ruby on
Rails アプリケーションがほとんど • バックグラウンドジョブは基本的にい ずれか ◦ Shoryuken - Amazon SQS ◦ Sidekiq - Redis
MIXI, Inc. KEDA
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 を作成、更新、削除
MIXI, Inc. KEDA の役割 • Agent ◦ Deploymentsのアクティブ/非アクティブを管理 ◦ イベントがないときはレプリカ数を
0 にスケー ルインさせることができる • Metrics ◦ キューの長さなどイベントデータを HPA に公開 • Admission Webhooks ◦ リソースへの変更を検証して設定ミスを防止 引用元: https://keda.sh/docs/2.10/concepts/#architecture
MIXI, Inc. KEDA による バックグラウンドジョブのスケール
MIXI, Inc. バックグラウンドジョブのスケール • 『家族アルバム みてね』の場合 ◦ Shoryuken ▪ KEDA
による SQS メッセージサイズでのスケール ◦ Sidekiq ▪ KEDA + Prometheus による Busy ワーカー割合でのスケール
MIXI, Inc. Shoryuken - KEDA による SQS メッセージサイズでのスケール • Shoryuken
◦ Amazon SQS をバックエンドに非同期処理を実装できる • AWS SQS Queue Scaler を利用
MIXI, Inc. Sidekiq - KEDA + Prometheus による Busy ワーカー割合でのスケール
• Sidekiq ◦ Redis をバックエンドに非同期処理を実装できる ◦ API (Sidekiq::ProcessSet) からメトリクス取得が可能 • Sidekiq メトリクスを Prometheus Exporter で公開 • Prometheus Scaler を利用して “Busy ワーカー数 / 並列数 = 稼働率” でスケール
MIXI, Inc. Sidekiq - KEDA + Prometheus による Busy ワーカー割合でのスケール
MIXI, Inc. KEDA を動かしてみる
MIXI, Inc. KEDA を動かしてみる - 準備 • 環境 : Rancher
Desktop • Metrics API Scaler を利用 { "metrics": { "count": 1 } }
MIXI, Inc. KEDA を動かしてみる - KEDA のインストール • 公式ドキュメント Deploying
KEDA #install にしたがって Helm でインストール
MIXI, Inc. KEDA を動かしてみる - ScaledObject 作成
MIXI, Inc. KEDA を動かしてみる - レプリカ数 0 にスケールイン { "metrics":
{ "count": 0 } }
MIXI, Inc. KEDA を動かしてみる - レプリカ数 3 にスケールアウト { "metrics":
{ "count": 3 } }
MIXI, Inc. まとめ
MIXI, Inc. まとめ • KEDA でイベント駆動のオートスケールを実現できる • KEDA は様々なイベントリソースに対応した Scalers
がある • KEDA は最小 0 のスケールインが可能、コスト効率のよいリソース活用ができる KEDA は既存リソースへの変更少なく導入が可能 Knative Eventing や各マネージドサービス機能と比較・検討しつつ サクッと試してもよいかも。
MIXI, Inc.