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
15k
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
1
1.2k
KubeCon + CNCon Europe 2022 Recap ~ Istio Today and Tomorrow: Sidecars and Beyond
ksudate
0
460
分散負荷試験の自動化を実現するGatling Operatorの紹介
ksudate
1
4k
PodのAZ分散を実現する Pod Topology Spread ConstraintsとDescheduler
ksudate
1
650
Other Decks in Programming
See All in Programming
数値を文字列に整形する際の落とし穴とその解決策(iOSDC2024 ルーキーズLT) / iOSDC Japan 2024 Formatting Floating-Point Numbers
glassfiber
0
250
BasicBasic認証
sadnessojisan
5
2.5k
TypeScriptで 負荷テストを書こう 〜k6のシングルバイナリの秘密〜
dora1998
7
2.8k
開発を加速する共有Swift Package実践
elmetal
PRO
0
300
詳解UIWindow
natmark
3
2k
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
380
デザインシステムとコンポーネント指向によるフロントエンド開発プロセスの革新 / Innovation in Frontend Development Processes through Design Systems and Component-Oriented Architecture
nrslib
7
5k
Swiftコードバトル必勝法
toshi0383
0
140
Prompt Cachingは本当に効果的なのか検証してみた.pdf
ttnyt8701
0
250
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
330
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
4
2.9k
iOSの隠されたAPIを解明し、開発効率を向上させる方法/iOSDC24
noppefoxwolf
2
120
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
122
18k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
42
2k
Faster Mobile Websites
deanohume
304
30k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
Six Lessons from altMBA
skipperchong
26
3.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
33
1.7k
Why Our Code Smells
bkeepers
PRO
333
56k
Speed Design
sergeychernyshev
18
400
Being A Developer After 40
akosma
82
580k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
47k
Statistics for Hackers
jakevdp
793
220k
GraphQLとの向き合い方2022年版
quramy
43
13k
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