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

初クラスタアップグレードの失敗と学び / First Cluster Upgrade Failure and Learning

初クラスタアップグレードの失敗と学び / First Cluster Upgrade Failure and Learning

■イベント :Kubernetes Meetup Tokyo #59
https://k8sjp.connpass.com/event/288488/

■登壇概要

タイトル:初クラスタアップグレードの失敗と学び
発表者: 技術本部 研究開発部 Architectグループ 新井和弥

◉ 研究開発職 採用情報
募集中のポジションや関連記事など
https://media.sansan-engineering.com/

◉ Sansan Tech Blog
Sansanのものづくりを支えるメンバーのテックブログ(R&Dメンバーの連載も多数)

https://buildersbox.corp-sansan.com/

Sansan R&D

July 19, 2023
Tweet

More Decks by Sansan R&D

Other Decks in Technology

Transcript

  1. Sansan株式会社
    部署 名前
    初クラスタアップグレードの
    失敗と学び
    Sansan技術本部
    技術本部 研究開発部 Architectグループ
    新井和弥

    View Slide

  2. 写真が入ります
    新井 和弥
    Sansan株式会社
    技術本部 研究開発部 Architectグループ エンジニア
    前職ではデータエンジニアとしてB2B SaaS企業のABMプラッ
    トフォームプロダクトの開発に従事。2022年Sansan株式会社⼊
    社。研究開発部Architectグループ ML Platform所属。研究員と
    ともにDevOps/MLOpsに向き合う。Kubernetesとの付き合い
    は1年くらい。
    Please call me KAZY.

    View Slide

  3. 先⽇初めてのクラスタアップグレードを⾏いました。
    なにか起こるだろうなと予想はしていたものの、やっぱり⾊々起きました。
    失敗と反省をKubernetes Meetup Tokyoに集まるツワモノの皆様の笑顔に変
    えることで成仏させたいと思いやってきました。
    本⽇のテーマ
    2
    https://buildersbox.corp-sansan.com/entry/2023/05/19/110000
    ※5⽉に弊社テックブログで公開した内容のLT版です。

    View Slide

  4. 弊社でのKubernetes利⽤について

    View Slide

  5. 弊社でのKubernetes利⽤について
    - 研究開発部(50名程度の組織)のアプリケーション基盤として利⽤
    - 2022/07に本番運⽤を開始(1周年🎉)
    - KubernetesはSansan社内で初採⽤
    - AWS EKSを利⽤
    - 約50程度のシステムが動く
    > 約80Pod
    > 約60Node
    AWS EKS上で稼働
    App+API+Batch:
    50
    Core+Addon:
    30

    View Slide

  6. 弊社でのKubernetes利⽤について
    - シングルクラスタマルチテナント構成
    - Argo CDでGitOps
    - Blue/Greenなクラスタのアップグレードを採⽤
    > 新しいクラスタを作ってシステムを移⾏させる
    - TerraformによるIaC化
    新しいクラスタへ移⾏
    v1.22 v1.24

    View Slide

  7. 再現性のなきIaC

    View Slide

  8. Terraform applyするだけかと思いきや...
    - ⼀部変数を書き換えてApplyすれば新クラスタがサクッと⽴つ 👍
    > Terraformのmoduleを利⽤して再利⽤準備 OK 👍👍
    > 既存クラスタのインフラで運⽤問題なし 👍👍👍
    期待

    View Slide

  9. Terraform applyするだけかと思いきや...
    - ⼀部変数を書き換えてApplyすれば新クラスタがサクッと⽴つ 👍
    > Terraformのmoduleを利⽤して再利⽤準備 OK 👍👍
    > 既存クラスタのインフラで運⽤問題なし 👍👍👍
    - クラスタは⽴ちません
    > エラー、エラー、エラー.... どうして....
    - 試⾏錯誤中に本番環境のSecrets Managerを消してしまった
    期待
    現実🔥

    View Slide

  10. Terraform applyするだけかと思いきや...
    - 意図せずリソースに順序関係が⽣まれていた
    > ⼿探りで徐々にリソースを追加していたため気が付かず
    > クラスタ内のアドオンありきのリソース作成等..
    - Terraformとk8sのマニフェストとの役割⾒直し
    - クラスタ作成後でないとApplyできないようなステートの分割
    原因
    対応

    View Slide

  11. どっちなの?

    View Slide

  12. クラスタ移⾏中の想像不⾜
    - アプリもまだ少ないしクラスタの移⾏はサクッ終わる👍
    > クラスタ移⾏中は2クラスタ⽴つけど少しの我慢👍👍
    期待

    View Slide

  13. クラスタ移⾏中の想像不⾜
    - クラスタ移⾏完了まで5ヶ⽉かかり
    研究員(アプリ開発者)を混乱に陥れる
    > どちらのクラスタにデプロイしたら良いの?
    > 間違えて古い⽅のクラスタにデプロイしてしまった
    (TargetGroupBindingの暴⾛..)
    > Web UIからデプロイしたアプリが⾒えないよ?
    (Argo CD, Argo Workflows, Argo Rollouts..)
    現実🔥
    - アプリもまだ少ないしクラスタの移⾏はサクッ終わる👍
    > クラスタ移⾏中は2クラスタ⽴つけど少しの我慢👍👍
    期待

    View Slide

  14. クラスタ移⾏中の想像不⾜
    - クラスタ移⾏中において、
    研究員(アプリ開発者)への影響を軽視
    - ユーザへの案内
    > クラスタ移⾏中であることの周知 / 移⾏中⽤のWeb UIのURL発⾏
    - Argo CD⽤クラスタ検討
    > そもそも複数UIを持たせない
    - クラスタ移⾏のリードタイム削減
    原因
    対応

    View Slide

  15. さいごに

    View Slide

  16. 失敗ばかり話しましたが...
    Kubernetesを導⼊してよかったこと
    - アプリケーションのリリース数がかなり増えました
    🎉
    K8s導⼊以降
    とあるアプリのリリース数

    View Slide

  17. WE ARE
    HIRING
    JOIN OUR TEAM
    https://media.sansan-engineering.com/randd
    https://open.talentio.com/r/1/c/sansan/pages/76616

    View Slide

  18. View Slide