Environment:SeldonIO Seldon core Kubernetes Cluster Environment
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Kubernetes |
| Last Updated | 2026-02-13 14:00 GMT |
Overview
Kubernetes cluster environment with Helm, kubectl, and supporting infrastructure (Kafka, cert-manager) required to deploy Seldon Core 2 in production.
Description
This environment defines the Kubernetes cluster prerequisites for running Seldon Core 2. It requires a Kubernetes cluster (1.23+), Helm for chart-based installation, and a Kafka cluster for the data plane. The operator manages custom resources (Model, Pipeline, Experiment, Server) via controller-runtime and communicates with the scheduler over gRPC. All Seldon components run as non-root containers (UID/GID 1000) and can be deployed in either namespace-scoped or cluster-wide mode. The default namespace is seldon-mesh.
Usage
Use this environment for any production or staging deployment of Seldon Core 2. It is the mandatory prerequisite for running the operator, scheduler, envoy proxy, model gateway, pipeline gateway, dataflow engine, and hodometer components on Kubernetes.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux (x86-64-v2+) | grep sse4_2` |
| Kubernetes | v1.23+ | API v0.33.2 compatible via k8s.io packages |
| CPU | x86-64-v2 or higher | Virtual machines must support SSE4.2 |
| Memory | 4Gi minimum | 8Gi+ recommended for production workloads |
| Disk | 1Gi SSD (scheduler PVC) | Additional storage for model artifacts |
Dependencies
System Packages
- `kubectl` (1.23+ recommended)
- `helm` (v3+)
- `docker` or compatible container runtime
- `kind` (optional, for local dev clusters)
Kubernetes Components
- Kafka cluster (Bitnami Kafka 3.8.1 or managed Kafka: AWS MSK, Confluent Cloud, Azure Event Hub)
- cert-manager (optional, for automated TLS certificate management)
- Istio / Ambassador / Traefik (optional, for ingress and service mesh)
- Prometheus (optional, for metrics collection)
- Jaeger (optional, for distributed tracing)
Helm Charts
- `seldon-core-v2-setup` (CRDs, operator, scheduler, envoy, gateways)
- `seldon-core-v2-runtime` (SeldonRuntime per namespace)
Seldon CRDs
- `servers.mlops.seldon.io`
- `serverconfigs.mlops.seldon.io`
- `models.mlops.seldon.io`
- `pipelines.mlops.seldon.io`
- `experiments.mlops.seldon.io`
Credentials
The following environment variables or Kubernetes Secrets may be required:
- `KAFKA_SECURITY_PROTOCOL`: Kafka security mode (PLAINTEXT / SSL / SASL_SSL)
- `KAFKA_CLIENT_TLS_SECRET_NAME`: K8s secret for Kafka client certificates (SSL mode)
- `KAFKA_CLIENT_SASL_USERNAME`: SASL username for managed Kafka (default: "seldon")
- `KAFKA_CLIENT_SASL_SECRET_NAME`: K8s secret containing SASL password
- `CONTROL_PLANE_SECURITY_PROTOCOL`: Control plane TLS mode (PLAINTEXT / SSL)
- `CONTROL_PLANE_SERVER_TLS_SECRET_NAME`: K8s secret for scheduler gRPC TLS
- `ENVOY_SECURITY_PROTOCOL`: Data plane TLS mode (PLAINTEXT / SSL)
- `ENVOY_DOWNSTREAM_SERVER_TLS_SECRET_NAME`: K8s secret for envoy downstream TLS
- `POD_NAMESPACE`: Kubernetes namespace for resource scoping
Quick Install
# Add Seldon Helm repository
helm repo add seldon https://seldonio.github.io/helm-charts/
helm repo update
# Install Seldon Core 2 (with Kafka already deployed)
helm install seldon-core-v2-setup seldon/seldon-core-v2-setup \
--namespace seldon-mesh --create-namespace
# Install runtime in target namespace
helm install seldon-core-v2-runtime seldon/seldon-core-v2-runtime \
--namespace seldon-mesh
Code Evidence
Default Helm values from `k8s/helm-charts/seldon-core-v2-setup/values.yaml`:
kafka:
bootstrap: seldon-kafka-bootstrap.seldon-mesh:9092
topicPrefix: seldon
consumer:
sessionTimeoutMs: 6000
autoOffsetReset: earliest
messageMaxBytes: 1000000000
producer:
lingerMs: 0
messageMaxBytes: 1000000000
topics:
replicationFactor: 1
numPartitions: 1
Pod security context from Helm values:
security:
controlplane:
protocol: PLAINTEXT
kafka:
protocol: PLAINTEXT
securityContext:
fsGroup: 1000
runAsUser: 1000
runAsGroup: 1000
runAsNonRoot: true
Default resource allocations from `k8s/helm-charts/seldon-core-v2-setup/values.yaml`:
scheduler:
replicas: 1
resources:
cpu: 100m
memory: 1Gi
storage: 1Gi
envoy:
replicas: 1
resources:
cpu: 100m
memory: 128Mi
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| CRD not found for `models.mlops.seldon.io` | Helm CRDs not installed | Run `helm install seldon-core-v2-setup` first |
| Kafka broker not reachable | Kafka not deployed or wrong bootstrap address | Verify Kafka is running: `kubectl get pods -n seldon-mesh`; check `kafka.bootstrap` in Helm values |
| Model stuck in `ScheduleFailed` | No server with matching capabilities or memory | Check `seldon model status <name>` and verify server capabilities and memory limits |
| SSE4.2 instruction set missing | Running on incompatible CPU | grep sse4_2` |
Compatibility Notes
- Managed Kafka: Supports AWS MSK (mTLS/SASL), Confluent Cloud (SASL/OAuth), Azure Event Hub (SASL), and Strimzi (mTLS/SASL).
- Service Meshes: Compatible with Istio, Ambassador (Emissary), and Traefik for ingress routing.
- Cluster-wide mode: Available for multi-namespace deployments with Kafka topic prefix isolation.
- StatefulSets vs Deployments: Default uses StatefulSets for inference servers; set `useDeploymentsForServers: true` to use Deployments instead.
Related Pages
- Implementation:SeldonIO_Seldon_core_Seldon_Model_Load
- Implementation:SeldonIO_Seldon_core_Seldon_Model_Status
- Implementation:SeldonIO_Seldon_core_Seldon_Model_Infer
- Implementation:SeldonIO_Seldon_core_Seldon_Model_Unload
- Implementation:SeldonIO_Seldon_core_Seldon_Pipeline_Load
- Implementation:SeldonIO_Seldon_core_Seldon_Pipeline_Status
- Implementation:SeldonIO_Seldon_core_Seldon_Pipeline_Infer
- Implementation:SeldonIO_Seldon_core_Seldon_Experiment_Start
- Implementation:SeldonIO_Seldon_core_Seldon_Experiment_Stop
- Implementation:SeldonIO_Seldon_core_Seldon_Model_CRD
- Implementation:SeldonIO_Seldon_core_Seldon_Pipeline_CRD
- Implementation:SeldonIO_Seldon_core_Seldon_Experiment_CRD