2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

NUCで始めるVMware Tanzu - Tanzuの紹介とハードウェア要件

今日は、NUCを使って、どんなものを構築していくかについて紹介します。

VMware Tanzu

1日目 にも軽く触れましたが、今VMwareは、かなりKubernetesに力を入れています。
私がこれからNUCを使って、vSphereインフラ上にKubernetesのマルチクラスタ環境を構築していきたい訳ですが、それを実現するためのソリューション群が提供されていて、その名称が VMware Tanzu です。

そもそもvSphereって何?

VMwareの主力製品であり、「VMware ESXi」や「VMware vCenter Server」などの製品郡で構成される仮想化基盤を示します。AWSやGCPやAzureなどの主要なパブリッククラウドベンダーのインフラ基盤も、vSphere上で構築されてたりします。つまり、理論的には(すごーーく頑張れば)、vSphereさえあれば、あなたもAWSを創ることができちゃいます:smiley:
2020年3月に、最新版である「vSphere7」が発表され、一番の目玉として、 TanzuによるKubernetes対応 を発表しています。 (こちらの記事 の方が分かりやすいかも)

Tanzu って何?

KubernetesのRUN(様々な環境へのクラスタ導入)、BUILD(APPの作成)、MANAGE(マルチクラスタ管理)を促進する製品群の総称です。なおTanzuとは、 スワヒリ語で枝(=新しいイノベーションの分岐)、または日本語の箪笥(タンス=コンテナを表現)を象徴した 名前のようです。

Tanzuの製品ラインナップのことを、 Tanzu Portfolio(ポートフォリオ) と呼びます。これらの製品は、VMwareが近年買収してきた、Pivotal/Bitnami/Wavefront/Heptioの製品や技術が元になっています。2020年11月30日現在のポートフォリオは以下の通りです。

カテゴリ 製品名 提供形態 概要
Build Tanzu Application Service
(旧Pivotal Application Service)
ソフトウェア PaaS基盤。"cf push"コマンドでAPPをデプロイすると、自動的に依存関係管理、負荷分散、ロギング、監査等を実行し、本番環境で稼働されます。
VM上で動作する TAS for VMs と、現在評価利用のみ可能な TAS for Kubernetes が存在。
Build Tanzu Build Service
(旧Pivotal Build Service)
ソフトウェア Cloud-Native Buildpacksをベースとして、コンテナの作成、管理、ガバナンスを自動化するソフトウェア。
Build Tanzu Application Catalog SaaS Bitnami Application CatalogをベースとしたOSSカタログと、Base OSの組み合わせを管理し、メンテナンスされた最新状態のコンテナBase Imageを提供するするサービス
Build Tanzu Data Services
(旧Pivotal GemFire)
(旧Pivotal RabbitMQ)
(旧Pivotal )
ソフトウェア データ関連ミドルウェアの製品スイート。現在はTAS for VM向けにリリースされており、Kubernetes向けにはベータ提供中。ラインナップとして、Tanzu GemFireとTanzu RabbitMQとTanzu SQLがある。
Run Tanzu Kubernetes Grid
(以下、TKGと省略)
K8s TKGは2つの意味を持ちます。
1つ目は、VMwareによってテスト、署名、サポートされた、アップストリーム(OSS版)と互換性のあるKubernetesランタイムを指します。なお、TKGで構築されたKubetrnetesクラスタを、Tanzu Kubernetes Cluster(以下、TKC)と呼びます。
2つ目は、様々なクラウドやオンプレ環境に、TKCを導入する仕組みのことを指します。現時点では、vSphere / Microsoft Azure / Amazon EC2 / VMC on AWS に対応。(今後GCPにも対応予定)
Run vSphere with Tanzu K8s vSphere UIに統合されたTKCの導入を行う仕組みを提供。(つまりvSphere環境には、2種類のTKCの導入方法が存在)
こちらの特徴として、vCenter SSO、コンテンツライブラリ、vSphereネットワーク、vSphereストレージ、vSphere HA、DRS、vSphereセキュリティなどが統合され、vSphere上での包括的な管理・運用が可能。
Manage Tanzu Mission Control SaaS 様々なマルチクラウド上のKubernetesクラスタのライフサイクルやポリシーを一元管理するサービス。複数のKubernetesクラスタに対し、さまざまな一括操作をが行える。 (一括でポリシー適用など)
Manage Tanzu Observability
(旧Wavefront)
SaaS フルスタックAPPからクラウドインフラに至るまで、メトリクス、トレース、スパン・ログ、アナリティクスまで、あらゆるものを統合監視するソリューション。分析駆動型のカスタムメトリクスが特徴。
Manage Tanzu Service Mesh SaaS NSXをベースに、にオープンソースのサービスメッシュ製品「Istio」を統合したソリューション。

各製品の技術ドキュメントは、 Tanzu Docs のページにまとまっています。
NUCにはvSphere環境を入れるため、 TKG 、および、vSphere with Tanzu を導入するところまでをゴールとしたいと思います。

ハードウェア要件

vSphereにKubernetesクラスタ基盤なんて、必要リソースが多そうで、果たしてNUCに入るんだろうかと、不安になりますよね?まずは、それぞれの製品の必要スペックを抑えていきましょう。

vSphere with Tanzu のコンピューティング要件

まず、NSX-T(ネットワークの仮想化製品)の有無によって条件が変わってきます。

今回はNSX-Tなしで検討します。余力があったらNSX-Tの導入もやりたいところですね・・
ポイントは以下の通りです。

ESXi台数

ESXiとは、ハードウェア上に直接、仮想マシンを動作させるための基盤(ハイパーバイザー)を導入する製品です。(なお小ネタとして、ESXの名前の由来は、当時の製品名である「Elastic Sky X」という名前の略称で、命名理由は、当時のマーケッターが「良い名前と思ったから」だそうですw)
シンプルに考えると、ESXiは物理サーバを担当するので、ESXi1台=NUC1台と考えることができます。

3 台の ESXi ホストと、ホストあたり 1 つの固定 IP アドレス。
2 つ以上の NIC を搭載した vSAN 用の 4 台の ESXi ホスト

ドキュメントを見ると、「どっちやねん!」という書きっぷりですが、これは、vSANを使うかどうかで変わってきます。(vSAN = Virtual Software-Defined Storage。ESXiホストの物理ストレージリソースを仮想化し、1つの共有データストアとして提供する製品)
また、vSAN利用時の推奨構成が4台以上なのですが、検証用途であれば、一応3台でもvSAN構築可能です。

つまり、愚直に作ろうとすると、ESXiが3台必要なので、NUCが3台も必要です。さらに問題なのは、NUCには1つのNICしかついていません。正攻法でいくなら、30万かけて3台のNUCを用意し、さらにUSB NICを用意して、USB NICが使えるようにドライバを当てる必要があります。
ここでドン引きしたあなた、ご安心下さい。そんな負担はかけたくないと思うので、後日、Nested ESXiと呼ばれる、ESXiの中にESXiを入れる方法をご紹介して、この2つの問題を解決したいと思います。

必要リソース(CPU/メモリ/ストレージ)

以下の点がポイントとなります。

  1. まずここに記載のCPUとは、論理CPUのことなので、NUCのthread数(i7モデルなら12、i5モデルなら8)に該当します。また、CPUは圧縮可能なリソースなので、デプロイできないといった制約にはなりません。ただ、オーバーコミットしすぎると、非常にもっさりするため、なるべく要件通りが望ましいです。
  2. 一方メモリは、リソースの確保が必要なので、最小要件を守っていく必要があります。
  3. ストレージは、シンプロビジョニングすればよいし、検証用途だと余りがちなので、忘れて大丈夫です。
  4. ぱっと見で一番やっかいなのは、ESXiです。ホストあたり8CPU/64GBと要件は厳しくみえますが、この値は、本番環境で様々なワークロードを快適に動作させるための最小要件と思われます。実際の必要量は、ESXi上で動作させたいものに依存するため、一旦忘れていただいて大丈夫です。
  5. 実際にESXi上で最低限インストールが必要なものは、ここに書いてある通り、「vCenter Server 7.0」(vSphere基盤の管理コンソール)と、「K8s ControlPlane VM」(ここの説明は後日・・)です。特に後者の方は、3台必要なので厄介です。今回はリソースをケチって、2CPU/8GB Mem/16GB Diskにしようと思いますが、ちょっとモッサリします。(さらに低いスペックも選択可能ですが、実用に耐えません。)もし潤沢にリソースがある場合は、最小要件に書かれた通りにしましょう。
  6. Nested ESXi構成を予定しているので、ある程度仮想ESXi分のオーバーヘッドが必要なはずです。

上記を踏まえると、本当に最低限必要なリソース量は、以下の通りとなります。

システム CPU メモリ
vCenter Server 7.0 2 16GB
K8s ControlPlane x3 6(=2x3) 24GB(=8GB x3)
Nested ESXi x3 ? ?
合計 8+α 40GB+α

ただし、この上でK8sクラスタを立てたり、アプリ等をちょっと試すことも考慮すると、NUC1台ではちょっと厳しく、NUC2台以上は欲しいところです。

TKG のコンピューティング要件

TKGのハードウェア要件は、純粋にK8sクラスタの要件になるので、vSphere with Tanzuが導入できるなら、TKGも問題ないでしょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
2
Help us understand the problem. What are the problem?