ILUM Core: Spark orchestration platform for Kubernetes (REST API, Livy, HA)
10K+
Enterprise Apache Spark orchestration platform for Kubernetes, enabling serverless data processing at scale.
ilum/core is the central control plane for Ilum — a production-grade Spark orchestration platform designed for Kubernetes-native workloads. It provides a comprehensive REST API to launch, monitor, and manage Apache Spark applications across multiple clusters with enterprise-grade scalability and high availability.
# Run Ilum Core (requires MongoDB, Kafka, MinIO)
docker run -d \
--name ilum-core \
-p 9000:9000 \
-e MONGO_URI=mongodb://mongo:27017/ilum \
-e SPRING_KAFKA_BOOTSTRAP_SERVERS=kafka:9092 \
ilum/core:<version>
Note: For production deployments, use the official Ilum Helm Chart.
<version>: Ilum 6.6.1 + Spark orchestration engine + Java 21| Variable | Description |
|---|---|
| MONGO_URI | MongoDB connection string for metadata storage |
| SPRING_KAFKA_BOOTSTRAP_SERVERS | Kafka brokers for inter-service communication |
| ILUM_STORAGE_MINIO_URL | MinIO endpoint for Spark artifacts and logs |
| ILUM_STORAGE_MINIO_ACCESS_KEY | MinIO access key |
| ILUM_STORAGE_MINIO_SECRET_KEY | MinIO secret key |
| Variable | Default Value | Description |
|---|---|---|
| SERVER_PORT | 9000 | Ilum Core API port |
| ILUM_LIVY_PORT | 9888 | Apache Livy-compatible gateway port |
| ILUM_COMMUNICATION_TYPE | kafka | Communication mode: kafka or grpc |
NOTE:
Using grpc as communication type disables High Availability support. For production deployments with HA requirements, use kafka (default).
Ilum Core is stateless. All persistent data is stored in external infrastructure components (MongoDB, Kafka, MinIO).
TIP: For disaster recovery, ensure regular backups of MongoDB (metadata) and MinIO (Spark artifacts, event logs).
| Port | Service |
|---|---|
9000 | Ilum Core REST API + Apache Livy 0.8.0-compatible endpoints |
9888 | gRPC communication (ilum-core ↔ Spark jobs) |
The image runs as user ilum (UID 1001). Ensure that mounted volumes have appropriate permissions.
CAUTION: Never pass sensitive credentials directly in environment variables!
Recommended methods:
Before production deployment, scan the image:
# Trivy
trivy image ilum/core:<version>
Run commands from the root of the ilum-backend repository:
# Build the service
./gradlew clean build
# Build multi-platform Docker image
./gradlew dockerMultiplatformPush
dive ilum/core:<version>
# Syft
syft ilum/core:<version> -o spdx-json > sbom.json
ilum/java:21.0.9_10-jre)The Ilum Core API is designed with an API-first approach.
Interactive API Documentation:
http://<ilum-core>:9000/docs/api/ilum-api-definition moduleAPI Version Compatibility:
| API Version | Ilum Version |
|---|---|
| 1.0.0 | <= 6.6.1 |
Long-running Spark applications that accept consecutive workload requests without re-initialization overhead. Ideal for:
Traditional batch Spark jobs submitted via API. Supports:
| Mode | Use Case | HA Support |
|---|---|---|
| Kafka | Production deployments requiring scalability and HA | ✅ Yes |
| gRPC (default) | Development/testing environments, simplified setup | ❌ No |
Ilum Core requires the following components to operate:
All dependencies are automatically deployed when using the ilum-aio Helm chart.
Content type
Image
Digest
sha256:32104a9b1…
Size
2.3 GB
Last updated
7 days ago
docker pull ilum/core:6.7.3