Deploy to Kubernetes
Install QBITEL Bridge on a Kubernetes cluster using Helm. Configure resource limits, enable observability, and verify all components are healthy and ready for production traffic.
Prerequisites
- A running Kubernetes cluster (v1.28 or later) -- EKS, GKE, AKS, or local (kind, minikube)
- Helm 3.12+ and kubectl installed and configured
- At least 4 CPU cores and 8 GB RAM available in your cluster
What Gets Deployed
Control Plane
- AI Engine (Python) -- 2 replicas
- Control Plane (Go) -- 2 replicas
- Management API (Go) -- 2 replicas
Data Plane
- Data Plane DaemonSet (Rust) -- 1 per node
- TimescaleDB -- 1 replica (StatefulSet)
- Redis Cache -- 1 replica
Add the Helm Repository
Add the QBITEL Helm chart repository and update your local chart cache.
# Add the QBITEL Helm repo
helm repo add qbitel https://charts.qbitel.com
helm repo update
# Search for available charts
helm search repo qbitel
# Output
NAME CHART VERSION APP VERSION DESCRIPTION
qbitel/qbitel-bridge 1.0.0 1.0.0 QBITEL Bridge - AI Protocol Intelligence Create a Values Override
Create a values-production.yaml file to customize the deployment for your environment. This sets resource limits, enables PQC, and configures persistence.
# values-production.yaml
global:
environment: production
tls:
enabled: true
minVersion: "TLSv1.3"
aiEngine:
replicas: 2
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2"
memory: "4Gi"
pqc:
enabled: true
profile: hybrid
dataplane:
resources:
requests:
cpu: "1"
memory: "2Gi"
limits:
cpu: "4"
memory: "8Gi"
timescaledb:
persistence:
enabled: true
size: 50Gi
storageClass: gp3
monitoring:
prometheus:
enabled: true
grafana:
enabled: true
opentelemetry:
enabled: true
endpoint: "otel-collector:4317"
ingress:
enabled: true
className: nginx
hosts:
- host: qbitel.your-domain.com
paths:
- path: /
pathType: Prefix Install with Helm
Create the namespace and install the chart with your production values.
# Create namespace
kubectl create namespace qbitel-system
# Create secrets for database credentials
kubectl create secret generic qbitel-db-credentials \
--namespace qbitel-system \
--from-literal=username=qbitel \
--from-literal=password=$(openssl rand -base64 32)
# Install the chart
helm install qbitel-bridge qbitel/qbitel-bridge \
--namespace qbitel-system \
--values values-production.yaml \
--wait --timeout 5m Verify the Deployment
Confirm that all pods are running and passing health checks.
# Check pod status
kubectl get pods -n qbitel-system
# Expected output
NAME READY STATUS RESTARTS AGE
qbitel-ai-engine-6d8f9c7-abc12 1/1 Running 0 2m
qbitel-ai-engine-6d8f9c7-def34 1/1 Running 0 2m
qbitel-controlplane-5b7c8-gh567 1/1 Running 0 2m
qbitel-controlplane-5b7c8-ij890 1/1 Running 0 2m
qbitel-mgmtapi-4a6b7-kl012 1/1 Running 0 2m
qbitel-mgmtapi-4a6b7-mn345 1/1 Running 0 2m
qbitel-dataplane-pq678 1/1 Running 0 2m
qbitel-timescaledb-0 1/1 Running 0 2m
qbitel-redis-0 1/1 Running 0 2m
# Run the built-in health check
kubectl exec -n qbitel-system deploy/qbitel-ai-engine -- \
curl -s http://localhost:8000/health | jq
# Check the Kubernetes health endpoints
kubectl get endpoints -n qbitel-system Access the Console and Grafana
Port-forward to the management API and Grafana to verify the installation through the web interfaces.
# Port-forward to the QBITEL console
kubectl port-forward -n qbitel-system svc/qbitel-mgmtapi 8080:8080 &
# Port-forward to Grafana
kubectl port-forward -n qbitel-system svc/qbitel-grafana 3001:3000 &
# Open in your browser
# Console: http://localhost:8080
# Grafana: http://localhost:3001 (admin / admin) What's next? With QBITEL Bridge running on Kubernetes, you can scale the AI engine horizontally, enable auto-scaling with HPA, and integrate with your service mesh. Check the deployment docs for advanced configuration.
Ready for Production Kubernetes?
QBITEL Bridge ships production-grade Helm charts with built-in observability, auto-scaling, and high availability.