-
Notifications
You must be signed in to change notification settings - Fork 285
Open
Labels
enhancementNew feature or requestNew feature or request
Description
What is the problem the feature request solves?
Description
Add support for running benchmarks on a Kubernetes cluster using Spark's spark-submit --master k8s://... client mode. This was explored during #3534 but removed as out of scope for the initial PR.
Motivation
The current benchmark runner supports local and standalone Spark clusters via docker-compose. Adding K8s support would enable:
- Running benchmarks on multi-node clusters with realistic resource constraints
- Leveraging existing K8s infrastructure (e.g., K3s, EKS, GKE) without managing standalone Spark clusters
- Better reproducibility via containerized executor pods with defined resource limits
Proposed Scope
- K8s profile config (
conf/profiles/k8s.conf) withspark.master=k8s://..., executor pod templates, and container image settings - RBAC manifests (namespace, service account, role, role binding) for the
comet-benchnamespace - PV/PVC definitions for mounting benchmark data and engine JARs into executor pods
- Documentation for pushing the
comet-benchimage to a cluster-accessible registry and running benchmarks - Validation with at least one TPC-H query on a multi-node cluster (e.g., K3s)
Key Considerations
- The
comet-benchDocker image already includes both Java 8 and Java 17 runtimes and the TPC query files, so it can serve as the executor image - Spark client mode requires the driver pod (or host) to be reachable from executor pods — network configuration may vary by cluster
- Engine JARs (Comet, Gluten) need to be accessible to executors, either baked into the image or mounted via PVCs
- Gluten requires
JAVA_HOMEoverride to Java 8 on all executor pods
Describe the potential solution
No response
Additional context
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request