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

そこまで大規模じゃない EKS環境を(あまり)頑張らずに 最新化し続けたい / FamilyAlbum EKS Continuous Improvement

kohbis
January 25, 2024

そこまで大規模じゃない EKS環境を(あまり)頑張らずに 最新化し続けたい / FamilyAlbum EKS Continuous Improvement

Kubernetes活用の手引き 私たちの基盤構築・運用事例 Lunch LT
https://findy.connpass.com/event/307447/

kohbis

January 25, 2024
Tweet

More Decks by kohbis

Other Decks in Technology

Transcript

  1. MIXI, Inc. About Me • SIer (Infra/Backend) ➡ Startup (Backend/Frontend)

    ➡ いま • 最近マネージャーがくれたラズパイ2台をおうちクラスタに組み込んだ Kohei SUGIMOTO 株式会社MIXI 2022/04 ~『家族アルバム みてね』 SRE X/GitHub: @kohbis (sushimoto)
  2. MIXI, Inc. 本日お話しすること • 「そこまで大規模じゃない」EKS環境をできるだけ頑張らずに最新化し続けるために 『家族アルバム みてね』がやっていること • このスライドにおける ◦

    大規模 …IaaS基盤、10~以上のマイクロサービス ◦ 大規模じゃない … ひとつのサービス基盤、数個のマイクロサービス • 「最新化」対象 ◦ EKSクラスタバージョン ◦ Helmパッケージのバージョン
  3. MIXI, Inc. 『家族アルバム みてね』のKubernetes構成 • 運用しはじめて大体3年くらい • Amazon EKS v1.27

    • Helm chartsによる構成管理 • Argo CDによるGitOps • Ingress-NGINX Controller, Cluster Autoscaler, Prometheus, KEDA, Grafana, Argo Workflows etc. ◦ 約30ほどのHelmパッケージを利用 多いときで18,000Pods、少ないときで2,000Pods(2023/12時点)
  4. MIXI, Inc. EKSクラスタのBlue/Green戦略による無停止アップグレード • みてねはAWSマルチリージョン構成 • 複数リージョンにEKSクラスタが存在 各リージョンに新バージョンのクラスタ作成 ▼ ALBの加重ルーティングで徐々にトラフィック

    移行 ▼ メトリクス監視に異常がなければ完全移行 加重ルーティングで 徐々に移行 Route53 レイテンシーベース ルーティング https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure?slide=12
  5. MIXI, Inc. Renovate Botの活用 ※1 • 言語やパッケージの依存関係を自動解決 ◦ Package Managers

    から選択(複数可)※2 • 設定はリポジトリルートのrenovate.jsonに記述 • ルールを柔軟にカスタムすることが可能 ◦ 例)リリースからxx日たったら安定版と見なしてPRを起票 依存パッケージやcharts内のDockerイメージタグを最新化したPRを起票 ちなみにGitHubのDependabotでは議論中 ※3 ※1 https://github.com/renovatebot/renovate ※2 https://docs.renovatebot.com/modules/manager/ ※3 https://github.com/dependabot/dependabot-core/issues/2237
  6. MIXI, Inc. Deprecated/Removed APIの検知 K8sのAPIはKubernetes Deprecation Policyに沿って非推奨/削除される ※1 ▼ もしあればDeprecated

    API Migration Guideに従って更新する ※2 (どのくらい対応が必要かはAPIによる) ▼ (開発環境で確認するはずだが)「デプロイしようとしてから気づく」は避けたい Helmパッケージで導入するchartsは大体解決されている 自分たちで書いたテンプレートに存在しないかを(楽して)検知したい ※1 https://kubernetes.io/docs/reference/using-api/deprecation-policy/ ※2 https://kubernetes.io/docs/reference/using-api/deprecation-guide/
  7. MIXI, Inc. Plutoの活用 ※1 • 非推奨/削除APIを検知するCLIツール ◦ GitHub ActionsなどCIでPRごとや定期実行できる •

    稼働中のクラスタ、ローカルのHelm chartsいずれにも対応 ▼検知なし (Exit Code 0) ▼検知あり (Exit Code 2: deprecated, 3: removed etc. ※2) ※1 https://github.com/FairwindsOps/pluto ※2 https://github.com/FairwindsOps/pluto/blob/master/docs/advanced.md#ci-pipelines
  8. MIXI, Inc. Amazon EKS - Upgrade Insights ※1 • 2023年12月末にGA

    • EKSクラスタを自動的にスキャンし、 K8sバージョンのアップグレードに影響する可能 性がある問題を検知 ▼ 取り組みの甲斐あって(?)みてねのクラスタでは検知なし! ※1 https://aws.amazon.com/jp/about-aws/whats-new/2023/12/amazon-eks-upgrade-insights/
  9. MIXI, Inc. まとめ • EKSクラスタアップグレード ◦ 役割ごとにクラスタを分割して、毎回発生していた作業コストを削減 • Helmパッケージのアップデート ◦

    Renovate Botの活用により、更新の検知を自動化 • Deprecated/Removed APIの検知 ◦ Plutoやマネージド機能(EKS Upgrade Insights)によって自動化 K8s基盤の運用はただでさえ大変。。。 便利なツールを組み合わせて少しずつでも楽にしていきたい!
  10. 20 ©MIXI 豊かなコミュニケーションを広げ、 世界を幸せな驚きで包む。 PURPOSE 創業以来大切にしてきた豊かなコミュニケーションで幸せな驚きに包まれ た世界を目指し、ただ「つながればいい」という効率的な機能の提供では なく、あたたかい心のつながりを生み出すようなサービスの開発・提供を 行っています。 3つの事業領域で「心もつなぐ」場と機会の創造

    ─ スポーツ、ライフスタイル、デジタルエンターテインメント ─ BUSINESS スポーツ領域ではチーム・選手・ユーザーのつながり、ライフスタイル領 域では人々の生活がより豊かになるような身近なコミュニケーション、デ ジタルエンターテインメント領域では親しい友人達と一緒に遊んだり、リ アルイベントで盛り上がれる場や機会の提供など、「心もつなぐコミュニ ケーション」を軸とした事業展開を行っています。 ユーザーサプライズファースト、発明・夢中・誠実 大胆な発想と情熱と何事にも真摯に向きあう文化 CULTURE/PEOPLE ユーザーの驚きを最優先に考えるという想いのこもった「ユーザーサプライ ズファースト」という言葉を胸に、一人ひとりが、ユーザーや仲間、自分に 対して真摯に向き合い、夢中になって、それぞれの専門領域や経験を活かし たこれまでにない新しい視点の発想でものごとに取り組む組織文化です。 多様な働き方を実現する 「マーブルワークスタイル」制度 WORKING STYLE 多様な人材が活躍できる環境づくりを目指し、働き方や休み方の制度も拡充 されています。リモートワークとオフィスワークを融合した「マーブルワー クスタイル」制度は、対面でのコミュニケーション機会も重要であると考 え、両方の働き方を融合したような制度です。 WE ARE HIRING! MIXIではコミュニケーションを一緒につくる仲間を募集中! MIXI 採用 MIXI GROUPについて