Tanzu Platform Self Managed を試す - 管理者向け:デプロイ先の軽量化編
最新製品である Tanzu Platform のオンプレ版を試していきます。
TPのデフォルトのClusterGroupのrunだとKubernetesのインストール先に必要なリソース量がそれなりに多くなってしまいます。
今回は、それを軽量化してみたいと思います。
シリーズ
- Install編
- 管理者向け:Projectセットアップ編
- 利用者向け:Spaceへのデプロイ編
- ここ> 管理者向け:デプロイ先の軽量化編
- 管理者向け:通信のHTTPS化
- 管理者向け:DNSへの自動登録
- 利用者向け:DB接続情報の管理編
おまけ:「Tanzu Platform の知らなくてもいい話」シリーズ
デフォルトの run, Cluster Group のリソース
以下が、RunのClusterGroupに一切のアプリケーションもデプロイしていない時のリソース予約量(かならずこの量より多くのリソースが必要)です。 特に顕著なのが、メモリの予約量であり、10GBほどが必要となってきます。
この状態ですと、1アプリでもデプロイすると、リソースが限界になり、二つ目以降のアプリケーションがデプロイが困難になります。
run-lite, ClusterGroupを作成
そこでより軽量化を目指した、run-lite とよばれるクラスタグループを作っていきます。
[ Infrastructure ] > [ Kubernetes Clusters ] > [ Cluster Groups ] > [ ADD Cluster Group] を選択して run-lite を作成します。
run-lite への Packages のインストール
run-lite にデフォルトでインストールされるパッケージを指定していきます。
[ Space ] > [ Capabilites ] から一つづやるのも可能なのですが、CLIでやる方法のがシンプルなので、今回はそれをベースに行います。
まず、以下のコマンドで、run-lite クラスタグループをターゲットにします。
1tanzu operations clustergroup use run-lite
次に、パッケージをインストールしていきます。簡単にするため以下の git レポジトリを用意しました。 https://github.com/mhoshi-vm/tp-run-lite
以下のコマンドで適用します。
1git clone https://github.com/mhoshi-vm/tp-run-lite
2cd tp-run-lite/clustergroup
3tanzu deploy --only .
以上ではありますが、この run-lite と run の比較を以下の表にまとめました。
| run | run-lite | 補足 | |
|---|---|---|---|
| bitnami.services.tanzu.vmware.com | ○ | bitnami系のcreate-serviceができなくなるがリソース消費量が多いので削除 | |
| cert-manager.tanzu.vmware.com | ○ | ○ | |
| container-apps.tanzu.vmware.com | ○ | ○ | |
| controller.build.tanzu.vmware.com | ○ | プラットフォームビルドのために必要。通常run には含まれないが、簡易的に追加 | |
| crossplane.tanzu.vmware.com | ○ | bitnami系のcreate-serviceができなくなるがリソース消費量が多いので削除 | |
| egress.tanzu.vmware.com | ○ | ○ | |
| health.spaces.tanzu.vmware.com | ○ | ○ | |
| horizontal-autoscaling.tanzu.vmware.com | ○ | ○ | |
| ingress.tanzu.vmware.com | ○ | ○ | |
| k8sgateway.tanzu.vmware.com | ○ | ○ | |
| mtls.tanzu.vmware.com | ○ | ○ | |
| observability.tanzu.vmware.com | ○ | ○ | |
| servicebinding.tanzu.vmware.com | ○ | ○ | |
| spring-cloud-gateway.tanzu.vmware.com | ○ | メモリ消費量が多いのでSCGも通常は使わないので削除 | |
| tanzu-servicebinding.tanzu.vmware.com | ○ | ○ | |
| tcs.tanzu.vmware.com | ○ | △ | リソース消費量は多いのだが、他の機能のために必須なので、リソース両方減らして登録 |
なお最後のtcs.tanzu.vmware.com は istiod をインストールするために使われますが、この Hack によってリソース消費量をおさえています。
とくに Replica を1にしているので、耐障害性は低くなる点注意してください。
run-lite へクラスタを登録
k8s クラスタを run-lite に登録していきます。
なお、残念ながらすでに run で登録したクラスタを run-lite に移すのは執筆時点ではできないです。
新しいクラスタを用意するか、もしくは、今のクラスタを detach して再度アタッチしなおしてください。
[ Infrastructure ] > [ Kubernetes Clusters ] から行えます。
run-lite のリソース量
それなりに低くくなって、特にメモリ量が 6.5 GB ほどです。
アプリケーションのデプロイ
ここからは通常のアプリケーションのデプロイで行えます。
apps.tanzu.vmware.comプロファイルをベースとしたSpaceにデプロイするだけでいつも通りデプロイできます。
前記事を参照してください。
以上デプロイ先の軽量化について記載しました。