Slide 1

Slide 1 text

KubeCon + CNCon Europe 2023 Recap Flux Beyond Git: Harnessing the Power of OCI Kubernetes Meetup Tokyo #58 株式会社ZOZO 技術本部 SRE部 ECプラットフォーム基盤SREブロック 巣立 健太郎 Copyright © ZOZO, Inc. 1

Slide 2

Slide 2 text

© ZOZO, Inc. 株式会社ZOZO 技術本部 SRE部 ECプラットフォーム基盤SREブロック 巣立 健太郎 / Kentaro Sudate KubeConはNAに続いて2回目 Twitter: @ksudate 
 
 2

Slide 3

Slide 3 text

© ZOZO, Inc. KubeConの悲劇 3 KubeCon開催の1ヶ月前のある日のこと… 初のEuropeという事でワクワクしながら、ホテルも飛行機もガイドブックも 早々に予約を済ませていました。 しかし、ある想定外の自体が発生しました…

Slide 4

Slide 4 text

© ZOZO, Inc. KubeConの悲劇 4 KubeConのチケット売り切れた

Slide 5

Slide 5 text

© ZOZO, Inc. KubeConの悲劇 5 https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/

Slide 6

Slide 6 text

© ZOZO, Inc. KubeConの悲劇 6 でも、安心してください

Slide 7

Slide 7 text

© ZOZO, Inc. KubeConの悲劇 7 Waitlistがありました! Waitlistに登録してから数週間後、無事チケットを獲得しOn-siteで参加でき ることになりました。 (飛行機のキャンセル代、数十万円に怯える日々は辛かったです…) https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/

Slide 8

Slide 8 text

© ZOZO, Inc. KubeConの悲劇 8 今後、KubeConへ参加する方はお早めのチケットの購入をおすすめします。

Slide 9

Slide 9 text

© ZOZO, Inc. Agenda 9 ● セッションRecap ● ZOZOTOWNのCI/CD基盤とFlux2の活用 ● まとめ

Slide 10

Slide 10 text

© ZOZO, Inc. セッション概要 10 Link https://kccnceu2023.sched.com/event/1HySr/flux- beyond-git-harnessing-the-power-of-oci-stefan-pro dan-hidde-beydals-weaveworks Video https://youtu.be/gKR95Kmc5ac

Slide 11

Slide 11 text

© ZOZO, Inc. セッション概要 11 OCIがアプリケーションコード とインフラ設定の両方のSingle Source of Truth(以下、SSOT)としてどのように機能するかに焦点を当てます。 本セッションでは、Kubernetesの設定とTerraformのモジュールをOCI Artifactsとして配布するためのPackage ManagerとしてFluxを使用する方法 についてのセッションでした。

Slide 12

Slide 12 text

© ZOZO, Inc. 本題に入る前に… 12

Slide 13

Slide 13 text

© ZOZO, Inc. OCI (Open Container Initiative)とは? 13 コンテナランタイムとイメージフォーマットの標準化を目的として設立され た。 Docker社をはじめとするコンテナ業界のリーダーたちによって2015年6月に 設立された。

Slide 14

Slide 14 text

© ZOZO, Inc. OCI ImageとOCI Artifacts Registry 14 OCI Image OCIの仕様に準拠したコンテナイメージ Docker Imageと互換性があり、既存のDocker ImageをOCI Imageとして利用 可能

Slide 15

Slide 15 text

© ZOZO, Inc. OCI ImageとOCI Artifacts Registry 15 OCI Artifacts Registry OCIの仕様に準拠したコンテナイメージの配布と保存のためのシステム Docker HubやAmazon ECRなど、様々な環境でサポートされている

Slide 16

Slide 16 text

© ZOZO, Inc. OCI ImageとOCI Artifacts Registry 16 OCI Artifacts Registry OCI Imageだけでなく、他のArtifactsも格納可能 ex. ファイルアーカイブ (tar, zip)、ソースコード、バイナリファイル

Slide 17

Slide 17 text

© ZOZO, Inc. OCI Artifacts Registry、使ってみよう! 17 ORASを使ってDocker HubにOCI ArtifactsをPush / Pullを試す

Slide 18

Slide 18 text

© ZOZO, Inc. OCI Artifacts Registry、使ってみよう! 18

Slide 19

Slide 19 text

© ZOZO, Inc. では、本題へ 19

Slide 20

Slide 20 text

© ZOZO, Inc. Fluxを利用したGitOps Workflow 20 https://youtu.be/gKR95Kmc5ac

Slide 21

Slide 21 text

© ZOZO, Inc. Fluxを利用したGitOps Workflow 21 ● インフラ構成はGitで管理 ○ ex. K8sマニフェストやTerraformファイル ● コンテナイメージはコンテナレジストリで管理 ○ ex. Docker Image 構成ファイル、コンテナイメージの管理が異なる…

Slide 22

Slide 22 text

© ZOZO, Inc. そこで、OCI Artifacts! 22

Slide 23

Slide 23 text

© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 23 構成ファイル、コンテナイメージの管理が一緒になる! https://youtu.be/gKR95Kmc5ac

Slide 24

Slide 24 text

© ZOZO, Inc. 他にもメリットあります! 24

Slide 25

Slide 25 text

© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 25 Gitリポジトリに最終的なKubernetesマニフェストが含まれていない… KustomizeやCueを使っている場合、Build前のマニフェストがGitで管理され ていることが多い そのため、Fluxが利用するBuild後のマニフェストがGitで管理されている Build前のマニフェストとは異なる

Slide 26

Slide 26 text

© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 26 解決! OCI Artifactsを使えば、Build後のマニフェストを管理可能 SSOTの観点で言えば、OCI Registryにソースを集約可能になる

Slide 27

Slide 27 text

© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 27 Gitリポジトリへアクセスするためのキーやトークンの管理が必要… Gitリポジトリと同期を取るためにFluxはキーやトークンを持つ必要がある

Slide 28

Slide 28 text

© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 28 解決! FluxがGitを参照することはなくなるので管理が不要 OCI Registryについては、多くのクラウドプラットフォームで用意されてお り、IAMでのアクセス制御などが可能になっている

Slide 29

Slide 29 text

© ZOZO, Inc. OCI Artifactsの署名 29 FluxはSigStore Cosignで署名されたOCI Artifactsをサポート 1. flux push artifactコマンドでOCI RegistryへOCI ArtifactsをPush 2. cosignでOCI Artifactsを署名 3. FluxがOCI Artifactの署名を検証

Slide 30

Slide 30 text

© ZOZO, Inc. OCI Artifactsの署名 30 FluxがOCI Artifactの署名を検証

Slide 31

Slide 31 text

© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 31 他にも、様々なメリットが紹介されました https://youtu.be/gKR95Kmc5ac

Slide 32

Slide 32 text

© ZOZO, Inc. FluxでOCIを利用するには? 32 OCIRepositoryを利用する

Slide 33

Slide 33 text

© ZOZO, Inc. GitからOCIへの移行 33 GitRepositoryとOCIRepositoryは互換性を持つAPI https://youtu.be/gKR95Kmc5ac

Slide 34

Slide 34 text

© ZOZO, Inc. ZOZOTOWNのCI/CD基盤 34 絶賛、K8sマニフェストの管理をGitHub ActionsからFluxへ移行中です! https://techblog.zozo.com/entry/gitops-with-flux2

Slide 35

Slide 35 text

© ZOZO, Inc. ZOZOTOWNのCI/CD基盤 35 現在は、OCI Registryを利用していません。 そのため、今回紹介した課題は解決できていません… ex. FluxとGitが利用するマニフェストが異なる、Gitリポジトリのキー管理 しかし、他にも課題はあります…

Slide 36

Slide 36 text

© ZOZO, Inc. ZOZOTOWNのCI/CD基盤が抱える課題 36 K8sマニフェスト以外のGitOps化 K8sマニフェストはFluxで管理されつつありますが、その他のインフラ設定は 依然としてGitHub ActionsでCI/CD(いわゆる、CIOps)が行われます。 GitHub ActionsでK8sリソースをデプロイするための権限は不要になったが、 CloudFormation Templateをデプロイするための権限は必要…

Slide 37

Slide 37 text

© ZOZO, Inc. ZOZOTOWNのCI/CD基盤が抱える課題 37 現状の構成 ● AWSリソース ○ CloudFormation ● それ以外のリソース(DatadogやElastic Cloudなど) ○ Terraform

Slide 38

Slide 38 text

© ZOZO, Inc. Fluxで管理できないの…? 38

Slide 39

Slide 39 text

© ZOZO, Inc. ZOZOTOWNのCI/CD基盤が抱える課題 39 Weave GitOps Terraform Controller TerraformをFluxで管理するEcosystemをGitOpsの提唱したWeavework社が 開発しています。 Weave GitOps Terraform Controller CloudFormationはどうする…?

Slide 40

Slide 40 text

© ZOZO, Inc. ZOZOTOWNのCI/CD基盤が抱える課題 40 AWS CloudFormation Template Sync Controller for Flux リリース 🎉 これまで、CloudFormationをFluxで管理する方法はありませんでした。 しかし、今回のKubeConでCloudFormation TemplateをFluxでデプロイする 新しいEcosystemが発表されました。 AWS CloudFormation Template Sync Controller for Flux のご紹介

Slide 41

Slide 41 text

© ZOZO, Inc. 全リソースをFluxで管理できる日も近い…! 41

Slide 42

Slide 42 text

© ZOZO, Inc. まとめ 42 ● OCIはGitに変わるFluxのSSOT ○ ただ、Gitはこれまで通り利用され続ける。OCIはあくまで中継役 ● FluxはK8sマニフェスト以外のリソースへの対応を拡大中 ○ K8s、Terraform、CloudFormation ● KubeCon EUも最高でした

Slide 43

Slide 43 text

© ZOZO, Inc. 参考リンク 43 ● https://opencontainers.org/ ● Announcing Docker Hub OCI Artifacts Support ● OCI artifacts on Docker Hub ● OCI cheatsheet ● CIOpsからGitOpsへ。Flux2でマイクロサービスのデプロイを爆速にした話

Slide 44

Slide 44 text

No content