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

Amazon EKS マルチテナントクラスターにおける ArgoCDを利用した デプロイフローの話

Efd8bfe50b2af29f18d1af1ab26c316c?s=47 masayosu
June 08, 2022

Amazon EKS マルチテナントクラスターにおける ArgoCDを利用した デプロイフローの話

Efd8bfe50b2af29f18d1af1ab26c316c?s=128

masayosu

June 08, 2022
Tweet

More Decks by masayosu

Other Decks in Technology

Transcript

  1. Amazon EKS マルチテナントクラスターにおける ArgoCDを利用した デプロイフローの話 id:masayosu / @masayosu 2022/06/07 Hatena

    Engineer Seminar #20 AWS Renovation 編 1
  2. 自己紹介 • id: masayosu • Twitter: @masayosu • 組織・基盤開発本部 プラットフォーム部

    サービスプラットフォームチーム SRE • 趣味 ◦ 登山、キャンプ、ゲーム 2
  3. サービスプラットフォームチームについて • 新旧多くのサービスを抱えているチーム ◦ はてなポータル、はてなスター、匿名ダイアリー • 少数(精鋭?) • 以降のスライドではSPFと表記します 3

  4. はてなにおけるKubernetes • 2019年に撤退の話 ◦ MackerelにおけるKubernetes利用の取組みとこれか ら / Kubernetes Meetup Tokyo

    #22 4
  5. 撤退の理由 • 自前クラスタ運用 ◦ 構築当時は東京リージョンにEKSが存在していなかった • 学習コストが高い ◦ クラスタ構築/運用含めて 5

  6. 撤退の理由 • 人員不足 ◦ 1~1.5人で運用 • クラスタバージョンアップに失敗 6

  7. SPFがKubernetesを使う背景 • 社内にKubernetesの知見をFBする • EKSが東京リージョンに対応 (2018/12/20) • マイクロサービス(ぽいもの)な持ち物が多い • KubernetesのエコシステムとGitOpsを利用した自動的、統一されたリ

    リース方法 7
  8. EKSの構成 8

  9. 詳しくはこちら https://developer.hatenastaff.com/entry/2022/02/03/100525 9

  10. CIについて 10 • GithubActions • Application Test & Manifest Test

    ◦ Polarisを利用 ◦ Image取得可能なリポジトリをホワイトリスト管理
  11. • AWS Loadbalancer Controller をDockerHubから取得 • DockerHubのRatelimit • Imageが取得できずCrashLoop Polaris導入の背景

    11
  12. CDについて • ArgoCDを利用 ◦ GitOpsと相性の良いPull型のCDツール ◦ Kubernetesクラスタ上で動く( GKE上で動作している) ◦ 複数のクラスターをターゲットとしてデプロイ可能

    12
  13. デプロイフロー 13

  14. デプロイフロー 14

  15. • クラスタは BlueGreen 方式でバージョンアップ ◦ インプレースアップグレードは不可逆なため ◦ 複数バージョンを一気にあげたい ▪ SREリソースの問題でバージョンアップをスキップすることもある

    • BlueGreenクラスタに同じアプリケーションをデプロイ クラスターバージョンアップ 15
  16. クラスターバージョンアップ 16

  17. • Pros ◦ 新旧クラスタに自動的にデプロイされて便利 ◦ ArgoCDのUI上で問題が発生しているかひと目でわかる • Cons ◦ ArgoCDの設定を新旧クラスタ分作成する必要があって煩雑

    クラスターバージョンアップ 17
  18. 18 ちょっと話はそれますが

  19. 先日はてなアンテナが20周年を迎えました https://labo.hatenastaff.com/entry/antenna-20th 19

  20. 20 はてなアンテナも EKSで動いています

  21. まとめ • EKSのデプロイフローを紹介しました ◦ 新旧問わず全てのサービスが統一されたデプロイフローで動いている ◦ デプロイフローが統一されているとリリース作業の負担が少ない • はてなKubernetes使ってます 21

  22. 今後検討していること • ArgoCDのApplicationSetを利用する ◦ クラスタバージョンアップ作業を楽にする • ArgoRolloutでBlueGreen Deploymentを検証 ◦ 必要になった時の準備

    • はてなのEKS社内標準構成を検討 22
  23. 23 ご清聴 ありがとうございました