Tanzu CLI またはインストーラ インターフェイスを使用して管理クラスタを展開する前に、vSphere 環境を準備する必要があります。vSphere が一般的な要件を満たしていることを確認し、Tanzu Kubernetes Grid がクラスタ ノード仮想マシンを作成する基本イメージ テンプレートをインポートする必要があります。各基本イメージ テンプレートには、マシン OS のバージョンと Kubernetes のバージョンが含まれています。
kubectl
がインストールされているマシン。「スタンドアローン管理クラスタで使用する Tanzu CLI およびその他のツールのインストール」を参照してください。
tanzu
、kubectl
およびその他のコマンドを実行するブートストラップ マシンです。次を備えている vSphere ネットワーク*:
VSPHERE_CONTROL_PLANE_ENDPOINT
として設定するか、制御プレーン エンドポイントに NSX Advanced Load Balancer を使用している場合は、アドレス プールからアドレスを自動的に設定します。CLUSTER_API_SERVER_PORT
を設定するか、NSX Advanced Load Balancer を使用する環境の場合は、クラスタの展開時に VSPHERE_CONTROL_PLANE_ENDPOINT_PORT
変数を設定します。~/.config/tanzu/tkg/bom/
にあり、その名前には Tanzu Kubernetes Grid バージョンが含まれています。たとえば、v2.1.1 の場合は bom-2.1.1+vmware.1.yaml
です。date
コマンドを実行して、タイムゾーン設定を表示します。esxcli system time set
を実行します。NSX Advanced Load Balancer (ALB) が vSphere インスタンスにインストールされている(NSX ALB をロード バランサおよび制御プレーン HA のエンドポイント プロバイダとして使用する場合)。NSX Advanced Load Balancer のインストールに関する説明を参照してください。
vSphere 環境で VMware NSX を実行している場合は、管理クラスタの展開時に NSX インターフェイスを使用できます。NSX 設定に、DHCP が有効になっているセグメントが含まれていることを確認してください。すべての ESXi ホスト、vCenter Server、およびブートストラップ マシンで NTP が構成されていることを確認してください。
* または、外部ネットワーク アクセスなしでインストールする場合は、「インターネットが制限された環境の準備」を参照してください。
次の表は、vSphere 上の管理クラスタのサイズ設定の例を示しています。このデータを指針として、管理クラスタの規模を、展開するワークロード クラスタ数を処理できるサイズに調整してください。「ワークロード クラスタ仮想マシン サイズ」列には、「管理可能な最大規模…」列の例で使用された仮想マシンのサイズが一覧表示されます。
管理クラスタのプラン | 管理クラスタ仮想マシン サイズ | 管理可能な最大規模… | ワークロード クラスタ仮想マシン サイズ |
---|---|---|---|
3 台の制御プレーン ノードと 3 台のワーカー ノード | 制御プレーン ノード:
ワーカー ノード:
|
例:
|
制御プレーン ノード:
ワーカー ノード:
|
3 台の制御プレーン ノードと 3 台のワーカー ノード | 制御プレーン ノード:
ワーカー ノード:
|
例:1 台のワークロード クラスタ(3 台の制御プレーンと 500 台のワーカー ノードを展開) | 制御プレーン ノード:
ワーカー ノード:
|
3 台の制御プレーン ノードと 3 台のワーカー ノード | 制御プレーン ノード:
ワーカー ノード:
|
例:200 台のワークロード クラスタ(各クラスタに 3 台の制御プレーンと 5 台のワーカー ノードを展開) | 制御プレーン ノード:
ワーカー ノード:
|
以下の「クラスタ ノードの仮想マシンの最小サイズ」も参照してください。
vSphere 8 では、vSphere with Tanzu 機能には、Tanzu Kubernetes Grid の管理クラスタとして使用できるスーパーバイザー クラスタが含まれています。つまり、vSphere 8 では、vSphere with Tanzu およびスーパーバイザーが有効である場合、tanzu management-cluster create
または tanzu mc create
を使用して管理クラスタを展開する必要はありません。vSphere with Tanzu が有効でない場合の Tanzu Kubernetes Grid 管理クラスタの vSphere 8 への展開はサポートされていますが、推奨されるのは、可能な場合には vSphere with Tanzu を有効にして、組み込みのスーパーバイザー クラスタを使用することです。vSphere with Tanzu スーパーバイザーは vSphere と緊密に統合されているため、スタンドアローン管理クラスタを使用する場合よりも効率的なユーザー エクスペリエンスを提供します。ただし、vSphere でスタンドアローン管理クラスタを使用すると、スーパーバイザーよりも多くの構成およびカスタマイズに関するオプションが提供されます。
重要TKG 2.x および vSphere 8 の vSphere with Tanzu スーパーバイザーと互換性のある Tanzu CLI のバージョンは、vSphere 7 のスーパーバイザー クラスタと互換性がありません。vSphere 7 の vSphere with Tanzu スーパーバイザー クラスタで Tanzu CLI を使用するには、TKG v1.6 の Tanzu CLI バージョンを使用します。スーパーバイザーで TKG 2.x と互換性のある Tanzu CLI のバージョンを使用するには、vSphere 8 にアップグレードします。vSphere with Tanzu スーパーバイザー クラスタが存在しない場合は、スタンドアローン TKG 2.x 管理クラスタを vSphere 7 に展開できます。Tanzu CLI と VMware 製品の互換性の詳細については、Tanzu CLI のドキュメントを参照してください。
Tanzu CLI は、vSphere with Tanzu によって提供される管理クラスタと、Azure、Amazon Web Services (AWS)、および vSphere(vSphere with Tanzu が有効でない場合)上の Tanzu Kubernetes Grid によって展開されたスタンドアローン管理クラスタの両方で動作するため、単一のツールを使用して複数のインフラストラクチャ間でワークロード クラスタを展開および管理できます。スーパーバイザーで Tanzu CLI を使用する方法については、「Tanzu CLI を使用した TKG 2.1 ワークロード クラスタの作成と管理」の「Tanzu CLI をスーパーバイザーに接続する」を参照してください。
vSphere 8 の vSphere with Tanzu 機能の詳細については、vSphere with Tanzu 8.0 のドキュメントを参照してください。
注Azure VMware Solution ではスーパーバイザー クラスタを作成できないため、管理クラスタを展開して
tanzu
コマンドを実行する必要があります。
vSphere に展開する各管理クラスタとワークロード クラスタには、クラスタの API サーバへの外部要求のために、1 つの固定仮想 IP アドレスが必要です。割り当てる必要があるこの IP アドレスは、DHCP 範囲内にはできませんが、DHCP 範囲と同じサブネット内にあることが必要です。
クラスタ制御プレーンの Kube-Vip ポッドは、この固定仮想 IP アドレスを使用して API 要求を処理します。また、API サーバ証明書には安全な TLS 通信を有効にするアドレスが含まれています。ワークロード クラスタでは、Kube-Vip は基本のレイヤー 2 フェイルオーバー モードで実行され、仮想 IP アドレスを一度に 1 つの制御プレーン ノードに割り当てます。このモードでは、Kube-Vip は制御プレーン トラフィックの真のロード バランサとしては機能しません。
Tanzu Kubernetes Grid は、ワークロード クラスタ内のワークロードのロード バランサとして Kube-Vip を使用できます(テクニカル プレビュー)。Windows ベースのクラスタでは、kube-VIP を LoadBalancer
サービスとして使用することはできません。詳細については、「Kube-VIP ロード バランサ」を参照してください。
vSphere でワークロードのロード バランシングを行う場合は、NSX Advanced Load Balancer(Avi Load Balancer、Essentials Edition とも呼ばれる)を使用します。
重要vSphere 8 で、TKG スタンドアローン管理クラスタとそのワークロード クラスタを使用して NSX Advanced Load Balancer を使用するには、NSX ALB v22.1.2 以降と TKG v2.1.1 以降が必要です。
クラスタを vSphere に展開する前に、クラスタ ノードが実行されている OS および Kubernetes バージョンを含む基本イメージ テンプレートを vSphere にインポートする必要があります。VMware は、サポートされている OS バージョンと Kubernetes バージョンのペアごとに、クラスタを vSphere に展開するための基本イメージ テンプレートを OVA 形式で公開します。OVA を vSphere にインポートしたら、作成された仮想マシンを仮想マシン テンプレートに変換する必要があります。
クラスタ ノードでサポートされる基本イメージは、次のようにクラスタのタイプによって異なります。
管理クラスタ:OVA には、Tanzu Kubernetes Grid v2.1.1 用のデフォルト バージョンである Kubernetes v1.24.10 が必要です。そのため、次のいずれかであることが必要です。
Ubuntu v20.04 Kubernetes v1.24.10 OVA
注Tanzu Kubernetes Grid v2.1 では、Ubuntu OVA イメージは Unified Extensible Firmware Interface (UEFI) 起動モードを使用します。
Photon v3 Kubernetes v1.24.10 OVA
カスタムの Tanzu Kubernetes リリース (TKr) を使用したカスタム OVA(「マシン イメージのビルド」で説明)。
基本イメージ テンプレートを vSphere にインポートするには、次の手順を実行します。
クラスタ ノードの Tanzu Kubernetes Grid OVA をダウンロードします。管理クラスタの場合、これは Kubernetes v1.24.10 OVA ダウンロードのいずれかである必要があります。
重要セキュリティ パッチがリリースされた場合は、最新の OVA 基本イメージ テンプレートをダウンロードしてください。
更新された基本イメージ テンプレート(セキュリティ パッチを含む)は、Tanzu Kubernetes Grid 製品のダウンロード ページで確認できます。
vSphere Client で、vCenter Server インベントリ内のオブジェクトを右クリックし、[OVF テンプレートの展開 (Deploy OVF template)] を選択します。
インストーラのプロンプトに従って、OVA から仮想マシンを展開します。
注ディスク フォーマットとしてシック プロビジョニングを選択すると、Tanzu Kubernetes Grid がテンプレートからクラスタ ノード仮想マシンを作成するときに、各ノードのディスクのフル サイズが予約されます。これにより、多数のクラスタ、または多数のノードを持つクラスタを展開する場合は、ストレージが急速に消費される可能性があります。一方、シン プロビジョニングを選択すると、クラスタを展開するときに、使用可能なストレージ容量が誤って表示される可能性があります。シン プロビジョニングを選択すると、クラスタの展開時には使用可能なストレージが十分あるように見えても、クラスタを実行し、データが蓄積される間に、ストレージが不足する可能性があります。
OVA の展開が終了したら、仮想マシンを右クリックして、[テンプレート (Template)] > [テンプレートに変換 (Convert to Template)] を選択します。
重要仮想マシンをテンプレートに変換する前に、仮想マシンをパワーオンしないでください。
[仮想マシンおよびテンプレート (VMs and Templates)] ビューで、新しいテンプレートを右クリックし、[権限の追加 (Add Permission)] を選択して、tkg-user
を TKG
ロールとともにテンプレートに割り当てます。
Tanzu Kubernetes Grid のユーザーとロールを作成する方法については、下記の「vSphere アカウントに必要な権限」を参照してください。
OVA ファイルをダウンロードした Kubernetes バージョンごとにこの手順を繰り返します。
管理クラスタの展開時に Tanzu Kubernetes Grid に提供する vCenter Single Sign On アカウントには、vSphere で必要な操作を実行するための適切な権限が必要です。
Tanzu Kubernetes Grid に vSphere 管理者アカウントを指定することはお勧めしません。これを行うと、必要以上の権限が Tanzu Kubernetes Grid に付与されるためです。Tanzu Kubernetes Grid に権限を割り当てる最善の方法は、ロールとユーザー アカウントを作成してから、vSphere オブジェクトで、そのユーザー アカウントにそのロールを付与することです。
注ワークロード クラスタを vSphere 7 または 8 に展開し、vSphere with Tanzu が有効になっている場合は、以下に示す権限に加えて、[グローバル (Global)] > [クラウド管理者 (Cloud Admin)] 権限を設定する必要があります。Velero を使用してワークロード クラスタをバックアップおよびリストアする場合は、『Virtual Disk Development Kit Programming Guide』の「Credentials and Privileges for VMDK Access」に記載されている権限も設定する必要があります。
vSphere Client で、[管理 (Administration)] > [アクセス制御 (Access Control)] > [ロール (Roles)] に移動し、次の権限を持つ新しいロール(TKG
など)を作成します。
vSphere オブジェクト | 必要な権限 |
---|---|
Cns | 検索可能 |
データストア | 領域の割り当て データストアの参照 低レベルのファイル操作 |
グローバル(バックアップとリストアに Velero を使用している場合) | メソッドの無効化 メソッドの有効化 ライセンス |
ネットワーク | ネットワークの割り当て |
プロファイル駆動型ストレージ | プロファイル駆動型ストレージ ビュー |
リソース | 仮想マシンのリソース プールへの割り当て |
セッション | メッセージ セッションの検証 |
仮想マシン | 構成の変更 > 既存ディスクの追加 構成の変更 > 新規ディスクの追加 構成の変更 > デバイスの追加または削除 構成の変更 > 詳細設定 構成の変更 > CPU 数の変更 構成の変更 > メモリの変更 構成の変更 > 設定の変更 構成の変更 > Raw デバイスの設定 構成の変更 > 仮想ディスクの拡張 構成の変更 > デバイス設定の変更 構成の変更 > ディスクの削除 構成の変更 > ディスク変更の追跡の切り替え* インベントリの編集 > 既存から作成 インベントリの編集 > 削除 相互作用 > パワーオン 相互作用 > パワーオフ プロビジョニング > 読み取り専用ディスク アクセスの許可* プロビジョニング > 仮想マシンのダウンロードを許可* プロビジョニング > テンプレートの展開 スナップショット管理 > スナップショットの作成* スナップショット管理 >スナップショットの削除* *「管理およびワークロード クラスタ インフラストラクチャのバックアップおよびリストア」に記載されているように、Velero プラグインを有効にするために必須です。これらの権限は、後で必要に応じて追加できます。 |
vApp | インポート |
[管理 (Administration)] > [シングル サインオン (Single Sign On)] > [ユーザーおよびグループ (Users and Groups)] で、適切なドメインに新しいユーザー アカウント(tkg-user
など)を作成します。
[ホストおよびクラスタ (Hosts and Clusters)]、[仮想マシンおよびテンプレート (VMs and Templates)]、[ストレージ (Storage)]、および [ネットワーク (Networking)] ビューで、Tanzu Kubernetes Grid 環境が使用するオブジェクトを右クリックし、[権限の追加 (Add Permission)] を選択して、TKG
ロールを持つ tkg-user
を各オブジェクトに割り当てます。
クラスタの複雑さと予想される要求に応じて、管理クラスタとワークロード クラスタのノードのサイズを構成します。これらは、「事前定義されたノード サイズ」で説明されているように、small
、medium
、large
、または extra-large
に設定できます。
vSphere 上のすべてのクラスタに対し、SIZE
、CONTROLPLANE_SIZE
、WORKER_SIZE
の各クラスタ構成変数を使用してこれらを構成します。または、VSPHERE_*
_DISK_GIB
、_NUM_CPUS
、および _MEM_MIB
構成変数を使用して、よりきめ細かく設定することもできます。
管理クラスタの場合、インストーラ インターフェイスの [インスタンス タイプ (Instance Type)] フィールドでも、ノード仮想マシンのサイズが構成されます。
サンプル アプリケーションを実行しているシングルワーカーの管理クラスタおよびワークロード クラスタの場合は、次の最小仮想マシン サイズを使用します。
small
medium
Tanzu CLI を実行するマシンから vSphere に接続するには、管理クラスタを展開するときに、SSH キー ペアのパブリック キー部分を Tanzu Kubernetes Grid に提供する必要があります。CLI を実行するマシンにそれがまだない場合は、ssh-keygen
などのツールを使用してキー ペアを生成できます。
Tanzu CLI を実行するマシンで、次の ssh-keygen
コマンドを実行します。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
「Enter file in which to save the key (/root/.ssh/id_rsa):
」というプロンプトで、Enter キーを押してデフォルト設定を受け入れます。
マシンで実行されている SSH エージェントにプライベート キーを追加し、前の手順で作成したパスワードを入力します。
ssh-add ~/.ssh/id_rsa
テキスト エディタでファイル .ssh/id_rsa.pub
を開き、管理クラスタの展開時に簡単にコピー アンド ペーストできるようにします。
vSphere 環境が、信頼されていない自己署名証明書を使用して接続を認証している場合は、管理クラスタを展開するときに、vCenter Server のサムプリントを確認する必要があります。vSphere 環境が、既知の認証局 (CA) によって署名された、信頼された証明書を使用している場合、サムプリントを確認する必要はありません。
Web ブラウザの証明書ビューアを使用して、vSphere 証明書サムプリントを取得できます。
URL フィールドの Web アドレスの左側にある [安全](南京錠)アイコンをクリックして、証明書ビューアにアクセスします。
次の手順は、使用するブラウザによって異なります。たとえば、Google Chrome の場合は、[この接続は保護されています] > [証明書は有効です] の順に選択して、サムプリントを含む証明書の詳細を表示します。
ブラウザから SHA-1 フィンガープリント の値を記録します。各 16 進数のペアの間にスペースが含まれている場合は、各スペースを :
文字に置き換えます。たとえば、6D:4A:DC:6C:C4:43:73:BB:DF:9A:32:68:67:56:F9:96:02:08:64:F4
のようになります。
このサムプリント文字列を使用して、インストーラ インターフェイスから管理クラスタを展開するときに確認したり、構成ファイルからクラスタを展開するときに VSPHERE_TLS_THUMBPRINT
オプションに指定したりします。
IPv6 ネットワーク環境で IPv6 をサポートする管理クラスタを展開するには、次の手順を実行します。
ルーターのアドバタイズを受け入れるように Linux を構成し、Docker サービスの起動時にデフォルトの IPv6 ルートがルーティング テーブルから削除されないようにします。詳細については、「Docker CE が IPv6 のデフォルト ルートを削除する」を参照してください。sudo sysctl net.ipv6.conf.eth0.accept_ra=2
ブートストラップ クラスタから送信トラフィックを送信するためのブートストラップ クラスタのマスカレード ルールを作成します。sudo ip6tables -t nat -A POSTROUTING -s fc00:f853:ccd:e793::/64 ! -o docker0 -j MASQUERADE
マスカレード ルールの詳細については、「MASQUERADE」を参照してください。
「構成ファイルからの管理クラスタの展開」の説明に従って、tanzu mc create
を実行して管理クラスタを展開します。
TKG_IP_FAMILY
およびその他の変数を設定します。本番環境では、クラスタの ID 管理を有効にすることを強くお勧めします。
外部インターネット接続のある環境で Tanzu Kubernetes Grid を使用している場合は、ID 管理を設定した時点で、管理クラスタを vSphere に展開する準備が整います。