NTNX>日記

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

Nutanix Enterprise AI 2.6 をデプロイしてみる。Part-06:要件ソフトウェアのインストール

NKP の Kubernetes クラスタに、Nutanix Enterprise AI(NAI)2.6 を展開してみます。今回は、NAI の前提要件となるソフトウェアを、NKP クラスタにインストールします。NKP の管理クラスタにデフォルトでインストールされているものを除き、NVIDIA GPU Operator、Envoy Gateway、KServe、OpenTelemetry Operator のインストールします。

 

前回はこちら。

 

今回の内容です。

 

ドキュメントでは、下記のあたりです。

 

1. NVIDIA GPU Operator のインストール

NAI では GPU を利用するので、Kubernetes クラスタに GPU Operator をインストールしておきます。

なお、今回はこの時点では GPU ノード プールを追加していません。NAI は AI モデルによっても CPU でもエンドポイントを起動できるので、あえてこの時点では、Kubernetes クラスタに GPU ノードが存在しない状態で環境構築を進めてみます。

 

NKP Dashboard で、「Management Cluster Workspace」→「Applications」を開きます。

 

「NVIDIA」などの文字列で検索すると、「NVIDIA GPU Operator」が見つかるので、パネル右下のボタン →「Enable」をクリックします。

 

デフォルトのまま「Enable」をクリックします。

 

しばらく待つと、「Status」タブにある App Status が、「Deployed」になります。

 

さきほどの「Applications」画面に表示されるパネルは、右上の表示が「Enabled」になります。

 

2. Envoy Gateway のインストール

今回は、Technology Preview の AI Gateway モードでインストールしてみます。

まず、Envoy Gateway の CRD をインストールします。

helm template eg oci://docker.io/envoyproxy/gateway-crds-helm \
--version v1.6.3 \
--set crds.gatewayAPI.enabled=true \
--set crds.envoyGateway.enabled=true \
| kubectl apply --server-side --force-conflicts -f -

 

YAML ファイルを用意します。

eg-config-for-gateway-mode.yaml

gist.github.com

 

Envoy Gateway をインストールします。

helm upgrade --install eg oci://docker.io/envoyproxy/gateway-helm \
--version v1.6.3 \
-n envoy-gateway-system \
--create-namespace \
--skip-crds \
-f ./eg-config-for-gateway-mode.yaml

 

実際にコマンドを実行すると、下記のようになります。

gowatana@nkp-work-02:~$ helm upgrade --install eg oci://docker.io/envoyproxy/gateway-helm \
--version v1.6.3 \
-n envoy-gateway-system \
--create-namespace \
--skip-crds \
-f ./eg-config-for-gateway-mode.yaml
Release "eg" does not exist. Installing it now.
Pulled: docker.io/envoyproxy/gateway-helm:v1.6.3
Digest: sha256:6dca101fdc0d41c702c1070eb42db119a2768a33388ba28041ae615cbe262aaf
NAME: eg
LAST DEPLOYED: Fri Mar 27 19:28:10 2026
NAMESPACE: envoy-gateway-system
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
NOTES:
**************************************************************************
*** PLEASE BE PATIENT: Envoy Gateway may take a few minutes to install ***
**************************************************************************

Envoy Gateway is an open source project for managing Envoy Proxy as a standalone or Kubernetes-based application gateway.

Thank you for installing Envoy Gateway! 🎉

Your release is named: eg. 🎉

Your release is in namespace: envoy-gateway-system. 🎉

To learn more about the release, try:

  $ helm status eg -n envoy-gateway-system
  $ helm get all eg -n envoy-gateway-system

To have a quickstart of Envoy Gateway, please refer to https://gateway.envoyproxy.io/latest/tasks/quickstart.

To get more details, please visit https://gateway.envoyproxy.io and https://github.com/envoyproxy/gateway.

 

この時点では、envoy-ratelimit の Pod 起動でエラーになります。このエラーは nai-system Namespace の redis-centinel サービスが存在しないことが原因ですが、このあと NAI(nai-core)をインストールすると解消されます。

gowatana@nkp-work-02:~$ kubectl get pod -n envoy-gateway-system
NAME                               READY   STATUS             RESTARTS      AGE
envoy-gateway-9b8b654fd-wkhns      1/1     Running            0             2m14s
envoy-ratelimit-6b4657bddd-xsbdj   0/1     CrashLoopBackOff   4 (20s ago)   2m3s

 

3. KServe のインストール

まず、KServe の CRD をインストールします。

helm upgrade --install kserve-crd oci://ghcr.io/kserve/charts/kserve-crd \
--version v0.15.0 \
-n kserve \
--create-namespace \
--wait

 

NAI のエンドポイントを実装するための、inferenceservices リソースなどの定義が追加されました。

gowatana@nkp-work-02:~$ kubectl api-resources --api-group=serving.kserve.io
NAME                       SHORTNAMES   APIVERSION                   NAMESPACED   KIND
clusterservingruntimes                  serving.kserve.io/v1alpha1   false        ClusterServingRuntime
clusterstoragecontainers                serving.kserve.io/v1alpha1   false        ClusterStorageContainer
inferencegraphs            ig           serving.kserve.io/v1alpha1   true         InferenceGraph
inferenceservices          isvc         serving.kserve.io/v1beta1    true         InferenceService
localmodelcaches                        serving.kserve.io/v1alpha1   false        LocalModelCache
localmodelnodegroups                    serving.kserve.io/v1alpha1   false        LocalModelNodeGroup
localmodelnodes                         serving.kserve.io/v1alpha1   false        LocalModelNode
servingruntimes                         serving.kserve.io/v1alpha1   true         ServingRuntime
trainedmodels              tm           serving.kserve.io/v1alpha1   true         TrainedModel

 

KServe をインストールします。エラーになった場合は、少し待ってから再実行するとうまくいくことがあります。

helm upgrade --install kserve oci://ghcr.io/kserve/charts/kserve \
-n kserve \
--version v0.15.0 \
--create-namespace \
--wait \
--set kserve.controller.deploymentMode=RawDeployment \
--set kserve.controller.gateway.disableIngressCreation=true

 

これで、Pod が起動されました。

gowatana@nkp-work-02:~$ kubectl get pod -n kserve
NAME                                         READY   STATUS    RESTARTS   AGE
kserve-controller-manager-69b6dbf9cf-5dg2x   2/2     Running   0          2m18s

 

kserve-controller-manager-service などの Service も起動されます。

gowatana@nkp-work-02:~$ kubectl get svc -n kserve
NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
kserve-controller-manager-service   ClusterIP   10.109.170.239           8443/TCP   82s
kserve-webhook-server-service       ClusterIP   10.105.14.30             443/TCP    82s

 

4. OpenTelemetry Operator のインストール

Helm で、opentelemetry-operator をインストールします。

helm upgrade --install opentelemetry-operator opentelemetry-operator \
--repo https://open-telemetry.github.io/opentelemetry-helm-charts \
--version=0.102.0 \
-n opentelemetry \
--create-namespace \
--wait

 

下記のように Pod が起動されます。

gowatana@nkp-work-02:~$ kubectl -n opentelemetry get pod -l "app.kubernetes.io/instance=opentelemetry-operator"
NAME                                      READY   STATUS    RESTARTS   AGE
opentelemetry-operator-5cc46c4b45-flksk   2/2     Running   0          56s

 

そして、下記のようにリソース定義が追加されます。

gowatana@nkp-work-02:~$ kubectl api-resources --api-group=opentelemetry.io
NAME                      SHORTNAMES           APIVERSION                  NAMESPACED   KIND
instrumentations          otelinst,otelinsts   opentelemetry.io/v1alpha1   true         Instrumentation
opampbridges                                   opentelemetry.io/v1alpha1   true         OpAMPBridge
opentelemetrycollectors   otelcol,otelcols     opentelemetry.io/v1beta1    true         OpenTelemetryCollector
targetallocators                               opentelemetry.io/v1alpha1   true         TargetAllocator

 

つづく。

 

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