vm.gowatana.jp

NEOにほんごVMware(仮)

VCF 5.2.1 で vSphere Supervisor を有効化してみる。Part-07:VKS クラスタの作成

VMware Cloud Foundation(VCF)5.2.1 に構築したスーパーバイザーの vSphere 名前空間に、vSphere Kubernetes Service(VKS)の Kubernetes クラスタを作成してみます。

 

前回はこちら。

 

今回の内容です。

 

今回の環境

VCF 5.2.1 の VI Worklaod Domain で、スーパーバイザーを構築してあります。

 

そして、vSphere 名前空間「demo-ns-01」を作成してあります。

 

1. VKS クラスタの YAML ファイルの準備

今回は、下記のように VKS クラスタを定義した YAML ファイルを用意しました。

run.tanzu.vmware.com/v1alpha1 の TanzuKubernetesCluster は最新のリソースではないのですが、VMware Validated Solutions の「Developer Ready Infrastructure for VMware Cloud Foundation」ではまだ利用している(下記のあたり)ため、今回の VKS デプロイでも採用しました。

 

vks01.yml

  • L3:リソース名は変更されず、TanzuKubernetesCluster のままです。
  • L9, L13:制御 プレーン / ワーカーは、どちらも 1ノードです。
  • L10, L14:仮想マシン クラスは、制御プレーン / ワーカー の両方で best-effort-small です。
  • L11, L15:仮想マシン ストレージ ポリシーに対応した StorageClass を指定します。(vcf-w01-cl01-vsan-storage-policy)
  • L17:Kubernetes のバージョンは、v1.30.x です。

gist.github.com

 

Tanzu Kubernetes Release(TKR)は、ワークロード管理を有効化(スーパーバイザー構築)した際に自動作成されたコンテンツ ライブラリである「Kubernetes Release Content Library」に OVF として登録されており、VKS クラスタを作成する際に自動ダウンロードされます。

今回は「v1.30」とバージョン指定しているので、登録されている TKR のうち互換性がある最新版の「v1.30.1」が選択されます。

 

TKR は、kubectl では下記のように確認できます。

gowatana [ ~ ]$ kubectl get tkr | grep -e NAME -e v1.30
NAME                                      VERSION                                 READY   COMPATIBLE   CREATED   TYPE
v1.30.1---vmware.1-fips-tkg.5             v1.30.1+vmware.1-fips-tkg.5             True    True         31h

 

2. vSphere 名前空間への接続

vSphere 名前空間に VKS クラスタを作成するため、kubectl でスーパーバイザーに接続して、コンテキストを vSphere 名前空間のものに切り替えます。

この手順は、前回の投稿と同様です。今回も、AD ユーザー([email protected])でログインしています。

 

3. VKS クラスタの作成

kubectl で YAML ファイルを適用して、VKS クラスタを作成します。

gowatana [ ~ ]$ kubectl apply -f vks01.yml
Warning: v1alpha1 version of run.tanzu.vmware.com/TanzuKubernetesCluster is deprecated. Please use v1alpha3 or above
tanzukubernetescluster.run.tanzu.vmware.com/vks01 created

 

 

VKS クラスタ(Tanzu Kubernetes Cluster / TKC クラスタ)のデプロイが開始されました。TKR のバージョンは、v1.30.1 が選択されています。

gowatana [ ~ ]$ kubectl get cluster
NAME    CLUSTERCLASS             PHASE          AGE   VERSION
vks01   tanzukubernetescluster   Provisioning   22s   v1.30.1+vmware.1-fips
gowatana [ ~ ]$ kubectl get tkc
NAME    CONTROL PLANE   WORKER   TKR NAME                        AGE   READY   TKR COMPATIBLE   UPDATES AVAILABLE
vks01   1               1        v1.30.1---vmware.1-fips-tkg.5   40s   False   True

 

vSphere Client で確認すると、OVF テンプレートをデプロイするタスクが開始されています。

 

VKS のデプロイが完了したら、下記のようになります。

gowatana [ ~ ]$ kubectl get cluster
NAME    CLUSTERCLASS             PHASE         AGE   VERSION
vks01   tanzukubernetescluster   Provisioned   53m   v1.30.1+vmware.1-fips
gowatana [ ~ ]$ kubectl get tkc
NAME    CONTROL PLANE   WORKER   TKR NAME                        AGE   READY   TKR COMPATIBLE   UPDATES AVAILABLE
vks01   1               1        v1.30.1---vmware.1-fips-tkg.5   53m   True    True

 

VKS クラスタ ノードの仮想マシンです。

gowatana [ ~ ]$ kubectl get vspheremachine
NAME                              ZONE      PROVIDERID                                       IPADDR
vks01-rl9vz-cswml                 zone-01   vsphere://4202d041-8589-eb89-f4c8-8f54b3dd0d89   10.244.0.34
vks01-workers-f6dz9-s9x86-vh22p             vsphere://4202f7c6-ce9f-bf00-0b59-db0750cc8607   10.244.0.35

 

vSphere Client でも、vks01 クラスタが 2台の仮想マシンで構成されていることがわかります。

 

vSphere 名前空間「demo-ns-01」の「コンピューティング」タブでも、VKS クラスタ(Tanzu Kubernetes クラスタ)として「vks01」が表示されています。

 

NSX Manager でも、自動的にオーバーレイ セグメントが追加されて、2台の仮想マシンが接続されていることがわかります。

 

4. VKS クラスタへの接続

VKS クラスタには、kubectl で下記のようにログインします。

kubectl vsphere login \
--server=192.168.82.2 \
[email protected] \
--tanzu-kubernetes-cluster-namespace=demo-ns-01 \
--tanzu-kubernetes-cluster-name=vks01 \
--insecure-skip-tls-verify

 

実際にログインすると、下記のように VKS クラスタと同名のコンテキストが作成されます。

gowatana [ ~ ]$ kubectl vsphere login --server=192.168.82.2 [email protected] --tanzu-kubernetes-cluster-namespace=demo-ns-01 --tanzu-kubernetes-cluster-name=vks01 --insecure-skip-tls-verify


Password:
Logged in successfully.

You have access to the following contexts:
   192.168.82.2
   demo-ns-01
   vks01

If the context you wish to use is not in this list, you may need to try
logging in again later, or contact your cluster administrator.

To change context, use `kubectl config use-context <workload name>`

 

VSK クラスタのコンテキストに切り替えられています。

gowatana [ ~ ]$ kubectl config get-contexts
CURRENT   NAME           CLUSTER        AUTHINFO                                 NAMESPACE
          192.168.82.2   192.168.82.2   wcp:192.168.82.2:[email protected]
          demo-ns-01     192.168.82.2   wcp:192.168.82.2:[email protected]   demo-ns-01
*         vks01          192.168.82.3   wcp:192.168.82.3:[email protected]

 

Kubernetes のノードが、 制御プレーン x1 と ワーカー x1 で構成されています。

gowatana [ ~ ]$ kubectl get nodes
NAME                              STATUS   ROLES           AGE   VERSION
vks01-rl9vz-cswml                 Ready    control-plane   44m   v1.30.1+vmware.1-fips
vks01-workers-f6dz9-s9x86-vh22p   Ready    <none>          36m   v1.30.1+vmware.1-fips

 

つづく。