Slide 1

Slide 1 text

1 プライベートクラウドで動く Kubernetesクラスタの運⽤とこれから 新宮 隆太 GMOペパボ株式会社 技術部プラットフォームグループ 2023/8 Cloud Operator Days Tokyo 2023

Slide 2

Slide 2 text

2 ⾃⼰紹介 技術部 プラットフォームグループ 2021年 新卒⼊社 新宮 隆太 Shingu Ryuta ● カラーミーショップのSREとインフラを担当 ● 最近はポータブルオーディオにハマっています ● あだ名: ほみるん ● 𝕏(Twitter) : @h0mirun_deux

Slide 3

Slide 3 text

3 アジェンダ 1. ペパボのプライベートクラウド環境について 2. NKE環境におけるKubernetesクラスタの運⽤について 2.1. 事例紹介 - 1 2.2. 事例紹介 - 2 3. おわりに

Slide 4

Slide 4 text

1. プライベートクラウド環境について 4

Slide 5

Slide 5 text

プライベートクラウド環境について 5 ● ペパボのプライベートクラウド ● OpenStackベース ● LBaaSもある Nyah 詳しくは「OpenStackからKubernetesへNyahとAWSをつないだ GMOペパボのインフラの歴史 」を御覧ください

Slide 6

Slide 6 text

プライベートクラウド環境について 6 ● Nyahを使ったクラスタの構築‧管理 ○ 各サービスごとにクラスタを構築し運⽤している ● よく使われるコンポーネントや全社統⼀監査基盤(Wazuh)をbuilt-in提供 ● TOMLでクラスタの構成管理 Nyah Kubernetes Engine - NKE

Slide 7

Slide 7 text

プライベートクラウド環境について 7 ● ⾦銭的コストが安い(運⽤⼯数を除く) ● ⾃由度が⾼い プライベートクラウドのメリット

Slide 8

Slide 8 text

2. NKE環境における Kubernetesクラスタの運⽤について 8

Slide 9

Slide 9 text

NKE環境におけるKubernetesクラスタの運⽤について 9 カラーミーショップのKubernetes環境 ● マルチクラスタ構成 ● Blue/Greenデプロイメントを採⽤ ● ArgoCDを利⽤してGitOpsを実現

Slide 10

Slide 10 text

NKE環境におけるKubernetesクラスタの運⽤について 10 カラーミーショップのKubernetes環境

Slide 11

Slide 11 text

NKE環境におけるKubernetesクラスタの運⽤について 11 ● クラスタアップデート ● クラスタの可⽤性確保 ● インフラコスト ● 属⼈化 Kubernetesクラスタを運⽤する上で⼤変なこと など

Slide 12

Slide 12 text

NKE環境におけるKubernetesクラスタの運⽤について 12 ● クラスタアップデート ● クラスタの可⽤性確保 ● インフラコスト ● 属⼈化 Kubernetesクラスタを運⽤する上で⼤変なこと など

Slide 13

Slide 13 text

NKE環境におけるKubernetesクラスタの運⽤について 13 事例紹介

Slide 14

Slide 14 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その1 ● 3〜4ヶ⽉おきにリリースされ、3世代サポート ● サポート終了後は脆弱性のパッチなどが配信されない ● 最新は1.27 14 Kubernetesのアップデート

Slide 15

Slide 15 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その1 ● Kubernetesのサポートバージョンに準拠 ● CLIツールが⽤意されており、それを利⽤する ○ 基本的にはGitHubActionsから実⾏する 15 NKEにおけるクラスタアップデート

Slide 16

Slide 16 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その1 ● アップデートによるKubernetesのAPI廃⽌を⾒落とす ● SealedSecretやNGINX Ingress等のバージョンサポートを⾒落とす ● アップデート中にkube-apiserverが全滅する ● ⼀部etcdノードのメンバー情報がおかしくなる 16 今までのアップデートで経験したこと など

Slide 17

Slide 17 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その1 17 廃⽌されるAPIバージョンの⾒落とし

Slide 18

Slide 18 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その1 18 廃⽌されるAPIバージョンの⾒落とし

Slide 19

Slide 19 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その1 FairwindsOps/plutoを利⽤する • マニフェストを⾒てDeprecated APIやRemove APIを検出 • クラスタバージョンを指定することでより最適な通知が可能 19 ⾒落としを未然に防ぐ

Slide 20

Slide 20 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その1 PRに実⾏結果をコメントさせたことで、⽬につくので気が付きやすい 20 ⾒落としを未然に防ぐ

Slide 21

Slide 21 text

3. ハイブリッドクラウド化 21

Slide 22

Slide 22 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 22 ● カラーミーショップで利⽤するオブジェクトストレージをS3へ移⾏ ○ 今まではS3互換のプライベートなオブジェクトストレージを利⽤ ● 画像圧縮アプリケーションがNKEで動いているためS3のトラフィックにか かるコストが⾼くなってしまう ハイブリッドクラウド化

Slide 23

Slide 23 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 23 元々の構成 ハイブリッドクラウド化 *Oyaki: 画像の最適化を行うアプリケーション *Bayt: S3互換のプライベートオブジェクトストレージ

Slide 24

Slide 24 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 S3移設後の構成 24 ハイブリッドクラウド化 *Oyaki: 画像の最適化を行うアプリケーション AWS AWS Nyah

Slide 25

Slide 25 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 S3移設後の構成 25 ハイブリッドクラウド化 *Oyaki: 画像の最適化を行うアプリケーション AWS AWS Nyah

Slide 26

Slide 26 text

プライベートクラウド環境について 26 ● カラーミーショップで利⽤している画像をS3に移設 ● CloudFront -> Oyaki(NKE) -NATGW-> S3 ● CloudFront -> Oyaki(EKS) -VPC Endpoint-> S3 ● 画像が⾒えないと困る 冗⻑化 なぜハイブリッドクラウド化

Slide 27

Slide 27 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 27 ● 今回EKSで動かすのはOyakiだけ ● NKEとEKSはACTIVE:ACTIVE ○ 重み付けラウンドロビンでOyakiの流量の⽐率を1:99に ● NKEとEKSでできるだけ差分を⼩さく 要件

Slide 28

Slide 28 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 28 要件

Slide 29

Slide 29 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 29 ● Kustomizeを駆使してNKEとEKSの設定差分が⽣まれないようにする ● EKSでも全社統⼀監視基盤をインストールできるようにする ハイブリッドクラウド化に向けて

Slide 30

Slide 30 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 Kustomize • Kubernetesのマニフェストを管理するツール • マニフェストにPatchを当てることができる 30 Kustomizeの活⽤

Slide 31

Slide 31 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 31 ArgoCDで各クラスタのデプロイを管理している 今まで... • baseをoverlays以下でパッチを当てていた Kustomizeの活⽤

Slide 32

Slide 32 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 32 EKSクラスタもoverlay/productionを適⽤すればよい? Kustomizeの活⽤

Slide 33

Slide 33 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 33 EKSクラスタもoverlay/productionを適⽤すればよい? EKSで⼀部固有の設定を⼊れたいので難しい ただしNKEとEKSで差が⽣まれにくい状態にしたい Kustomizeの活⽤

Slide 34

Slide 34 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 34 ● EKS⽤のディレクトリを切ってproductionを参照 ○ base‧productionに⼊った変更を適⽤できる ○ NKEとEKSの差分を仕組みで⽣み出しにくく ● delete-patchを利⽤して不要なリソースを削除 Kustomizeの活⽤ $patch: delete apiVersion: argoproj.io/v1alpha1 kind: Application ...

Slide 35

Slide 35 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 • 全社統⼀で利⽤している監査基盤WazuhをEKSノードで利⽤したい • EKSはTerraformで管理されているため⼿動での変更はしたくない 35 EKSで統⼀監査基盤を使えるように

Slide 36

Slide 36 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 • 既に社内で同じ悩みがあって解決されていた • デフォルトのEKSのAMIにPacker + Ansibleでカスタム • GitHub Actionsを⾛らせればAMIが作られる • cloudinitでWazuhを⽴ち上がらせるだけ 36 EKSで統⼀監査基盤を使えるように 特有の課題を仕組みで解決されていたことで、 とても簡単に進めることができた

Slide 37

Slide 37 text

NKE環境におけるKubernetesクラスタの運⽤について - 事例紹介 その2 ● クラスタ間でできるだけ設定差分を減らしたい ○ NKEではNGINX Ingress Controllerを利⽤ ○ Amazon Loadbalancer ControllerでALBを利⽤されていることが多い 37 IngressControllerの設定

Slide 38

Slide 38 text

3. 終わりに 38

Slide 39

Slide 39 text

終わりに 39 ● ペパボのプライベートクラウド環境について紹介 ● Kubernetesクラスタを運⽤していて詰まりがちな事例を2つ紹介 ○ クラスタのアップデートについて ○ EKSとのハイブリッドクラウド化について 話したこと

Slide 40

Slide 40 text

プライベートクラウド環境について 40 ● ハイブリッドクラウド化することで、プライベートクラウド‧パブリック クラウドの良いところを補うことができる。 ● プライベートクラウド特有の課題は仕組みで解決することで、組織全体の 開発効率を向上させることができる。 まとめ

Slide 41

Slide 41 text

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