$30 off During Our Annual Pro Sale. View Details »

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

Ken Kato
April 09, 2024

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

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して新しいノードに再配置するのに時間がかかった