Nutanix Enterprise AI on NKPPart 1: architecture, licensing and sizing

Published
Reading
11 min
Updated on

Tested onNKP 2.19Nutanix Enterprise AI 2.8.1Prism Central 7.6AOS 7.6Lab date On a different version, check the compatibility matrix and the release notes before applying.

Ler em português

Cover of the Nutanix Enterprise AI on NKP series, with part 1, Architecture, highlighted

Summary: Nutanix Enterprise AI (NAI) turns a Kubernetes cluster into an inference platform with an OpenAI-compatible API, per-application keys, a model catalog and auditing. Before installing it, I read the 2.8.1 User Guide and the two Nutanix Validated Designs that cover it. Five points shaped my plan: the license is separate from NKP, with a 2-day trial (the key goes in on install day); the guide mentions NKP 2.18, and the 2.19 catalog already ships NAI 2.8.1; the control plane needs 30 vCPU and 60 GB on top of inference; the NVDs put NAI on a dedicated cluster; and with no GPU, the lab runs inference on CPUs without AMX. This is part 1 of 4.

The series

PartTopic
1NAI: architecture, licensing and sizing (this post)
2Nutanix Files for Kubernetes: the RWX NAI requires
3From the catalog to the first token: dedicated cluster, NAI 2.8.1 and license
4CPU, GPU and MCP: NAI in a hybrid architecture

The lab: a 3-host Nutanix HCI cluster, Prism Central and AOS 7.6, NKP 2.19 with a management cluster and a services cluster. No GPU in the hosts. This part is the reading and the planning; nothing is installed yet. It is the part I wish I had read before opening an NAI project at a customer.


What Nutanix Enterprise AI is

NAI is a Nutanix platform for serving AI models inside Kubernetes, with governance. In practice, it delivers:

FeatureWhat it is
Local endpointsA Hugging Face model or an NVIDIA NIM published as an OpenAI-compatible API, running on GPU or CPU
Validated model catalogModels tested by Nutanix, with CPU, memory and vLLM parameters filled in automatically
API keysOne key per application, with activation, deactivation and auditing
Unified EndpointsA single endpoint that spreads traffic across local models and external providers (OpenAI, Anthropic, Bedrock, Azure OpenAI, Vertex, Gemini, Mistral, Cohere or another NAI), with rate limiting
MCP ServersLocal or remote MCP servers for agents, with credentials and client keys
NAI LabsSample applications: Chat, Talk to My Data and an agent
GovernanceIAM with LDAP, SAML and policies, audit events, model security scanning, usage metrics

The current version is 2.8.1, and it already shows up in the NKP 2.19 catalog, on the AI Applications tab:

AI Applications tab of the NKP 2.19 catalog: 18 AI applications in six categories

Inferencing and Serving category: NAI Envoy Gateway 1.8.2, KServe 0.19.0, LeaderWorkerSet 0.8.0, Nutanix Enterprise AI 2.8.1 and Traefik API Management, all disabled

How the pieces fit

LayerComponentsWhat it does
IngressEnvoy Gateway (with Gateway API)Receives HTTPS calls, validates the key, applies limits
Control planenai-api, UI, IAM, PostgreSQL, ClickHouse, Valkey, OpenTelemetryCatalog, keys, users, metrics and auditing
InferenceKServe, LeaderWorkerSet, vLLM or NIMBrings each model up as a service, with one or more replicas
DataRWX volume (Files) and RWO volumesModel weights and platform data

Licensing: separate from NKP, with a 2-day trial

Editions

EditionWhat it includes
NAI Standalone (Pro)NAI only, on any CNCF Kubernetes: NKP, EKS, AKS, GKE
NAI-NKP (Pro or Ultimate)NAI + NKP in one bundle
NAI Full-Stack / GPT-in-a-Box (Pro or Ultimate)NAI + NCI + NKP + Unified Storage (+ NDK and NDB)

NAI has its own license

NAI is licensed separately from NKP Ultimate, or it comes in an NAI-NKP or Full-Stack bundle.

The metric

NAI has three licenses, and you apply the one that matches your use:

LicenseMetricWhen to use
CPUvCPUs used by inference endpointsCluster without GPU (the lab’s case)
GPUGB of GPU memory, across all GPUsCluster with GPUs
Agent GatewayActive access keys on Unified Endpoints and MCPGateway only, no local inference

One detail that makes life easier: the CPU license counts what the endpoints use, not the node size. The NAI control plane is not counted.

The clock

RuleWhat the 2.8.1 User Guide says
Trial2 days after installation
POC license30 days (requested from Nutanix)
After expiry30-day grace period; then endpoints hibernate
When to apply CPU or GPUOnly on first installation, not on an upgrade
SwitchingCPU → GPU with no prerequisite; to Agent Gateway, hibernate endpoints first

Do this first: generate the key the same day

With a 2-day trial, the key must be ready right after installation. The path: support portal → Licenses → Manage Licenses → Manage NAI/NKP License → NAI → enter the cluster name or ID → Apply to Cluster → number of vCPUs or GB → Generate license keys. Then, in NAI: Settings → Licensing → Add License.

In the lab, licensing looks like this:

Lab cluster licenses: NCI Ultimate, NCI Security, NCM Ultimate and NUS Pro

LicenseStatus in the lab
NKP Ultimate400 vCPU applied
NAI Pro600 available, not applied yet (Part 3)
NUS Pro50 TiB + 1 TiB included with NCI Ultimate (used in Part 2)
NDKIncluded with NKP Ultimate, unlimited
Flow Network SecurityIncluded with NCI Ultimate (shown as NCI Security)

What the 2.8.1 User Guide requires

Platform

RequirementWhat the guide saysIn the lab
KubernetesVersion 1.351.36.2
NKP“You can install NAI 2.8.1 only on NKP 2.18”NKP 2.19
Node imageUbuntuRocky Linux 9.8
Other platformsEKS, AKS and GKE; air-gapped only on NKP—
Architecturex86 onlyx86 (the Nutanix hosts)
GPUNVIDIA, with GPU Operator and the nvidia.com/gpu:NoSchedule taintNone

NKP 2.18 or 2.19?

The User Guide is dated 10/16/2026, four days before NKP 2.19 shipped, and mentions only 2.18. At the same time, the 2.19 catalog itself ships NAI 2.8.1 with the Nutanix Supported badge. On 2.19, the path is the catalog app, not the guide’s manual Helm install: the app’s own annotation declares compatibility, nkp-version-support: >=2.18 <2.20 (details in Part 3). At a customer, check the compatibility matrix for the version before signing off on the scope.

The x86 requirement has a consequence in the lab: the NVIDIA GB10 GPU server we have is ARM, and cannot be an NAI node. It joins in Part 4 by another route.

Network, DNS and certificate

RequirementDetail
LoadBalancerExternal IP for Envoy (on NKP, MetalLB)
FQDNA DNS name that resolves to that IP
CertificateCA-signed; NAI only accepts HTTPS. For testing, there is a self-signed option through cert-manager

Storage

ItemMinimumFor
Block (RWO)150 GiBPostgreSQL (40), ClickHouse (50 + 10), NAI Labs (20), nai-api (20), Valkey (8), audit (1)
NFS (RWX)2 TiB, storage class with ImmediateModels
NFSv4 exportOne shareImporting custom models
S31 TiB (optional)Another way to import models

NKP ships with RWO storage only. RWX is the whole subject of Part 2.

Dependencies

The guide installs them with Helm; the NKP 2.19 catalog already ships almost all of them:

ComponentVersion in the guideIn the NKP 2.19 catalog
Envoy Gateway + Gateway API1.8.1NAI Envoy Gateway 1.8.2
KServe0.19.0 (RawDeployment mode)0.19.0
LeaderWorkerSet0.8.00.8.0
OpenTelemetry Operator0.114.10.114.1 (Observability category)
CloudNativePGNKP appNKP app
Prometheus MonitoringNKP app, minimal installalready present
cert-managerships with NKPalready present
NVIDIA GPU Operatoronly with GPUsnot applicable

You also need a Docker Hub access token generated in the Nutanix portal to pull the NAI images.


Sizing: the control plane comes first

The guide’s minimum

The guide assumes a cluster dedicated to NAI and counts only the control plane; inference is added on top.

NodesCountvCPUMemoryDisk
Kubernetes control plane3416 GB150 GB
NAI workers31020 GB150 GB
Total642108 GB—

The heaviest components:

ComponentvCPUMemory
nai-api5.17.1 GiB
Envoy (ingress gateway)5.110.3 GiB
ClickHouse (observability)48 GiB
OpenTelemetry Collector42 GiB
UI22 GiB
PostgreSQL22 GiB

Profiles

ProfileCapacityWorkers
Default300 concurrent requests, 100 keys3 × 10 vCPU / 20 GB
c1k_k2001,000 requests, 200 keys3 × 60 vCPU / 90 GB
c5k_k1k5,000 requests, 1,000 keys3 × 90 vCPU / 150 GB

Inference, on top

The guide’s reference for a 1-GPU endpoint:

EngineCPUMemory
NVIDIA NIM12 cores32 GiB
vLLM8 cores16 GiB (1 GPU) to 128 GiB (8 GPUs)

And without a GPU?

NAI supports CPU endpoints: when creating the endpoint, Acceleration Type → CPU, which shows up for models that support CPU execution. With a 4th-generation Xeon or newer, there is the Optimise endpoint to run on Intel AMX option, which uses the processor’s matrix acceleration.

The lab host:

Lab host details: 2 × Intel Xeon Silver 4210 at 2.2 GHz, 20 cores, 376 GiB, hybrid storage with 2 HDD and 1 SSD, AHV 11.2.0.4

ItemValueImpact
CPU2 × Xeon Silver 4210 (Cascade Lake, 2nd gen), 2.2 GHz, 20 cores per hostNo AMX; has AVX-512 and VNNI. CPU inference works, at lab performance
Memory376 GiB per host, 3 hostsThe lab’s real limit
StorageHybrid: 2 HDD + 1 SSD per hostSlower model loading when data lands on HDD

What NAI on CPU delivers

Governance, catalog, keys, auditing, embeddings and reranking for RAG, and small text models. Text generation at scale needs a GPU, or at least a Xeon with AMX. The GPT-in-a-Box NVD cites AMX with OpenVINO doubling embedding speed: that is the argument for customers who do not have GPUs yet.

Candidates from the validated catalog for CPU, by size:

ModelTypeSize
ibm-granite/granite-embedding-107m-multilingualEmbeddings, 12 languages~2 GiB
cross-encoder/ms-marco-MiniLM-L6-v2Reranker~4 GiB
google/gemma-3-270m-itText~10 GiB
meta-llama/Llama-3.2-1B-InstructText (gated on Hugging Face)~10 GiB

Which of them show the CPU option, only the UI will tell.


What the Nutanix Validated Designs say

I read two: NVD-2057 (Nutanix Enterprise AI Design, August 2026) and NVD-2115 (GPT-in-a-Box with NKP, January 2026).

Validated versions × lab

ComponentNVD-2057NVD-2115Lab
Prism Central / AOS7.5.1.62024.3.0.1 / 7.07.6 / 7.6
NKP2.18.02.142.19
NAI2.72.02.8.1
Files5.2.2.15.15.4.0.1

The lab is ahead of everything that was validated. NVD-2057 itself says it is one example of a supported configuration, not the only one.

Patterns that apply to any customer

TopicWhat the NVD does
NAI clusterDedicated, in its own workspace. In NVD-2057, an nai-prod and an nai-stage
Control planeCPU-only VM nodes on the management cluster; GPUs on Ubuntu 24.04 bare metal
NAI worker poolNVD-2115: 12 vCPU / 40 GB / 100 GB
DatabaseExternal PostgreSQL, via NDB, one per NAI instance
CertificatesPrivate CA issuing through cert-manager, 1-year validity
Workspacesgateway, prod, stage, qa and dev; NAI Labs only in qa and dev
High availability2 replicas of nai-api and Envoy in gateway, prod and stage
ObservabilityCentral stack, vLLM ServiceMonitor and Envoy dashboards
BackupVelero to Nutanix Objects, with replication

Token as a Service

NVD-2057 describes NAI as a token platform: a single OpenAI-compatible API, with token quotas per tier (Free, Standard, Enterprise, Premium), that teams consume without seeing any GPU. In front of everything, the Agent Gateway spreads traffic between production and staging:

ModelRoleProduction : staging
openai/gpt-oss-120b (MoE)Architect: plans75 : 25
google/gemma-4-26B-A4B-it (MoE)Developer: writes the code75 : 25
google/gemma-4-31B-it (dense)Reviewer: checks90 : 10
Embeddings, reranker, Llama GuardRAG support and safety50 : 50

The validated design: 16 nodes with 128 RTX PRO 6000 Blackwell GPUs, for about 1,750 concurrent users. Small models run on MIG 1g.24gb slices (4 per GPU); large ones on full GPUs.

KV cache: what limits users

Each active session reserves GPU memory for the KV cache. The NVD uses these numbers:

Usage profileContextKV cache per session
Chat and coding assistant8K tokens~0.6 GB
RAG and structured extraction17K tokens~1.5 GB
Summarization, research, agents106K tokens~8 GB

This math sets how many users fit in a replica, and it is the first question when sizing GPUs at a customer.


The lab’s decision: a dedicated cluster

With the guide and the NVDs in hand, I compared two options. The limit is memory: with 3 hosts of 376 GiB, I want everything to keep running if one host fails (N+1), which leaves about 752 GiB usable. The lab already uses ~591 GiB, including the Files from Part 2.

A: node pool on the services clusterB: dedicated cluster
Shape+3 workers with 12 vCPU / 40 GiB1 control plane 4/16 + 3 workers 12/40, own workspace
Memory added120 GiB136 GiB
Projected total~711 GiB (94.5% of N+1)~727 GiB (96.7% of N+1)
Follows the NVDsNoYes
Ubuntu nodesNo (existing cluster on Rocky)Possible, if 2.19 offers the image
IsolationShares the cluster with other servicesCan be deleted without affecting anything

I chose B. It costs 16 GiB more, follows the Nutanix design, isolates the experiment and allows the Ubuntu image the guide asks for. The trade-off: a single control plane (acceptable in a lab) and almost no memory headroom while NAI is up.

Do the math before Enable

Adding up the guide (30 vCPU and 60 GB just for the control plane), Files and a new cluster, the lab went from comfortable to 96.7% of the N+1 limit. At a customer, this math comes before the proposal, not after installation.


What I learned

  1. NAI is a separate license, apart from NKP Ultimate; the metric is inference vCPU (CPU) or GB of GPU memory.
  2. The trial is 2 days, and the CPU or GPU license only goes in on first installation. Get the key from the portal the same day.
  3. The 2.8.1 guide mentions NKP 2.18. On 2.19, the path is the catalog app, compatible with >=2.18 <2.20 per the app’s own annotation.
  4. The control plane needs 30 vCPU and 60 GB on 3 workers, before any model.
  5. NAI needs RWX. NKP’s default storage class is RWO; RWX comes from Nutanix Files (Part 2).
  6. An FQDN and a CA certificate are mandatory. Without internal DNS, that becomes a project prerequisite.
  7. The NVDs put NAI on a dedicated cluster, with the control plane on VMs and the GPUs on bare metal.
  8. Without a GPU, NAI is for governance, embeddings and small models. With AMX, CPU performance improves; my lab hardware does not have it.

Pre-sales checklist

  • Edition defined: Standalone, NAI-NKP or Full-Stack
  • Metric estimated: inference vCPU or GPU GB
  • NKP version checked against the NAI app’s nkp-version-support annotation and the compatibility matrix
  • Dedicated cluster sized: control plane (30 vCPU / 60 GB) + inference
  • GPU: model, count, MIG or full GPU; or CPU with AMX
  • KV cache estimated from the usage profile (chat, RAG or agents)
  • Storage: RWO 150 GiB, RWX 2 TiB (Files), export for custom models, optional S3
  • Network: LoadBalancer IP, FQDN and CA certificate
  • Docker Hub token and a Hugging Face account (gated models)
  • License key generated on installation day

What I haven’t tested yet

  • GPU endpoints in NAI. The lab hosts have no GPU, and the GB10 GPU server is ARM, while NAI requires x86; it joins in Part 4 by another route. The GPU inside NKP itself is the lab’s next step.
  • The Intel AMX-optimized endpoint option. It needs a 4th-generation Xeon or newer, and the lab hosts are Cascade Lake (2nd gen).
  • The NAI cluster with 3 control planes, as in the guide’s table. In the lab, the dedicated cluster has a single control plane, which is enough for a lab.

Next part

In Part 2, RWX storage: Nutanix Files built from scratch and connected to Kubernetes, with the detail of the CSI in Prism Central mode.

References

Nutanix

Independent

Comments

Comments use GitHub Discussions; you need a GitHub account.