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
16k
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.3k
KubeCon + CNCon Europe 2022 Recap ~ Istio Today and Tomorrow: Sidecars and Beyond
ksudate
1
480
分散負荷試験の自動化を実現するGatling Operatorの紹介
ksudate
1
4.2k
PodのAZ分散を実現する Pod Topology Spread ConstraintsとDescheduler
ksudate
1
670
Other Decks in Programming
See All in Programming
C#/.NETのこれまでのふりかえり
tomokusaba
1
160
役立つログに取り組もう
irof
27
8.7k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
9
1k
現場で役立つモデリング 超入門
masuda220
PRO
13
2.9k
Outline View in SwiftUI
1024jp
1
160
デプロイを任されたので、教わった通りにデプロイしたら障害になった件 ~俺のやらかしを越えてゆけ~
techouse
52
32k
Googleのテストサイズを活用したテスト環境の構築
toms74209200
0
270
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3.1k
Vue3の一歩踏み込んだパフォーマンスチューニング2024
hal_spidernight
3
3.1k
JaSST 24 九州:ワークショップ(は除く)実践!マインドマップを活用したソフトウェアテスト+活用事例
satohiroyuki
0
260
Vaporモードを大規模サービスに最速導入して学びを共有する
kazukishimamoto
4
4.3k
GCCのプラグインを作る / I Made a GCC Plugin
shouth
1
150
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.8k
Scaling GitHub
holman
458
140k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
The Cost Of JavaScript in 2023
addyosmani
45
6.6k
BBQ
matthewcrist
85
9.3k
Faster Mobile Websites
deanohume
304
30k
Automating Front-end Workflow
addyosmani
1365
200k
Designing Experiences People Love
moore
138
23k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
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