NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix Enterprise AI 2.6 をデプロイしてみる。Part-03:NKP 管理クラスタの展開

NKP の Kubernetes クラスタに、Nutanix Enterprise AI(NAI)2.6 を展開してみます。今回は、NKP の管理クラスタを用意します。

 

前回はこちら。

 

今回の内容です。

 

NKP 管理クラスタの作成については、下記の投稿も参考にしてください。

 

1. OS イメージの登録

Nutanix Support & Insight Portal にある NKP のダウンロード ページから、下記の QCOW2 ディスク イメージ ファイルをダウンロードしておきます。

  • ファイル名:nkp-rocky-9.7-release-cis-1.34.3-20260316170119.qcow2

 

このファイルは、Prism Central の「Infrastructure」→「Compute & Storage」→「Images」を開き、「Add Image」から同名で登録しておきます。

  • イメージの名前:nkp-rocky-9.7-release-cis-1.34.3-20260316170119.qcow2

 

2. NKP 管理クラスタの作成(Self-Managed)

以前の投稿 で用意した作業用 Linux マシンで NKP CLI(nkp コマンド)を実行して、NKP の管理クラスタを作成します。

 

まず、Prism Central の認証情報を環境変数に格納しておきます。

export NUTANIX_USER=admin
export NUTANIX_PASSWORD='Prism Central のパスワード'

 

そして、Docker Hub の認証情報も環境変数に格納しておきます。NKP のインストールでは、Docker Hub から大量のコンテナ イメージを Pull するため、Rate Limit によるインストール失敗を防ぐために、Docker Hub へのログインが必要です。

ここで指定するパスワードは、ユーザーのパスワードではなく、Docker Hub の パーソナル アクセス トークン (PAT)で代用できます。PAT を使用する場合、パーミッションは「Public Repo Read-only」を選択しておきます。

export DOCKER_USER=Docker Hub のユーザー
export DOCKER_PASS='dckr_pat_XXXXXXXXXXXXXXXXXXXXXXXXXX'

 

nkp create cluster コマンドで、管理クラスタを作成します。

今回の例では、下記のように指定しています。

  • NKP クラスタの名前:nkpnai
  • Prism Central の IP アドレス:10.1.7.100
  • Prism Central の SSL/TLS 証明書は無視する(--insecure)
  • Prism Element(Nutanix クラスタ)の名前:PE
  • Kubernetes ノードを接続するサブネット:vlan-0-ipam
  • Control Plane に設定する IP アドレス:10.1.7.120
  • Kubernetes の LB で使用する IP レンジ:10.1.7.121-10.1.7.123
  • Kubernetes ノードの OS イメージ:nkp-rocky-9.7-release-cis-1.34.3-20260316170119.qcow2
  • Control Plane の vCPU:16。これはデフォルト(最小要件)よりも拡張する
  • Nutanix CSI Driver で VG を作成する AOS のストレージ コンテナ:default-container-01
  • Kubernetes ノードに設置する SSH 接続用公開キー:$HOME/.ssh/id_rsa.pub
nkp create cluster nutanix \
--cluster-name=nkpnai \
--endpoint=https://10.1.7.100:9440 \
--insecure \
--control-plane-prism-element-cluster=PE \
--worker-prism-element-cluster=PE \
--control-plane-subnets=vlan-0-ipam \
--worker-subnets=vlan-0-ipam \
--control-plane-endpoint-ip=10.1.7.120 \
--kubernetes-service-load-balancer-ip-range=10.1.7.121-10.1.7.123 \
--vm-image=nkp-rocky-9.7-release-cis-1.34.3-20260316170119.qcow2 \
--control-plane-vcpus=16 \
--csi-storage-container=default-container-01 \
--ssh-username nutanix \
--ssh-public-key-file=$HOME/.ssh/id_rsa.pub \
--registry-url=https://registry-1.docker.io \
--registry-username=$DOCKER_USER \
--registry-password=$DOCKER_PASS \
--self-managed

 

実際にコマンドを実行すると、下記のようになります。画面出力を確認すると、kubeconfig ファイル(例では /home/gowatana/nkpnai.conf)が生成されています。

gowatana@nkp-work-02:~$ nkp create cluster nutanix --cluster-name=nkpnai --endpoint=https://10.1.7.100:9440 --insecure --control-plane-prism-element-cluster=PE --worker-prism-element-cluster=PE --control-plane-subnets=vlan-0-ipam --worker-subnets=vlan-0-ipam --control-plane-endpoint-ip=10.1.7.120 --kubernetes-service-load-balancer-ip-range=10.1.7.121-10.1.7.123 --vm-image=nkp-rocky-9.7-release-cis-1.34.3-20260316170119.qcow2 --control-plane-vcpus=16 --csi-storage-container=default-container-01 --ssh-username nutanix --ssh-public-key-file=$HOME/.ssh/id_rsa.pub --registry-url=https://registry-1.docker.io --registry-username=$DOCKER_USER --registry-password=$DOCKER_PASS --self-managed
 ✓ Creating a bootstrap cluster
 ✓ Initializing new CAPI components
 ✓ Initializing new CAPI components
 ✓ Creating ClusterClass resources
 ✓ Creating ClusterClass resources
 ✓ Generating cluster configuration (Kubernetes resources)
secret/nkpnai-pc-credentials created
secret/nkpnai-pc-credentials-for-csi created
secret/nkpnai-pc-credentials-for-konnector-agent created
secret/nkpnai-image-registry-credentials created
secret/global-nutanix-credentials created
⠈⠁ Running preflight checks cluster.cluster.x-k8s.io/nkpnai created
configmap/kommander-bootstrap-configuration created
 ✓ Running preflight checks
⢄⡱ Creating metadata objects secret/prism-central-metadata created
 ✓ Creating metadata objects
 ✓ Creating cluster
 ✓ Waiting for cluster infrastructure to be ready
 ✓ Waiting for cluster control-planes to be ready
 ✓ Waiting for machines to be ready
 ✓ Initializing new CAPI components
 ✓ Initializing new CAPI components
 ✓ Creating ClusterClass resources
 ✓ Moving cluster resources

You can now view resources in the moved cluster by using the --kubeconfig flag with kubectl.
For example: kubectl --kubeconfig="/home/gowatana/nkpnai.conf" get nodes

 ✓ Deleting bootstrap cluster

Cluster default/nkpnai kubeconfig was written to to the filesystem.
You can now view resources in the new cluster by using the --kubeconfig flag with kubectl.
For example: kubectl --kubeconfig="/home/gowatana/nkpnai.conf" get nodes

Starting Kommander installation
 ✓ Deploying Flux
 ✓ Deploying Ingress certificate
 ✓ Creating kommander-overrides ConfigMap
 ✓ Deploying Git Operator
 ✓ Creating GitClaim for management GitRepository
 ✓ Creating GitClaimUser for accessing management GitRepository
 ✓ Deploying Flux configuration
 ✓ Deploying Kommander Operator
 ✓ Creating KommanderCore resource
 ✓ Cleaning up Kommander bootstrap resources
 ✓ Deploying Gatekeeper
 ✓ Creating PlatformVersionArtifact
 ✓ Deploying Kommander AppManagement
 ✓ 4 out of 14 core applications have been installed (waiting for dex, dex-k8s-authenticator and 8 more)
 ✓ 8 out of 14 core applications have been installed (waiting for dex-k8s-authenticator, external-secrets and 4 more)
 ✓ 11 out of 14 core applications have been installed (waiting for dex-k8s-authenticator, kommander-ui and 1 more)
 ✓ 12 out of 14 core applications have been installed (waiting for dex-k8s-authenticator, traefik-forward-auth-mgmt)
 ✓ 13 out of 14 core applications have been installed (waiting for traefik-forward-auth-mgmt)

Cluster was created successfully! Get the dashboard details with:
nkp get dashboard --kubeconfig="/home/gowatana/nkpnai.conf"

gowatana@nkp-work-02:~$

 

3. kubeconfig ファイルの設置

kubectl などで Kubernetes クラスタに接続できるように、生成された kubeconfig ファイルを、デフォルトで参照されるパスに設置しておきます。

$HOME/.kube ディレクトリを作成します。

$ mkdir $HOME/.kube

 

そして、kubeconfig ファイルを設置します。

$ cp $HOME/nkpnai.conf $HOME/.kube/config

 

nkp get clusters コマンドで、作成された NKP クラスタを確認しておきます。

gowatana@nkp-work-02:~$ nkp get clusters -A
WORKSPACE               NAME            KUBECONFIG                              STATUS
kommander-workspace     host-cluster    kommander-self-attach-kubeconfig        Joined

 

Kubernetes クラスタのノードは、kubectl で確認できます。

gowatana@nkp-work-02:~$ kubectl get nodes --kubeconfig=/home/gowatana/nkpnai.conf
NAME                            STATUS   ROLES           AGE   VERSION
nkpnai-d9vzg-h5cbv              Ready    control-plane   31h   v1.34.3
nkpnai-d9vzg-km4cq              Ready    control-plane   31h   v1.34.3
nkpnai-d9vzg-pk5z7              Ready    control-plane   31h   v1.34.3
nkpnai-md-0-7pmtn-lsqps-72dtl   Ready    <none>          31h   v1.34.3
nkpnai-md-0-7pmtn-lsqps-hsxfl   Ready    <none>          31h   v1.34.3
nkpnai-md-0-7pmtn-lsqps-rst8k   Ready    <none>          31h   v1.34.3
nkpnai-md-0-7pmtn-lsqps-tcrtj   Ready    <none>          31h   v1.34.3

 

4. NKP Dashboard へのアクセス

NKP Dashboard の接続情報は、nkp get dashboard コマンドで確認できます。ユーザー名はランダム生成で、今回は「heuristic_vaughan」になっています。

gowatana@nkp-work-02:~$ nkp get dashboard
Username: heuristic_vaughan
Password: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
URL: https://10.1.7.121/dkp/kommander/dashboard

 

確認した NKP Dashboard の URL に、Web ブラウザでアクセスします。

 

ユーザー名とパスワードを入力して、「Log In」をクリックします。

 

今回はラボ環境なので、Pulse は無効にしておきます。「Do Not Enable」をクリックします。

 

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

 

これで、NKP Dashboard にアクセスできるようになりました。

 

つづく。

 

©2026 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。