NSX-Tを使用したvSphere with Tanzuを構成してみた。

ITのブログ

概要

vSphere with TanzuでNSX-Tを使うとTanzu Kubernetes Clusterを構成するときにユーザ毎に区分けされたネットワークを作成することができます。ユーザに提供するまでに必要な内容を自動で設定してくれるため、非常に便利です。なので、今回検証をしてみました。

環境

#ソフトウェアバージョン
1ESXi8.0.0(20513097)
2vCenter Server8.0.0(20519528)
3NSX-T4.0.1.1.0(20598961)

前提

  • ESXi、vCenter Server、NSX-Tについては構築済みとなります。
  • vCenter Serverは以下の設定が完了している状態となります。
    • データセンターの作成
    • ホストの追加
    • クラスタの追加(vSphere DRS/vSphere HAを有効/アドミッションコントロールは無効)
    • データストアの作成
    • vSphere Distribute Switchの作成
  • インターネットに接続できる環境で実施
  • ホスト名およびIPアドレスはラボ用となります。

手順

ストレージのタグ付け

1.データストアを右クリック、「タグとカスタム属性」-「タグの割り当て」をクリックする。
2.「タグの追加」をクリックする。
3.「新しいカテゴリの作成」をクリックする。
4.「カテゴリ名」に「データストア」と入力し、「関連付け可能なオブジェクトタイプ」をデータストアのみにして「作成」をクリックする。
5.「名前」に「NFS」を入力し、「カテゴリ」を「データストア」にして「作成」をクリックする。
6.「NFS」にチェックをして、「割り当て」をクリックする。
7.「メニュー」から「ポリシーおよびプロファイル」をクリックする。
8.「仮想マシン ストレージ ポリシー」画面で「作成」をクリックする。
9.「名前」に「NFS」と入力し、「次へ」をクリックする。
10.「タグ ベースの配置ルールを有効化」にチェックを入れて、「次へ」をクリックする。
11.「タグ カテゴリ」で「データストア」を選択する。
12.「タグを参照」をクリックする。
13.「NFSストレージ」をチェックして「OK」をクリックする。
14.「次へ」をクリックする。
15.「ストレージ互換性」画面は「次へ」をクリックする。
16.「確認して完了」画面は「完了」をクリックする。

コンテンツライブラリの作成

1.「メニュー」から「コンテンツライブラリ」をクリックする。
2.「作成」をクリックする。「信頼性を確認できません」の画面が表示された場合は、「はい」をクリックする。

#設定項目①設定項目②パラメータ
1名前と場所名前TanzuKubernetesRelease-subscriber
2メモTanzu Kubernetes リリース用のオンデマンド サブスクリプション ライブラリ
3コンテンツライブラリの設定コンテンツライブラリの設定サブスクライブ済みコンテンツ ライブラリ
4サブスクリプション URLhttps://wp-content.vmware.com/v2/latest/lib.json
5認証の有効化チェック無し
6コンテンツのダウンロード今すぐ
7セキュリティ ポリシーの適用セキュリティ ポリシーの適用チェック無し
8ストレージの追加ストレージの追加<データストアを指定>

3.「設定の確認」画面で「完了」をクリックする。

制御プレーンVMの設定変更(リソースが少ない場合)

1.wcpsvc.yamlを修正する。

vi /etc/vmware/wcp/wcpsvc.yaml
以下の通り修正する。
------
  minmasters: 1
  maxmasters: 1
controlplane_vm_disk_provisioning: "thin"
------

2.wcpサービスの再起動

service-control --restart wcp

ワークロード管理

1.「ワークロード管理」画面から「開始」をクリックし、以下を入力する。

# 設定項目①設定項目②パラメータ
1vCenter Server とネットワークネットワーク スタックの選択NSX
2スーパーバイザーの配置クラスタクラスタのデプロイ
3スーパーバイザー名<スーパーバイザー名を指定>
4クラスタの選択<デプロイするクラスタを指定>
5Sphere Zone 名 <空白>
6ストレージ制御プレーン ストレージ ポリシー<作成したストレージポリシーを指定>
7短期ディスク ストレージ ポリシー<作成したストレージポリシーを指定>
8イメージ キャッシュ ストレージ ポリシー<作成したストレージポリシーを指定>
9管理ネットワークネットワーク モード静的
10ネットワーク<制御プレーンVMのポートグループ>
11開始 IP アドレス<制御プレーンVMのIPアドレス>
例:192.168.0.200
12サブネット マスク<制御プレーンVMのサブネットマスク>
例:255.255.255.0
13ゲートウェイ<制御プレーンVMのゲートウェイ>
例:192.168.0.1
14DNS サーバ<制御プレーンVMのDNSサーバ>
15DNS 検索ドメイン<空白>
16NTP サーバ<制御プレーンVMのNTPサーバ>
17ワークロード ネットワークvSphere Distributed Switch<NSX-Tのオーバーレイトランスポートゾーンが設定されているvDSを指定>
18Edge クラスタ<ワークロードで使用するNSX edgeのクラスタ>
19DNS サーバ<DNSサーバのIPアドレス>
20Tier-0 ゲートウェイ<NSX edgeのクラスタのTier-0ゲートウェイを指定>
21NAT モードチェック有
22サブネット プリフィックス/28
23名前空間ネットワーク10.244.0.0/20
24サービス CID10.96.0.0/23
25入力方向 CIDR<podへの入力方向で通信するIPアドレス>
192.168.124.0/24
26出力方向 CIDR<podへの出力方向で通信するIPアドレス>
192.168.32.0/24
27Tanzu Kubernetes サービスコンテンツ ライブラリ<作成したコンテンツライブラリを指定>
28確認スーパーバイザー制御プレーンのサイズ極小
29API サーバの DNS 名<空白>

2.「完了」をクリックする。
3.「構成ステータス」が「実行中」になることを確認する。

名前空間の作成

1.「ワークロード管理」-「名前空間」をクリックする。
2.「作成」をクリックして、以下を入力する。

#設定項目パラメータ
1スーパーバイザー <スーパーバイザーを指定>
2名前<名前空間の名前を入力>
3説明<空白>
4スーパーバイザー ネットワーク設定のオーバーライドチェック有
5Tier-0 ゲートウェイ<Tier-0ゲートウェイを指定>
6NAT モード有効
7ロード バランサのサイズ
8名前空間ネットワーク<名前空間ネットワークを指定>
例:10.245.0.0/21
9名前空間サブネット プリフィックス/27
10入力方向<podへの入力方向で通信するIPアドレス>
192.168.125.0/24
11出力方向<podへの出力方向で通信するIPアドレス>
192.168.33.0/24

名前空間の編集

1.「名前空間」画面を表示する。
2.「権限の追加」をクリックする。

#設定項目パラメータ
1ID ソースvsphere.local
2ユーザー/グループの検索administrator
3ロール所有者

3.「ストレージの追加」をクリックして、ストレージポリシーを指定する。
4.「仮想マシン クラスの管理」をクリックし、「best-effort-Small」をチェックして、「OK」をクリックする。

TKCのデプロイ(Linuxで実施)

1.Webブラウザを使用してSupervisorControlPlaneVMに接続し、CLIをダウンロードする。
2./tanzuにCLIを配置する。
3.以下コマンドで解凍する。

unzip vsphere-plugin.zip

4.コマンドを/usr/local/binに移動

mv ./bin/kubectl* /usr/local/bin

5.スーパーバイザクラスタにログイン

kubectl vsphere login --server=https://<SupervisorControlPlaneVMのIPアドレス>:6443 --vsphere-username <スーパーバイザ名前空間の権限ユーザ> --insecure-skip-tls-verify

6.コンテキストの確認

kubectl config get-contexts

7.yamlの作成(alpha2はエラーが出力されましたので、alpha1でデプロイしています)

※以下コンフィグは例となります。ファイル名は「cluster-1_tanzu.yml」で作成しています。

apiVersion: run.tanzu.vmware.com/v1alpha1  #TKGS API endpoint
kind: TanzuKubernetesCluster               #required parameter
metadata:
  name: tkgs-cluster-1                     #cluster name, user defined
  namespace: nametanzu              #vsphere namespace
spec:
  distribution:
    version: v1.21.6                         #Resolves to latest TKR 1.19 version
  topology:
    controlPlane:
      count: 1                             #number of control plane nodes
      class: best-effort-small           #vmclass for control plane nodes
      storageClass: nfs     #storageclass for control plane
    workers:
      count: 1                             #number of worker nodes
      class: best-effort-small            #vmclass for worker nodes
      storageClass: nfs     #storageclass for worker nodes
  settings:
    network:
      cni:
        name: antrea                       #Use Antrea CNI
      pods:
        cidrBlocks:
        - 193.0.2.0/16                     #Must not overlap with SVC
      services:
        cidrBlocks:
        - 195.51.100.0/12                  #Must not overlap with SVC
      serviceDomain: managedcluster.local

8.TKCのデプロイ





vSphere Podの動作確認

※NSX-Tからインターネットが繋がらない環境であるため、作成のみを確認

1.yamlファイルを作成後、nginxのデプロイ

kubectl apply -f cluster-1_tanzu.yml

2.nginxの削除

kubectl delete deployment nginx-deployment

コメント

タイトルとURLをコピーしました