Kubernetes Meetup Tokyo #58 ( https://k8sjp.connpass.com/event/282273/ ) の登壇資料になります
KubeCon + CNCon Europe 2023 RecapFlux Beyond Git: Harnessing the Power of OCIKubernetes Meetup Tokyo #58株式会社ZOZO技術本部 SRE部 ECプラットフォーム基盤SREブロック巣立 健太郎Copyright © ZOZO, Inc.1
View Slide
© ZOZO, Inc.株式会社ZOZO技術本部 SRE部ECプラットフォーム基盤SREブロック巣立 健太郎 / Kentaro SudateKubeConはNAに続いて2回目Twitter: @ksudate 2
© ZOZO, Inc.KubeConの悲劇3KubeCon開催の1ヶ月前のある日のこと…初のEuropeという事でワクワクしながら、ホテルも飛行機もガイドブックも早々に予約を済ませていました。しかし、ある想定外の自体が発生しました…
© ZOZO, Inc.KubeConの悲劇4KubeConのチケット売り切れた
© ZOZO, Inc.KubeConの悲劇5https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/
© ZOZO, Inc.KubeConの悲劇6でも、安心してください
© ZOZO, Inc.KubeConの悲劇7Waitlistがありました!Waitlistに登録してから数週間後、無事チケットを獲得しOn-siteで参加できることになりました。(飛行機のキャンセル代、数十万円に怯える日々は辛かったです…)https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/
© ZOZO, Inc.KubeConの悲劇8今後、KubeConへ参加する方はお早めのチケットの購入をおすすめします。
© ZOZO, Inc.Agenda9● セッションRecap● ZOZOTOWNのCI/CD基盤とFlux2の活用● まとめ
© ZOZO, Inc.セッション概要10Linkhttps://kccnceu2023.sched.com/event/1HySr/flux-beyond-git-harnessing-the-power-of-oci-stefan-prodan-hidde-beydals-weaveworksVideohttps://youtu.be/gKR95Kmc5ac
© ZOZO, Inc.セッション概要11OCIがアプリケーションコード とインフラ設定の両方のSingle Source ofTruth(以下、SSOT)としてどのように機能するかに焦点を当てます。本セッションでは、Kubernetesの設定とTerraformのモジュールをOCIArtifactsとして配布するためのPackage ManagerとしてFluxを使用する方法についてのセッションでした。
© ZOZO, Inc.本題に入る前に…12
© ZOZO, Inc.OCI (Open Container Initiative)とは?13コンテナランタイムとイメージフォーマットの標準化を目的として設立された。Docker社をはじめとするコンテナ業界のリーダーたちによって2015年6月に設立された。
© ZOZO, Inc.OCI ImageとOCI Artifacts Registry14OCI ImageOCIの仕様に準拠したコンテナイメージDocker Imageと互換性があり、既存のDocker ImageをOCI Imageとして利用可能
© ZOZO, Inc.OCI ImageとOCI Artifacts Registry15OCI Artifacts RegistryOCIの仕様に準拠したコンテナイメージの配布と保存のためのシステムDocker HubやAmazon ECRなど、様々な環境でサポートされている
© ZOZO, Inc.OCI ImageとOCI Artifacts Registry16OCI Artifacts RegistryOCI Imageだけでなく、他のArtifactsも格納可能ex. ファイルアーカイブ (tar, zip)、ソースコード、バイナリファイル
© ZOZO, Inc.OCI Artifacts Registry、使ってみよう!17ORASを使ってDocker HubにOCI ArtifactsをPush / Pullを試す
© ZOZO, Inc.OCI Artifacts Registry、使ってみよう!18
© ZOZO, Inc.では、本題へ19
© ZOZO, Inc.Fluxを利用したGitOps Workflow20https://youtu.be/gKR95Kmc5ac
© ZOZO, Inc.Fluxを利用したGitOps Workflow21● インフラ構成はGitで管理○ ex. K8sマニフェストやTerraformファイル● コンテナイメージはコンテナレジストリで管理○ ex. Docker Image構成ファイル、コンテナイメージの管理が異なる…
© ZOZO, Inc.そこで、OCI Artifacts!22
© ZOZO, Inc.FluxとOCI Artifactsを利用したGitOps Workflow23構成ファイル、コンテナイメージの管理が一緒になる!https://youtu.be/gKR95Kmc5ac
© ZOZO, Inc.他にもメリットあります!24
© ZOZO, Inc.FluxとOCI Artifactsを利用したGitOps Workflow25Gitリポジトリに最終的なKubernetesマニフェストが含まれていない…KustomizeやCueを使っている場合、Build前のマニフェストがGitで管理されていることが多いそのため、Fluxが利用するBuild後のマニフェストがGitで管理されているBuild前のマニフェストとは異なる
© ZOZO, Inc.FluxとOCI Artifactsを利用したGitOps Workflow26解決!OCI Artifactsを使えば、Build後のマニフェストを管理可能SSOTの観点で言えば、OCI Registryにソースを集約可能になる
© ZOZO, Inc.FluxとOCI Artifactsを利用したGitOps Workflow27Gitリポジトリへアクセスするためのキーやトークンの管理が必要…Gitリポジトリと同期を取るためにFluxはキーやトークンを持つ必要がある
© ZOZO, Inc.FluxとOCI Artifactsを利用したGitOps Workflow28解決!FluxがGitを参照することはなくなるので管理が不要OCI Registryについては、多くのクラウドプラットフォームで用意されており、IAMでのアクセス制御などが可能になっている
© ZOZO, Inc.OCI Artifactsの署名29FluxはSigStore Cosignで署名されたOCI Artifactsをサポート1. flux push artifactコマンドでOCI RegistryへOCI ArtifactsをPush2. cosignでOCI Artifactsを署名3. FluxがOCI Artifactの署名を検証
© ZOZO, Inc.OCI Artifactsの署名30FluxがOCI Artifactの署名を検証
© ZOZO, Inc.FluxとOCI Artifactsを利用したGitOps Workflow31他にも、様々なメリットが紹介されましたhttps://youtu.be/gKR95Kmc5ac
© ZOZO, Inc.FluxでOCIを利用するには?32OCIRepositoryを利用する
© ZOZO, Inc.GitからOCIへの移行33GitRepositoryとOCIRepositoryは互換性を持つAPIhttps://youtu.be/gKR95Kmc5ac
© ZOZO, Inc.ZOZOTOWNのCI/CD基盤34絶賛、K8sマニフェストの管理をGitHub ActionsからFluxへ移行中です!https://techblog.zozo.com/entry/gitops-with-flux2
© ZOZO, Inc.ZOZOTOWNのCI/CD基盤35現在は、OCI Registryを利用していません。そのため、今回紹介した課題は解決できていません…ex. FluxとGitが利用するマニフェストが異なる、Gitリポジトリのキー管理しかし、他にも課題はあります…
© ZOZO, Inc.ZOZOTOWNのCI/CD基盤が抱える課題36K8sマニフェスト以外のGitOps化K8sマニフェストはFluxで管理されつつありますが、その他のインフラ設定は依然としてGitHub ActionsでCI/CD(いわゆる、CIOps)が行われます。GitHub ActionsでK8sリソースをデプロイするための権限は不要になったが、CloudFormation Templateをデプロイするための権限は必要…
© ZOZO, Inc.ZOZOTOWNのCI/CD基盤が抱える課題37現状の構成● AWSリソース○ CloudFormation● それ以外のリソース(DatadogやElastic Cloudなど)○ Terraform
© ZOZO, Inc.Fluxで管理できないの…?38
© ZOZO, Inc.ZOZOTOWNのCI/CD基盤が抱える課題39Weave GitOps Terraform ControllerTerraformをFluxで管理するEcosystemをGitOpsの提唱したWeavework社が開発しています。Weave GitOps Terraform ControllerCloudFormationはどうする…?
© ZOZO, Inc.ZOZOTOWNのCI/CD基盤が抱える課題40AWS CloudFormation Template Sync Controller for Flux リリース 🎉これまで、CloudFormationをFluxで管理する方法はありませんでした。しかし、今回のKubeConでCloudFormation TemplateをFluxでデプロイする新しいEcosystemが発表されました。AWS CloudFormation Template Sync Controller for Flux のご紹介
© ZOZO, Inc.全リソースをFluxで管理できる日も近い…!41
© ZOZO, Inc.まとめ42● OCIはGitに変わるFluxのSSOT○ ただ、Gitはこれまで通り利用され続ける。OCIはあくまで中継役● FluxはK8sマニフェスト以外のリソースへの対応を拡大中○ K8s、Terraform、CloudFormation● KubeCon EUも最高でした
© ZOZO, Inc.参考リンク43● https://opencontainers.org/● Announcing Docker Hub OCI Artifacts Support● OCI artifacts on Docker Hub● OCI cheatsheet● CIOpsからGitOpsへ。Flux2でマイクロサービスのデプロイを爆速にした話