VMware Cloud Foundation(VCF)9.0 の VCF Automation(VCFA)で作成した All Apps 組織の動作確認を実施します。今回は、vSphere Kubernetes サービスで Kubernetes クラスタを作成してみます。
前回はこちら。
今回の内容です。
- コンテンツ ライブラリの確認
- 1. Kubernetes クラスタの作成
- 2. Kubernetes クラスタへの接続
- 3. 作成された Kubernetes クラスタの確認
- おまけ:YAML ファイルの内容
作成した Kubernetes クラスタへのアクセスは、前回の仮想マシン ロード バランサと同様に NSX ロード バランサ経由になります。

コンテンツ ライブラリの確認
今回作成する Kubernetes クラスタでは、デフォルトでサブスクライブされるコンテンツ ライブラリ(Kubernetes Service Content Library)の仮想マシン イメージを利用します。
組織ポータルで「ビルドと展開」→「コンテンツ ハブ」→「コンテンツ ライブラリ」→「コンテンツ ライブラリ」タブを開くと、「Kubernetes Service Content Library」ライブラリが登録されています。

「仮想マシン イメージ」タブを開くと、ライブラリに多くの仮想マシン イメージが登録されていることが確認できます。

1. Kubernetes クラスタの作成
VCFA の組織ポータルにログインして、「ビルドと展開」→「サービス」→「Kubernetes」を開き、「作成」をクリックします。

構成タイプを選択して「NEXT」をクリックします。
- 構成タイプ:カスタム構成

全般設定を入力して、画面をスクロールします。
- クラスタ名:vks-01
- Kubernetes リリース:v1.33.6---vmware.1-fips-vkr.2 ※デフォルト

画面をスクロールします・・・

画面をスクロールします・・・

ストレージ クラスを選択して、「NEXT」をクリックします。
- 使用可能なストレージ クラス:vcf-m01-cl01-vsan-storage-policy
- デフォルトのストレージ クラス:vcf-m01-cl01-vsan-storage-policy

制御プレーンの情報を入力して、「NEXT」をクリックします。
- レプリカ:1 ※デフォルト
- 仮想マシン クラス:best-effort-medium
- ストレージ クラス:vcf-m01-cl01-vsan-storage-policy
- OS イメージ:Photon 5 - Kubernetes Service Content Library

ワーカー ノードを構成するノード プールの情報を指定します。今回は、デフォルトのまま進めますが、設定情報を確認しておきます。
ノード プールの先頭にあるボタン →「編集」をクリックします。

ノード プールの設定を確認して、「CANCEL」をクリックします。

「NEXT」をクリックします。

確認画面では、右側に表示されている「Kubernetes リソース YAML」の下にあるダウンロードボタンをクリックして、ZIP ファイルとして保存しておきます。

「FINISH」をクリックします。

Kubernetes クラスタの作成が開始されます。
ちなみに、VCF 環境を構築してからしばらくたっていると、コンテンツ ライブラリのダウンロード エラーが発生することがあります。この場合、vSphere Client で対象のコンテンツ ライブラリの 編集 → 保存 を実施すると、あらたに証明書を受け入れてエラーが解消されます。

しばらく待つと、ステータスが「準備完了」になります。

Kubernetes クラスタの先頭にあるボタンをクリックすると、詳細情報が表示されます。

2. Kubernetes クラスタへの接続
作成された Kubernetes クラスタの「KUBECONFIG ファイルのダウンロード」をクリックして、kubeconfig ファイルをダウンロードしておきます。
- ファイル名:vks-01-kubeconfig.yaml
このファイルは、作業用の Linux に保存しておきます。

Kubernetes クラスタのバージョンにあわせた kubectl をインストールしておきます。今回の Kubernetes は v1.33.6 なので、下記のファイルをダウンロードして PATH 環境変数に含まれるディレクトリに配置しておきます。
kubeconifg ファイルを指定して、kubectl config view を実行します。今回の Kubernetes クラスタのエンドポイント アドレスは「192.168.78.9」です。作業用マシンから、このアドレスに通信できる必要があります。
gowatana@vcf9-work-01 [ ~ ]$ kubectl config view --kubeconfig=./vks-01-kubeconfig.yaml
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.78.9:6443
name: vks-01
contexts:
- context:
cluster: vks-01
user: vks-01-admin
name: vks-01-admin@vks-01
current-context: vks-01-admin@vks-01
kind: Config
preferences: {}
users:
- name: vks-01-admin
user:
client-certificate-data: DATA+OMITTED
client-key-data: DATA+OMITTED
kubectl get node を実行すると、Kubernetes クラスタに接続できたことが確認できます。
gowatana@vcf9-work-01 [ ~ ]$ kubectl get nodes --kubeconfig=./vks-01-kubeconfig.yaml NAME STATUS ROLES AGE VERSION vks-01-6wltm-dm9b8 Ready control-plane 84m v1.33.6+vmware.1-fips vks-01-vks-01-np-gfvp-tg2kd-z2d7b-t5jqb Ready <none> 78m v1.33.6+vmware.1-fips
3. 作成された Kubernetes クラスタの確認
作成された Kubernetes クラスタの様子を、vSphere と NSX から確認してみます。
3-1. vSphere Client での確認
vSphere Client を開くと、vSphere 名前空間の配下に、vks-01 クラスタが作成されています。VCFA の Cloud Consumption Interface(CCI)管理なので、「コンシューマ管理」ラベルが表示されています。

Kubernetes ノードの仮想マシンは、制御プレーンとワーカーが1台ずつ作成されています。制御プレーンの仮想マシンのサマリ画面を確認すると、VPC サブネットに接続されていることがわかります。

ワーカー ノードの仮想マシンは、ノード プールとして構成されているため、仮想マシン名にノード プール名(今回は np-gfvp)が含まれています。

Kubernetes クラスタのエンドポイント アドレスは、「スーパーバイザー管理」→「名前空間」画面でも確認できます。vSphere 名前空間の「コンピューティング」タブ →「VMware リソース」→「Kubernetes クラスタ」を開くと、VKS で作成されたクラスタと、エンドポイント(制御プレーンのアドレス)が表示されています。

3-2. NSX Manager での確認
NSX Manger で「すべてのプロジェクト」を選択して「ネットワーク トポロジ」を開くと、VPC サブネットと仮想マシンが追加されています。

「2台の仮想マシン」をクリックすると、Kubernetes ノードの仮想マシンであることがわかります。

VPC ゲートウェイの「2 個のサービス」→「ロード バランサ」を開きます。

「仮想サーバ」タブを開くと、VKS による Kubernetes クラスタの制御プレーン IP アドレスが設定されています。この仮想サーバは、VCFA 組織と同名の、「org-01」という NSX プロジェクトに作成されていることもわかります。

このロード バランサを、VPC の画面から確認してみます。
「org-01」プロジェクト →「VPC」タブ →「Virtual Private Cloud」を開き、VPC(region-01-default-vpc)→「ネットワーク サービス」を展開して、NSX ロード バランサの「構成の表示」をクリックします。

「仮想サーバ」タブを開くと、Kubernetes クラスタの制御プレーン IP アドレスが表示されます。

おまけ:YAML ファイルの内容
ダウンロードした zip ファイルには、下記のような YAML ファイルが含まれています。
vks-01.yaml
つづく。