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

k8s upgrade を 楽にする工夫

Hayato Kawai
October 12, 2023
220

k8s upgrade を 楽にする工夫

「3-shake SRE Tech Talk #7」で発表させていただいた LT の資料です。
https://3-shake.connpass.com/event/293432/

Hayato Kawai

October 12, 2023
Tweet

Transcript

  1. © 2023 Wantedly, Inc. k8s upgrade を 楽にする工夫 3-shake SRE

    Tech Talk #7 Oct. 12 2023 - Hayato Kawai (@fohte)
  2. 自己紹介 © 2023 Wantedly, Inc. 名前 川井 颯人 (@fohte) 所属

    ウォンテッドリー株式会社 Infrastructure Squad (2023/03〜)
  3. EKS (k8s) のバージョンアップはすぐに来る © 2023 Wantedly, Inc. Kubernetes version Amazon

    EKS release EOL 1.28 2023-09-26 2024-11 1.27 2023-05-24 2024-07 1.26 2023-04-11 2024-06 1.25 2023-02-22 2024-05 1.24 2022-11-15 2024-01 1.23 2022-08-11 2023-10-11 3 ヶ月 3 ヶ月 2 ヶ月 1 ヶ月 4 ヶ月 https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html
  4. k8s upgrade でほぼ毎回発生する大変なところ API version の廃止 • API version が廃止されると、各マイクロサービスの

    manifest を変更する必要がある ◦ Wantedly ではマイクロサービスが数百個ある 😇 © 2023 Wantedly, Inc.
  5. k8s upgrade でほぼ毎回発生する大変なところ cluster addon の upgrade • cluster addon

    のバージョンも k8s とともに上げる必要がある ◦ 例: Istio 1.16 では k8s 1.22〜1.26 しかサポートしていない => k8s 1.27 に上げるときは Istio も 1.17 以上に上げる © 2023 Wantedly, Inc.
  6. k8s upgrade を楽にする工夫 • manifest テンプレートを各マイクロサービスに配布 • Argo CD で

    manifest 自動適用 • Helm (Helmfile) で manifest 生成 • Renovate で upgrade PR を自動生成 © 2023 Wantedly, Inc.
  7. k8s upgrade を楽にする工夫 manifest テンプレートを各マイクロサービスに配布 • 各マイクロサービスの manifest のテンプレートを用意 ◦

    deployment, service などアプリケーションに必要な manifest は共通化 ◦ API version 更新したい => テンプレートの manifest を更新するだけ • テンプレート更新 => 各マイクロサービスで PR が自動作成される ◦ あとは PR を merge するだけ © 2023 Wantedly, Inc.
  8. k8s upgrade を楽にする工夫 Argo CD で manifest 自動適用 • 各マイクロサービスで

    Argo CD を導入 ◦ テンプレートを更新 => PR を merge だけで自動反映 🚀 • cluster addon も Argo CD を現在進行系で導入中 © 2023 Wantedly, Inc.
  9. k8s upgrade を楽にする工夫 Helm (Helmfile) で manifest 生成 • cluster

    addon は Helm で manifest を管理している ◦ Helm chart が cluster addon に必要な manifest を作成してくれる ◦ Helm chart のバージョンを上げれば cluster-addon を upgrade できる 🎉 © 2023 Wantedly, Inc.
  10. k8s upgrade を楽にする工夫 Renovate で upgrade PR を自動生成 • Helm

    chart の upgrade を Renovate にしてもらう ◦ cluster addon の upgrade に伴う manifest 生成が自動化 🎉 ◦ あとは changelog を確認 => テスト環境で検証 => 本番に適用 🚀 © 2023 Wantedly, Inc.
  11. k8s upgrade を楽にする工夫の効果 工夫したことによる効果 • API version 廃止の対応に手間取ることがなくなった 🎉 •

    cluster addon を日頃から upgrade できるようになった 🎉 ◦ 普段から Renovate PR で upgrade がしやすい 🚀 ◦ => k8s upgrade 時に急いで cluster addon を upgrade しなくてよい 👍 © 2023 Wantedly, Inc.