Sign inSign up

ilum/kyuubi

By ilum

Updated 4 months ago

ILUM Kyuubi: serverless SQL gateway for Spark and Trino (JDBC, Kubernetes)

Image
Integration & delivery
Developer tools
Data science
0

5.8K

ilum/kyuubi repository overview

Ilum Kyuubi

Production-ready Apache Kyuubi images optimized for Kubernetes and integrated with the Ilum Spark ecosystem.

Base Image Architectures


Overview

The ilum/kyuubi image provides a powerful distributed gateway for serverless SQL queries, based on Apache Kyuubi 1.10.2. It is built upon the ilum/spark base image, ensuring seamless integration with Spark 3.5.7 and Delta Lake.

  • Engine Support — native support for Spark and Trino engines
  • Serverless SQL — optimized for multi-tenant JDBC/ODBC concurrency on Kubernetes
  • Security — runs as a non-root user (kyuubi with UID 10009)
  • Multi-arch support — built for linux/amd64 and linux/arm64

TL;DR / Quick Start

# Run Kyuubi Server
docker run -d \
  --name ilum-kyuubi \
  -p 10009:10009 \
  -p 10099:10099 \
  ilum/kyuubi:<version>

For production deployments, integrating with the Ilum control plane and Kubernetes discovery is recommended.


Supported Tags

  • <version>: Apache Kyuubi 1.10.2 + Spark 3.5.7 + Delta Lake support

Environment Variables

Core Configuration
VariableDescription
KYUUBI_HOMEKyuubi installation directory (/opt/kyuubi)
KYUUBI_LOG_DIRDirectory for Kyuubi logs
KYUUBI_PID_DIRDirectory for process ID files
KYUUBI_WORK_DIR_ROOTRoot directory for Kyuubi engine work tasks
Customizing Engines

Kyuubi engines (Spark/Trino) as well as the server itself can be configured via kyuubi-defaults.conf or spark-defaults.conf mounted into the configuration directory.


Data Persistence (Volumes)

Container PathPurpose
/opt/kyuubi/confConfiguration files (kyuubi-defaults.conf, etc.)
/opt/kyuubi/logsPersistent log storage
/opt/kyuubi/workEngine working directories and temporary files

Network Configuration

PortService
10009Kyuubi Thrift Binary / JDBC
10010Kyuubi Thrift HTTP (if enabled)
10099Kyuubi Web UI

Security

Non-root Architecture

The image runs as user kyuubi (UID 10009). When mounting host volumes, ensure directories have appropriate permissions:

# On host
sudo chown -R 10009:0 /path/to/logs /path/to/work
Secret Hygiene

CAUTION: Never pass sensitive credentials directly in environment variables!

Recommended methods:

  1. Kubernetes Secrets — for mounting Kerberos keytabs or database credentials.
  2. IAM Roles (IRSA) — use Kubernetes Service Accounts for cloud storage access within engines.
Vulnerability Scanning

Before production deployment, scan the image:

# Trivy
trivy image ilum/kyuubi:<version>

Building the Image

Run command from the docker/ilum-kyuubi directory:

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t ilum/kyuubi:<version> \
  --push .

Image Verification

Layer Analysis (Dive)
dive ilum/kyuubi:<version>
Software Bill of Materials (SBOM)
# Syft
syft ilum/kyuubi:<version> -o spdx-json > sbom.json

Image Contents — Details

Dockerfile Components
  • Base: ilum/spark:3.5.7-delta
  • Gateway: Apache Kyuubi 1.10.2
  • Engines:
    • Spark (Pre-installed)
    • Trino (Connector included)
  • Features: Beeline, Web UI, Kerberos support (krb5-user)

Support and Feedback

Tag summary

Content type

Image

Digest

sha256:a66025fd1

Size

3.2 GB

Last updated

4 months ago

docker pull ilum/kyuubi:1.11.1-spark-trino