Upgrade to Pro — share decks privately, control downloads, hide ads and more …

argo-rolloutsにコミットした話

 argo-rolloutsにコミットした話

Kanazawa.rb meetup #152 でLTしたときの資料です。

TAKAyukiatkwsk

April 19, 2025
Tweet

More Decks by TAKAyukiatkwsk

Other Decks in Programming

Transcript

  1. 自己紹介 • Takayuki Takagi (髙木貴之 / ニボシーニョ) • @TAKAyuki_atkwsk /

    takayukiatkwsk • SRE @ ZOZO • AWS, Kubernetes, Scala, Ruby, Go, etc. • ビール、餃子、サッカー観戦が好き 2
  2. argo-rolloutsについて • Kubernetesにおいて安全かつ段階的にソフトウェアをリリースす るための仕組み(コントローラー) ◦ blue-green ◦ カナリアリリース ◦ ロールアウトスピードの調整

    ◦ メトリクスによる続行・ロールバックの自動判断 ◦ トラフィックの重み付け (ちなみに)Kubernetes自体にもローリングアップデートを実現する仕組みはある
  3. 簡単に説明 api:v2 api:v1 api:v2 api:v2 Datadog LB メトリクス api:v2 api:v1

    api:v1 api:v1 argo- rollouts step • 25% • 50% • 100% 集計された メトリクスを取得
  4. 簡単に説明 api:v1 api:v2 api:v1 api:v2 api:v2 Datadog LB メトリクス api:v2

    api:v1 api:v1 argo- rollouts step • 25% • 50% • 100% 集計された メトリクスを取得 v2でエ ラー多発
  5. バグらしきものを見つけた • argo-rollouts v1.8.0に更新 • ロールアウトが失敗するようになった ◦ 設定は変えていない • Datadog

    APIのクレデンシャルが見つけられない旨のエラーメッ セージが出力される • v1.7.xでは再現せず • バグかもしれないと疑い始める
  6. 対応 • 導入済みの環境について ◦ 明示的に設定項目を追加するという回避策はある ◦ が、設定方法の関係で少し冗長になる • バグを直す ◦

    原因と思われる箇所を特定したので何とか直せそう ◦ 念のため詳しい人の意見も聞いておきたい • 対応方針を決めた ◦ 暫定的に設定を変えてargo-rolloutsのバージョンを上げて運用する ◦ Issueを出して適切な方策を探る
  7. Issueにて • コミッターからアドバイスを頂く(当日中!) • 私からの返信 ◦ アドバイスを試してみたものの挙動が変わらないことの報告 ◦ 原因と思われる箇所についてどう思うか? •

    他のコミッターからのコメント ◦ 原因それやね ◦ 君が見つけたのならPull request出してみたら?と提案受ける • Pull requestを作成する流れに
  8. Pull request作成 • 作成前にCONTRIBUTING.mdを読む • 該当箇所の修正 + ユニットテストの追加 • Pull

    request作成 ◦ テンプレート内にチェックリストがあるので対応する