概要
vSphere with TanzuでNSX-Tを使うとTanzu Kubernetes Clusterを構成するときにユーザ毎に区分けされたネットワークを作成することができます。ユーザに提供するまでに必要な内容を自動で設定してくれるため、非常に便利です。なので、今回検証をしてみました。
環境
# | ソフトウェア | バージョン |
1 | ESXi | 8.0.0(20513097) |
2 | vCenter Server | 8.0.0(20519528) |
3 | NSX-T | 4.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 | サブスクリプション URL | https://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.「ワークロード管理」画面から「開始」をクリックし、以下を入力する。
# | 設定項目① | 設定項目② | パラメータ |
1 | vCenter Server とネットワーク | ネットワーク スタックの選択 | NSX |
2 | スーパーバイザーの配置 | クラスタ | クラスタのデプロイ |
3 | スーパーバイザー名 | <スーパーバイザー名を指定> | |
4 | クラスタの選択 | <デプロイするクラスタを指定> | |
5 | Sphere 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 | |
14 | DNS サーバ | <制御プレーンVMのDNSサーバ> | |
15 | DNS 検索ドメイン | <空白> | |
16 | NTP サーバ | <制御プレーンVMのNTPサーバ> | |
17 | ワークロード ネットワーク | vSphere Distributed Switch | <NSX-Tのオーバーレイトランスポートゾーンが設定されているvDSを指定> |
18 | Edge クラスタ | <ワークロードで使用するNSX edgeのクラスタ> | |
19 | DNS サーバ | <DNSサーバのIPアドレス> | |
20 | Tier-0 ゲートウェイ | <NSX edgeのクラスタのTier-0ゲートウェイを指定> | |
21 | NAT モード | チェック有 | |
22 | サブネット プリフィックス | /28 | |
23 | 名前空間ネットワーク | 10.244.0.0/20 | |
24 | サービス CID | 10.96.0.0/23 | |
25 | 入力方向 CIDR | <podへの入力方向で通信するIPアドレス> 192.168.124.0/24 | |
26 | 出力方向 CIDR | <podへの出力方向で通信するIPアドレス> 192.168.32.0/24 | |
27 | Tanzu Kubernetes サービス | コンテンツ ライブラリ | <作成したコンテンツライブラリを指定> |
28 | 確認 | スーパーバイザー制御プレーンのサイズ | 極小 |
29 | API サーバの DNS 名 | <空白> |
2.「完了」をクリックする。
3.「構成ステータス」が「実行中」になることを確認する。
名前空間の作成
1.「ワークロード管理」-「名前空間」をクリックする。
2.「作成」をクリックして、以下を入力する。
# | 設定項目 | パラメータ |
1 | スーパーバイザー | <スーパーバイザーを指定> |
2 | 名前 | <名前空間の名前を入力> |
3 | 説明 | <空白> |
4 | スーパーバイザー ネットワーク設定のオーバーライド | チェック有 |
5 | Tier-0 ゲートウェイ | <Tier-0ゲートウェイを指定> |
6 | NAT モード | 有効 |
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.「権限の追加」をクリックする。
# | 設定項目 | パラメータ |
1 | ID ソース | 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
コメント