Since Kubernetes v1.8, native support for Apache Spark applications has been available(requiring Spark to support Kubernetes, e.g., v2.3). You can submit Kubernetes tasks directly with the spark-submit command. Here's an example of computing Pi:
A detailed method for deploying Spark is provided on the github Kubernetes examples. To simplify some steps for an easier installation, follow the instructions below.
For observing our Spark cluster via the Spark-developed web UI, deploy specialized proxy.
Deploy Spark workers to ensure the Master is up and running. Also create the Zeppelin UI, which allows direct task execution on our cluster through a web notebook, seen at Zeppelin UI and Spark architecture.
Once done, the Spark cluster is established.
Common Issues with Zeppelin
The Zeppelin image is quite large and takes some time to pull. Details at issue #17231.
kubectl port-forward may be unstable on the GKE platform; restart as needed. See issue #12179 for reference.