LoginSignup
10
0

Tanzu Mission Controlを使ってTanzu Kubernetes GridのWorkload Clusterの作成後にリソースを自動で作らせる

Posted at

本記事は「TUNA-JP Advent Calendar 2023」の7日目のエントリとして、Tanzu Mission Controlを使ってTanzu Kubernetes GridのWorkload Clusterの初期設定を自動化する方法について紹介します。

昨年のアドベントカレンダーから引き続き、Tanzu Mission Controlネタになります。

この記事のサマリ

  • Tanzu Mission ControlではTanzu Kubernetes Grid(TKG)のWorkload Clusterを新規作成することが出来ます。
  • Tanzu Mission Control独自のClusterGroupという概念により、複数のClusterをグループ化することでまとめて設定することが出来ます。また、Workload Clusterを新規作成するときにClusterGroupを指定することが出来ます。
  • Tanzu Mission ControlのContinuous Delivery機能を有効化すると、Gitリポジトリに格納したYAMLをもとにクラスタの構成を定義してリソースを作ることが出来ます。Cluster単位で有効化するだけでなく、ClusterGroup単位で有効化することが出来ます。
  • 以上を組み合わせると、ClusterGroupでContinuous Delivery機能を有効化している場合、そのClusterGroupを指定してTanzu Kubernetes GridのWorkload Clusterを新規作成すると、作成してすぐにGitリポジトリで定義しているリソースを作らせることが出来ます。

まずはVMwareのTanzu Mission Controlとは何か?

一言でいうと、複数のKubernetesクラスタを一元的に管理できるTanzu製品です。提供形態はSaaSで略称はTMCです。
image.png

VMwareのKubernetesディストリビューションであるTanzu Kubernetes Grid(TKG)だけではなく、主要クラウドプロバイダのKubernetesクラスタも管理下に置くことが可能です。
image.png

今回の概要

① Tanzu Mission ControlでTanzu Kubernetes GridのManagement Clusterを登録(下準備)
② Tanzu Mission Control経由でTanzu Kubernetes Grid(TKG)のWorkload Clusterを作成
③ GitHubと連携したContinuous Delivery機能を用いてKubernetesのリソース作成

image.png

① Tanzu Mission ControlでTanzu Kubernetes GridのManagement Clusterを登録

まずは下準備として、Tanzu Mission ControlでTanzu Kubernetes GridのManagement Clusterを登録します。
Tanzu Mission ControlのGUIで必要なパラメータを入力すると、エージェントをインストールするためのkubectlのコマンドが生成されます。

image.png

管理対象のクラスタでCLIでkubectlコマンドを実行すると、Tanzu Mission ControlのエージェントがKubernetesのカスタムリソースとして作成されます。
image.png

Tanzu Mission Controlで登録したClusterは、CPU/メモリ消費やNodeやNamespace、Workloadリソースなどが確認できます。
image.png

② Tanzu Mission Control経由でTanzu Kubernetes Grid(TKG)のWorkload Clusterを作成

次はTanzu Kubernetes Grid(TKG)のWorkload Clusterを作成します。※赤字部分。

image.png

Tanzu Kubernetes Grid(TKG)のManagement Clusterを登録しているとWorkload Clusterを作成できます。
image.png

vSphere上でTanzu Kubernetes Gridを作成している場合は、クラスタがvSphereのどのリソースプールやデータストアを利用しているかも表示されます。
image.png

冒頭で説明した通り、Tanzu Mission Control独自の抽象化概念として、複数のClusterを1つのグループにまとめるCluster Groupがあります。※複数のNamespaceを1つのグループにまとめるWorkspaceもあります。
image.png

③ GitHubと連携したContinuous Delivery機能を用いてKubernetesのリソース作成

次はContinuous Delivery機能を有効化していきます。
image.png

具体的な有効化の方法は@ipppppeiさんの下記の記事を参照ください。

概要としては、クラスタの構成をYAMLで宣言的に定義して、Gitリポジトリに格納します。それをFlux Controllerが取得してKustomizeで同期する仕組みです。
image.png

今回はGitHubでtmc-cd-demoというNamespaceとそれに紐づいたリソースを定義します。
※画像右側です。
image.png

Tanzu Mission ControlでCD機能を有効にしてKustomizationを登録すると、Workload Clusterでtmc-cd-demoのリソースが作られます。
→CLIの1行目でnamespace:tmc-cd-demoのリソースをkubectlで表示させても何も表示されていないですが、Kustomizationを登録したあとの3行目では、GitHubで定義したnamespace:tmc-cd-demoのリソースが表示されています。
image.png

2023/1/31には、このCD機能がClusterGroupレベルで実行できるようになりました。
次はClusterGroup用にtmc-clustergroup-cd-demoのNamespaceをGitHubで定義します。
今回はtkgというClusterGroupの名称にしています。

image.png

想定通り、Namespaceを見るとtmc-clustergroup-cd-demoが作成されています。

image.png

次はClusterGroup単位でContinuous Delivery機能を有効化している状態で、そのClusterGroupを指定してTanzu Kubernetes GridのWorkload Clusterを新規作成してみます。イメージとしては下記画像です。

image.png

下記のようにTanzu Mission ControlでCD機能を有効化済みのClusterGroupを指定して、Tanzu Kubernetes GridのWorkload Clusterを作成します。

image.png

次の画面は、新しく作ったWorkload Clusterの設定をTanzu Mission Controlで見たものですが、構築してすぐに関わらず、すでにCluster Group単位のCD機能が有効化されています。
image.png

次は、新しく作ったWorkload ClusterのNamespaceの一覧を表示したものですが、tmc-clustergroup-cd-demoのNamespaceが作られています。

image.png

今回は簡単なリソースを作っただけですが、Tanzu Mission ControlのCD機能を使うことで、複数のTanzu Kubernetes Gridにまとめてリソースを作成させることや初期構築時にリソースを自動で作らせることが出来ます。

考えられるユースケース

VMwareのエッジソリューション(Edge Compute Stack)では、Tanzu Kubernetes GridとTanzu Mission Controlが使われています。多数の拠点にKubernetesを展開する際に手動でリソースの作成すると大変ですが、今回の仕組みを使うことで各種リソース作成を自動化することが出来ます。

今回のネタを書く際に参考にした記事

10
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
0