Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KubeCon + CNCon Europe 2023 Recap Flux Beyond G...
Search
ksudate
May 30, 2023
Programming
1
18k
KubeCon + CNCon Europe 2023 Recap Flux Beyond Git: Harnessing the Power of OCI
Kubernetes Meetup Tokyo #58 (
https://k8sjp.connpass.com/event/282273/
) の登壇資料になります
ksudate
May 30, 2023
Tweet
Share
More Decks by ksudate
See All by ksudate
ZOZOTOWNにおけるKubernetes Cluster Upgradeの これまでとこれから
ksudate
2
2.2k
KubeCon + CNCon Europe 2022 Recap ~ Istio Today and Tomorrow: Sidecars and Beyond
ksudate
1
570
分散負荷試験の自動化を実現するGatling Operatorの紹介
ksudate
1
4.8k
PodのAZ分散を実現する Pod Topology Spread ConstraintsとDescheduler
ksudate
1
890
Other Decks in Programming
See All in Programming
JJUG CCC 2025 Fall: Virtual Thread Deep Dive
ternbusty
3
490
Atomics APIを知る / Understanding Atomics API
ssssota
1
220
Phronetic Team with AI - Agile Japan 2025 closing
hiranabe
2
680
AIを駆使して新しい技術を効率的に理解する方法
nogu66
1
660
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
5
1.1k
データファイルをAWSのDWHサービスに格納する / 20251115jawsug-tochigi
kasacchiful
2
100
Rails Girls Sapporo 2ndの裏側―準備の日々から見えた、私が得たもの / SAPPORO ENGINEER BASE #11
lemonade_37
2
190
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 1
philipschwarz
PRO
0
110
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.2k
How Software Deployment tools have changed in the past 20 years
geshan
0
15k
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
5
2.6k
GeistFabrik and AI-augmented software development
adewale
PRO
0
190
Featured
See All Featured
Code Review Best Practice
trishagee
72
19k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
How to Ace a Technical Interview
jacobian
280
24k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Code Reviewing Like a Champion
maltzj
527
40k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
A better future with KSS
kneath
239
18k
Bash Introduction
62gerente
615
210k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
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
© ZOZO, Inc. 株式会社ZOZO 技術本部 SRE部 ECプラットフォーム基盤SREブロック 巣立 健太郎 /
Kentaro Sudate KubeConはNAに続いて2回目 Twitter: @ksudate 2
© ZOZO, Inc. KubeConの悲劇 3 KubeCon開催の1ヶ月前のある日のこと… 初のEuropeという事でワクワクしながら、ホテルも飛行機もガイドブックも 早々に予約を済ませていました。 しかし、ある想定外の自体が発生しました…
© ZOZO, Inc. KubeConの悲劇 4 KubeConのチケット売り切れた
© ZOZO, Inc. KubeConの悲劇 5 https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/
© ZOZO, Inc. KubeConの悲劇 6 でも、安心してください
© ZOZO, Inc. KubeConの悲劇 7 Waitlistがありました! Waitlistに登録してから数週間後、無事チケットを獲得しOn-siteで参加でき ることになりました。 (飛行機のキャンセル代、数十万円に怯える日々は辛かったです…) https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/
© ZOZO, Inc. KubeConの悲劇 8 今後、KubeConへ参加する方はお早めのチケットの購入をおすすめします。
© ZOZO, Inc. Agenda 9 • セッションRecap • ZOZOTOWNのCI/CD基盤とFlux2の活用 •
まとめ
© 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
© ZOZO, Inc. セッション概要 11 OCIがアプリケーションコード とインフラ設定の両方のSingle Source of Truth(以下、SSOT)としてどのように機能するかに焦点を当てます。
本セッションでは、Kubernetesの設定とTerraformのモジュールをOCI Artifactsとして配布するためのPackage ManagerとしてFluxを使用する方法 についてのセッションでした。
© ZOZO, Inc. 本題に入る前に… 12
© ZOZO, Inc. OCI (Open Container Initiative)とは? 13 コンテナランタイムとイメージフォーマットの標準化を目的として設立され た。
Docker社をはじめとするコンテナ業界のリーダーたちによって2015年6月に 設立された。
© ZOZO, Inc. OCI ImageとOCI Artifacts Registry 14 OCI Image
OCIの仕様に準拠したコンテナイメージ Docker Imageと互換性があり、既存のDocker ImageをOCI Imageとして利用 可能
© ZOZO, Inc. OCI ImageとOCI Artifacts Registry 15 OCI Artifacts
Registry OCIの仕様に準拠したコンテナイメージの配布と保存のためのシステム Docker HubやAmazon ECRなど、様々な環境でサポートされている
© ZOZO, Inc. OCI ImageとOCI Artifacts Registry 16 OCI Artifacts
Registry OCI Imageだけでなく、他のArtifactsも格納可能 ex. ファイルアーカイブ (tar, zip)、ソースコード、バイナリファイル
© ZOZO, Inc. OCI Artifacts Registry、使ってみよう! 17 ORASを使ってDocker HubにOCI ArtifactsをPush
/ Pullを試す
© ZOZO, Inc. OCI Artifacts Registry、使ってみよう! 18
© ZOZO, Inc. では、本題へ 19
© ZOZO, Inc. Fluxを利用したGitOps Workflow 20 https://youtu.be/gKR95Kmc5ac
© ZOZO, Inc. Fluxを利用したGitOps Workflow 21 • インフラ構成はGitで管理 ◦ ex.
K8sマニフェストやTerraformファイル • コンテナイメージはコンテナレジストリで管理 ◦ ex. Docker Image 構成ファイル、コンテナイメージの管理が異なる…
© ZOZO, Inc. そこで、OCI Artifacts! 22
© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 23 構成ファイル、コンテナイメージの管理が一緒になる! https://youtu.be/gKR95Kmc5ac
© ZOZO, Inc. 他にもメリットあります! 24
© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 25 Gitリポジトリに最終的なKubernetesマニフェストが含まれていない… KustomizeやCueを使っている場合、Build前のマニフェストがGitで管理され ていることが多い
そのため、Fluxが利用するBuild後のマニフェストがGitで管理されている Build前のマニフェストとは異なる
© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 26 解決! OCI Artifactsを使えば、Build後のマニフェストを管理可能
SSOTの観点で言えば、OCI Registryにソースを集約可能になる
© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 27 Gitリポジトリへアクセスするためのキーやトークンの管理が必要… Gitリポジトリと同期を取るためにFluxはキーやトークンを持つ必要がある
© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 28 解決! FluxがGitを参照することはなくなるので管理が不要 OCI
Registryについては、多くのクラウドプラットフォームで用意されてお り、IAMでのアクセス制御などが可能になっている
© 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の署名を検証
© ZOZO, Inc. OCI Artifactsの署名 30 FluxがOCI Artifactの署名を検証
© ZOZO, Inc. FluxとOCI Artifactsを利用したGitOps Workflow 31 他にも、様々なメリットが紹介されました https://youtu.be/gKR95Kmc5ac
© ZOZO, Inc. FluxでOCIを利用するには? 32 OCIRepositoryを利用する
© ZOZO, Inc. GitからOCIへの移行 33 GitRepositoryとOCIRepositoryは互換性を持つAPI https://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基盤が抱える課題 36 K8sマニフェスト以外の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基盤が抱える課題 39 Weave GitOps Terraform Controller TerraformをFluxで管理するEcosystemをGitOpsの提唱したWeavework社が
開発しています。 Weave GitOps Terraform Controller CloudFormationはどうする…?
© 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 のご紹介
© 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でマイクロサービスのデプロイを爆速にした話
None