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

入社後初めてのタスクでk8sアップグレードした話.pdf

Avatar for Ken Kato Ken Kato
April 09, 2024

 入社後初めてのタスクでk8sアップグレードした話.pdf

Avatar for Ken Kato

Ken Kato

April 09, 2024
Tweet

More Decks by Ken Kato

Other Decks in Technology

Transcript

  1. © 2024 Wantedly, Inc. 目次 • ウォンテッドリーの k8s 構成 •

    ウォンテッドリーの k8s アップグレード戦略 • 手順 • 感想
  2. © 2024 Wantedly, Inc. ウォンテッドリーのk8s構成 2016年からKubernetesを本番環境で運用している • Amazon EKS •

    3つのクラスタ ◦ production ◦ qa ◦ sandbox • マイクロサービス: 100個以上 • 各クラスタのノード台数: 40~80くらい • k8s クラスタアドオン: 34個 (内EKSアドオンが4個) ◦ Wantedly Kubernetes クラスタアドオン大全 2023
  3. © 2024 Wantedly, Inc. ウォンテッドリーの k8s アップグレード戦略 ① • 3ヶ月に1回

    アップグレード を行なっている ◦ EOLに追いつかれないように、3ヶ月に1回の頻度でアップグレードしている ◦ 現在のバージョンは1.28 Kubernetes バージョン 標準サポート終了日 (EOL) 1.29 2025年3月23日 1.28 2024年11月26日 1.27 2024年7月24日 1.26 2024年6月11日 1.25 2024年5月1日 参考: https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/kubernetes-versions.html 4ヶ月 4ヶ月 1ヶ月 1ヶ月
  4. © 2024 Wantedly, Inc. ウォンテッドリーの k8s アップグレード戦略 ② • 基本的には

    In-place ◦ 3環境あるので、どこかで問題に気づけるはず ◦ リスクがある場合はBlue / Green (クラスタ移行)を実施する ノードA ノードB ノードC ノードC’ ノードB’ ノードA’ 古いノードグループ 古いノードグループ 新しいノードグループ
  5. © 2024 Wantedly, Inc. ウォンテッドリーの k8s アップグレード戦略 ③ • 事前にアドオンをアップグレードする

    ◦ アドオンがクラスタの新バージョンに対応していないことがある ◦ k8s アップグレードとは別に定期的にアドオンのアップグレードを実施している ウォンテッドリーでは以下のツールを使ってアドオンのアップグレードを効率化 Argo CD Helmfile Renovate
  6. © 2024 Wantedly, Inc. 手順 sandbox -> qa -> productionの順番でアップグレードする

    Terraformで管理していて、PRベースで実施している 1. k8s / EKS、アドオンの破壊的変更の確認 ◦ 対応が必要なものはアップグレード前に実施する 2. コントロールプレーンのアップグレード 3. ノードのアップグレード ◦ Elasticsearchノードの入れ替え ◦ メインノードの入れ替え 4. EKSアドオンのアップグレード 5. kubectlのアップグレード
  7. © 2024 Wantedly, Inc. 感想 • よかった点 ◦ 手順が確立されていて初めてでもスムーズに進められた ◦

    先輩社員が1人サポートについてくれたので心強かった • 苦労した点 ◦ 破壊的変更の確認が大変だった ◦ StatefulSetをrollout restartして新しいノードに再配置するのに時間がかかった