Slide 1

Slide 1 text

©2023 VMware, Inc. TKG x GitOps で KaaS@home にチャレンジ︕ ⾕垣 友喜(Twitter: @ttani03) Sr. TSE / CTO Ambassador @VMware 2023/6/16

Slide 2

Slide 2 text

©2023 VMware, Inc. 2 p 名前︓⾕垣 友喜(Twitter: @ttani03) p 所属︓VMware 株式会社 p 役職︓Senior Technical Support Engineer, CTO Ambassador 主にネットワーク製品(NSX-T, NSX-ALB)を担当 ⾃⼰紹介

Slide 3

Slide 3 text

©2023 VMware, Inc. 3 今⽇のテーマ TKG x GitOps で KaaS@home にチャレンジ︕ 注)VMware としては公式にはサポート外

Slide 4

Slide 4 text

©2023 VMware, Inc. 4 背景 Platform Engineering Meetup #1 Git で KaaS を 運⽤しています TKG でも GitOps で クラスタの作成・運⽤が可能︖

Slide 5

Slide 5 text

©2023 VMware, Inc. 5 ⽬標 1. Kubernetes クラスタを Git ベースで作成可能 2. 作成した Kubernetes クラスタにアプリケーションを展開可能 挑戦した結果 1, 2 ともに達成︕ ただしスマートではない⽅法...

Slide 6

Slide 6 text

©2023 VMware, Inc. 6 vCenter Bootstrap manage ment manage ment ⾃宅ラボの環境 ハードウェア p E200-D x 1 p UM480 x 2 ソフトウェア p vSphere 7.0 U3 p TKG 2.2 p CD ツール ü Flux ü Argo CD ESXi x 3 manage ment workload 管理 manage ment workload

Slide 7

Slide 7 text

©2023 VMware, Inc. 7 https://github.com/ttani03/tunacon9-kaas-home GitHub リポジトリの構成 Argo CD ⽤(Workload Cluster の yaml) Flux ⽤(Workload Cluster 上のアプリケーション)

Slide 8

Slide 8 text

©2023 VMware, Inc. 8 1. Management Cluster に Argo CD をインストール 2. GitHub 上に参照⽤リポジトリを作成 3. 2 のリポジトリに以下のリソースを含む yaml ファイルを配置 ※ “tanzu cluster create --dry-run” でベースとなる yaml ファイルを⽣成可能 ü Secret ü VSphereCPIConfig ü ClusterBootstrap ü Cluster 4. 3 を参照する Argo CD の Application を作成 5. Workload Cluster が作成 Workload Cluster の作成

Slide 9

Slide 9 text

©2023 VMware, Inc. 9 Workload Cluster の作成

Slide 10

Slide 10 text

©2023 VMware, Inc. 10 1. Management Cluster に Flux をインストール 2. アプリケーションを定義した yaml ファイルを参照する Flux の GitRepository / Kustomization を参照⽤リポジトリに作成 3. Workload Cluster 上にアプリケーションを展開 Workload Cluster へのアプリケーションの展開

Slide 11

Slide 11 text

©2023 VMware, Inc. 11 Argo CD での問題 p Workload Cluster の追加には CLI 操作が必要 ü ServiceAccount / ClusterRole / ClusterRoleBinding を作成する必要あり => これが Git のみで対応できず、Flux を使うことに… ü Flux は Cluster API に対応し、kubeconfig を指定するだけで OK Flux での問題 p Workload Cluster がエラーで作成できない… ü Cluster/default/workload01 dry-run failed, reason: could not get secret for key: default/workload01: Secret "workload01" not found: admission webhook "tkr-vsphere-resolver-webhook.tanzu.vmware.com" denied the request: could not get secret for key: default/workload01: Secret "workload01" not found なぜ Argo CD と Flux を使い分けるのか︖

Slide 12

Slide 12 text

©2023 VMware, Inc. 12 挑戦した結果 p TKG でも GitOps で KaaS が実現可能︕ p ただし、すべての作業を Git ベースで⾏うのは難しい… ü ArgoCD では新規クラスタの追加ができない ü Flux では Workload Cluster の展開に失敗 結論 p TMC(Tanzu Mission Control)を使った⽅が(たぶん)よさそう 😇 まとめ

Slide 13

Slide 13 text

©2023 VMware, Inc. Thank You