vm.gowatana.jp

NEOにほんごVMware(仮)

VCF 9 の VCF Automation で All Apps 組織を作成してみる。Part-06:Kubernetes クラスタの作成

VMware Cloud Foundation(VCF)9.0 の VCF Automation(VCFA)で作成した All Apps 組織の動作確認を実施します。今回は、vSphere Kubernetes サービスで Kubernetes クラスタを作成してみます。

 

前回はこちら。

 

今回の内容です。

 

作成した 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

gist.github.com

 

つづく。