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

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

masayosu
June 08, 2022

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

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 ご清聴 ありがとうございました