Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介 ● id: masayosu ● Twitter: @masayosu ● 組織・基盤開発本部 プラットフォーム部 サービスプラットフォームチーム SRE ● 趣味 ○ 登山、キャンプ、ゲーム 2

Slide 3

Slide 3 text

サービスプラットフォームチームについて ● 新旧多くのサービスを抱えているチーム ○ はてなポータル、はてなスター、匿名ダイアリー ● 少数(精鋭?) ● 以降のスライドではSPFと表記します 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

EKSの構成 8

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

CIについて 10 ● GithubActions ● Application Test & Manifest Test ○ Polarisを利用 ○ Image取得可能なリポジトリをホワイトリスト管理

Slide 11

Slide 11 text

● AWS Loadbalancer Controller をDockerHubから取得 ● DockerHubのRatelimit ● Imageが取得できずCrashLoop Polaris導入の背景 11

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

デプロイフロー 13

Slide 14

Slide 14 text

デプロイフロー 14

Slide 15

Slide 15 text

● クラスタは BlueGreen 方式でバージョンアップ ○ インプレースアップグレードは不可逆なため ○ 複数バージョンを一気にあげたい ■ SREリソースの問題でバージョンアップをスキップすることもある ● BlueGreenクラスタに同じアプリケーションをデプロイ クラスターバージョンアップ 15

Slide 16

Slide 16 text

クラスターバージョンアップ 16

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

18 ちょっと話はそれますが

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

今後検討していること ● ArgoCDのApplicationSetを利用する ○ クラスタバージョンアップ作業を楽にする ● ArgoRolloutでBlueGreen Deploymentを検証 ○ 必要になった時の準備 ● はてなのEKS社内標準構成を検討 22

Slide 23

Slide 23 text

23 ご清聴 ありがとうございました