今回は、vSphere 7 Update1で可能となったHAProxyを使用したvSphere Tanzu
についてのお話となります。
いままでは、vSphere Tanzuを利用するにはNSX-Tが必要となっておりその分の
リソースとライセンス費用を別途用意しなくてはなりませんでした。
しかし、HAProxyを使用する場合はvCenterとESXiのみで構築が可能となります。
詳細はマニュアルをどうぞ
https://docs.vmware.com/jp/VMware-vSphere/7.0/vmware-vsphere-with-tanzu/GUID-152BE7D2-E227-4DAA-B527-557B564D9718.html
→vSphere with Tanzu のネットワーク
→vSphere ネットワークと HAProxy ロード バランシングを使用して スーパーバイザー クラスタ を設定するためのシステム要件およびトポロジ
※なぜか、マニュアルの中のリンクをたどると表示してくれないので、pdfをダウンロードした方が良いと思います。
マニュアルの内容を簡単にですが説明すると以下のような流れになります。
1 分散仮想スイッチを作成し以下のポートグループを用意する
・管理用ポートグループ
・1つ目のワークロード用ポートグループ(スーパーバイザークラスター(SCP)で使うネットワーク)
・2つ目のワークロード用ポートグループ(Tanzu kubernetes Cluster(TKC)のノードで使うネットワーク)
検証等するのであれば、管理用とワークロード用のネットワークを/24で2つ用意し、ワークロード用のネットワークは分割して使うのがいいと思います。
ポートグループとして用意するわけではありませんが、SCPやTKCのVIPなどとなるロードバランサー用IPレンジも必要となります。
VC1台、ESXi4台の例としては以下の様な割り振りです。
管理用(192.168.1.0/24)
VC 192.168.1.10
ESXi1~ESXi4 192.168.1.11~192.168.1.14
HAProxy 192.168.1.20
ワークロード用(192.168.10.0/24)
ロードバランサー用IPレンジ 192.168.10.144/28
1つ目のワークロード用ポートグループ 192.168.10.160/28
2つ目のワークロード用ポートグループ 192.168.10.192/28
※/28としていますが、あくまで範囲を指定するだけの用途となりサブネットが/28で設定する必要があるわけであありません。
2 コンテンツライブラリの作成を行い、TKCのノードとして使用するOVAのダウンロードをしておく
3 OVAでHAProxyをデプロイする
4 ワークロードの有効化をする
5 名前空間を作成する
→作成時に名前空間で使用するネットワークはnetwork-2(2つ目のワークロード用ポートグループ)を指定する。
6 yamlからTKCの展開を行う
これで成功すれば構築完了です。
ですが、そのままだとPodの作成はできるものの、deploymentで展開をしようとするとエラーとなります。
実は、構築した状態ではPod Security Policy(PSP)によって作成できないようになっています(権限がない状態)。
そのため、権限の変更を行ってあげる必要がありますが、この辺の操作もすべてkubernetesの知識を元に行うことになります。
また、NSX利用時と異なる点もあります。
ワークロードの有効化をして名前空間を作成することはできますが、名前空間にyamlからPodの作成はできません。
ユーザーが利用するPodが展開できるようになるには、TKCの名前空間を利用する必要があります。
作るのも設定するのも現状はvSphere+kubernetesの知識と経験が十二分に必要な状態です。
あと、HAProxyに何か問題があったときどこの誰が対応してくれるのかについてはわからない(VMがサポートしてくれるのか不明)
という部分もあり、なかなか難しいなと思いました。