Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KubeCon + CNCon Europe 2023 Recap Flux Beyond Git: Harnessing the Power of OCI

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

More Decks by ksudate

Other Decks in Programming

Transcript

  1. 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

    View Slide

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


    2

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. © 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. © 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の署名を検証

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  40. © 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 のご紹介

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  44. View Slide