What you’ll end up with
| Component | Location | Replicas |
|---|---|---|
| Data Plane API, worker, Kafka Connect | Your AKS cluster | 2, 1, 1 |
| TrustGate admin / gateway / actions | Your AKS cluster | 2 each |
| Firewall gateway + 5 workers | Your AKS cluster | 2 + 5 |
| ClickHouse, Kafka, PostgreSQL, Redis | Your AKS cluster (or external) | 1 each |
| Control Plane API, UI, Scheduler | NeuralTrust SaaS | — |
Prerequisites
| Resource | Recommended |
|---|---|
| AKS version | 1.28+ |
| CPU pool node SKU | Standard_D8s_v5 (8 vCPU / 32 GiB) |
| Min CPU nodes | ≥ 4 across 3 availability zones. Drop to 3 if Firewall workers run on GPU nodes. |
| GPU pool (optional, for GPU Firewall) | Standard_NC4as_T4_v3 — 5 nodes (one per default Firewall worker) |
| Storage | Azure Disk CSI + managed-csi-premium (or managed-csi for non-prod) |
| Ingress | AGIC (managed) or NGINX |
| Certificate | Key Vault cert (AGIC) or cert-manager + Let’s Encrypt (NGINX) |
| Image pull | gcr-keys.json from NeuralTrust |
| NeuralTrust tenant | A SaaS Control Plane tenant — request from [email protected] |
Step 1 — Provision AKS
--node-count 5 to fit the additional Control Plane footprint.
Enable AGIC or install NGINX (see Azure overview › Ingress add-on).
Step 2 — Namespace and image pull secret
Step 3 — Write your values overlay
- AGIC
- NGINX + cert-manager
Using managed Azure data services
extraEnv on each Kafka consumer:
Step 4 — Install
Step 5 — DNS
data-plane-api.*, admin.*, gateway.*, actions.*).
Step 6 — Enroll the Data Plane with NeuralTrust SaaS
Connect the Data Plane
Team Settings → Advanced → Connect Data Plane. Provide the Data Plane API URL, JWT secret, and region. See Platform › Advanced.
Step 7 — Send traffic through TrustGate
Point your AI applications athttps://gateway.platform.example.com. See TrustGate › Getting started for plugin and route configuration.
Verification
Upgrading
Migration to self-hosted
app.*, api.*, scheduler.*. See Self-hosted on AKS for the full picture.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Portal says “Data Plane unreachable” | DNS not propagated, cert not provisioned, or NSG blocking SaaS | curl https://data-plane-api.<domain>/health from outside the VNet |
| AGIC ingress without IP | Application Gateway subnet sized too small, or NSG blocking AGIC ↔ pod | Check AGIC logs |
PVC stuck Pending | Storage class missing or quota exhausted | kubectl get storageclass; check subscription quota |
| TrustGate can’t reach Firewall | Service name mismatch | Default is http://firewall:80 — verify NEURAL_TRUST_FIREWALL_URL |
Related guides
- Self-hosted deployment on AKS — Control Plane in your cluster
- Azure overview — cluster prerequisites and Azure-specific defaults
- Deployment models — hybrid vs self-hosted comparison
- Image catalog — what runs in hybrid mode
- Secrets management — auto-generation, External Secrets Operator
- Firewall deployment — GPU workers on AKS