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
Argo Workflowsのバージョンアップで困った話
Search
三森弘満
September 25, 2024
0
350
Argo Workflowsのバージョンアップで困った話
三森弘満
September 25, 2024
Tweet
Share
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
860
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Are puppies a ranking factor?
jonoalderson
1
3.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
460
Chasing Engaging Ingredients in Design
codingconduct
0
130
So, you think you're a good person
axbom
PRO
2
1.9k
Navigating Team Friction
lara
192
16k
Code Review Best Practice
trishagee
74
20k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
230
Ethics towards AI in product and experience design
skipperchong
2
210
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Transcript
アソビュー株式会社 Argo Workflowsのバージョンアップで困った話
© ASOVIEW Inc. 2 自己紹介 名前:三森 弘満 部署:プロダクト本部 技術戦略部 サービス SREチーム 業務:自社サービス基盤のインフラ運用、改善など
休日の過ごし方:山登り、トレイルランニング
© ASOVIEW Inc. 3 アソビューについて
© ASOVIEW Inc. 4 アソビューについて
© ASOVIEW Inc. 5 アソビューのシステムアーキテクチャ 出典 アソビューのシステムアーキテクチャ
© ASOVIEW Inc. 6 本題です
© ASOVIEW Inc. 7 Argo Workflow 使ってますか?
© ASOVIEW Inc. 8 Argo Workflowについて • Kubernetesネイティブなワークフローエンジン •
コンテナ化されたジョブアプリケーションを実行する • yamlファイルでテンプレートを書いて管理する
© ASOVIEW Inc. 9 今回は、Argo Workflowで詰まった話をお届けします。
© ASOVIEW Inc. 10 はじまり バージョンアップしようとしたら... ArgoWorkflowを3.5.6へバージョンアップしたら、実行済みジョブ (以下、アーカイブ)をマネジメントコン ソール上でリストされるのですが、想定通り表示されませんでした。
このバージョンから、それまでアーカイブと実行中のジョブが分けて表示されていたものが、一つの画面 で表示されるようになるUIのアップデートが入っていました。 上記のアップデートがあり、なおかつアーカイブが多すぎて、アーカイブをリストする SQLがデータベース のメモリを多く利用していることが今回のバージョンアップで明らかになりました。 このように、Argo Workflowsの製品特性をあまり把握しないまま利用したため、運用上困ることが出て きてしまいました。
© ASOVIEW Inc. 11 当時の弊社のArgo Workflowの状況 • Argo Workflow を導入して以来、アーカイブが溜まっていた。
• アーカイブが200万行ほどになっており、アーカイブをリストする SQLがDBに負荷をかけていた。 • ジョブの中には、数分おきに実行されるものがいくつかあった。( 1分毎、10分毎) • この数分おきに実行されるジョブのアーカイブがネックになっていそうだった。 => 全てのアーカイブを消すのは、運用上好ましくないため、一部のアーカイブを残さないようにでき ないか検討をしたところ、archiveLabelSelectorを使えばできそうなことがわかった。
© ASOVIEW Inc. 12 archiveLabelSelectorについて アーカイブを取得する判定として、 workflow-controller-configmap.yamlに記載したラベルと Workflowに付与されたラベルがマッチすることが判定条件となっております。
仕組みとしてはラベルセレクターを採用しているようです。 今回は、 workflows.argoproj.io/archive-strategy: ”always” のラベルがついたWorkflowのアーカイブを残すようにしました。
© ASOVIEW Inc. 13 CronWorkflowとWorkflowTemplateについて Argo WorkflowsでのWorkflowを管理するyamlがいくつかありますが、今回気にするのは以下の 2 つです。 •
WorkflowTemplate ◦ Workflowのテンプレートです。Workflowで共通に設定したいものをここに書きます。 • CronWorkflow ◦ 上記のWorkflowの設定 + cronの設定になります。cronの設定とは、実行時間やタイム ゾーンなどのcronの実行の制御に関わるものです。 なので、Workflow Templateにラベルをつければ、 残したいアーカイブとそうでないものの判別をしてくれそう!
© ASOVIEW Inc. 14 はまったポイント WorkflowTemplateがWorkflowのテンプレートなのであれば、こちらにだけ記載すれば Workflowに もラベルがつくはずと思っていましたが、実際にはラベルはつきませんでした。(なぜそうなったのかまで は深く掘り下げて調べられてないです。)
ただ、WorkflowTemplateから手動でWorkflowを実行するケースもあるかと思いますので、その場 合 こちらにもラベルをつける必要があります。
© ASOVIEW Inc. 15 アーカイブを残す対応
© ASOVIEW Inc. 16 残したいアーカイブへの対応
© ASOVIEW Inc. 17 残したくないアーカイブへの対応
© ASOVIEW Inc. 18 結論 アーカイブを取得する場合は、どの期間まで保持するかに加えて、 どのアーカイブを保持するかも検討した方がいい。
© ASOVIEW Inc. 19 参考情報 Argo Workflowのアーカイブを一部残さないように設定をした話 ~ archiveLabelSelectorの活用方法
~ https://tech.asoview.co.jp/entry/2024/08/30/090000
生きるに、遊びを。