Hello, I am following the tutorial here ( https://spark.apache.org/docs/latest/running-on-kubernetes.html) to get spark running on a Kubernetes cluster. My Kubernetes cluster is hosted with Digital Ocean's kubernetes cluster manager. I have change the KUBECONFIG environment variable to point to my cluster access credentials, so both Spark and kubectl can speak with the nodes.
I am running into an issue when trying to run the SparkPi example as described in the Spark on Kubernetes tutorials. The command I am running is: ./bin/spark-submit --master k8s://$CLUSTERIP --deploy-mode cluster --name spark-pi --class org.apache.spark.examples.SparkPi --conf spark.executor.instances=1 --conf spark.kubernetes.container.image=$IMAGEURL --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark local:///opt/spark/examples/jars/spark-examples_2.11-2.4.0.jar where CLUSTERIP contains the ip of my cluster and IMAGEURL contains the URL of the Spark docker image I am using ( https://hub.docker.com/r/stevenstetzler/spark/). This docker image was built and pushed with the script included in the Spark 2.4 distribution. I have created a service account for Spark to ensure that it has proper permissions to create pods etc., which I checked using kubectl auth can-i create pods --as=system:serviceaccount:default:spark When I try to run the SparkPi example using the above command, I get the following output: 2018-12-12 06:26:15 WARN Utils:66 - Your hostname, docker-test resolves to a loopback address: 127.0.1.1; using 10.46.0.6 instead (on interface eth0) 2018-12-12 06:26:15 WARN Utils:66 - Set SPARK_LOCAL_IP if you need to bind to another address 2018-12-12 06:26:19 INFO LoggingPodStatusWatcherImpl:54 - State changed, new state: pod name: spark-pi-1544595975520-driver namespace: default labels: spark-app-selector -> spark-ec5eb54644d348e7a213f8178b8ef61f, spark-role -> driver pod uid: d5d6bdc7-fdd6-11e8-b666-8e815d3815b2 creation time: 2018-12-12T06:26:18Z service account name: spark volumes: spark-local-dir-1, spark-conf-volume, spark-token-qf9dt node name: N/A start time: N/A container images: N/A phase: Pending status: [] 2018-12-12 06:26:19 INFO LoggingPodStatusWatcherImpl:54 - State changed, new state: pod name: spark-pi-1544595975520-driver namespace: default labels: spark-app-selector -> spark-ec5eb54644d348e7a213f8178b8ef61f, spark-role -> driver pod uid: d5d6bdc7-fdd6-11e8-b666-8e815d3815b2 creation time: 2018-12-12T06:26:18Z service account name: spark volumes: spark-local-dir-1, spark-conf-volume, spark-token-qf9dt node name: flamboyant-darwin-3rhc start time: N/A container images: N/A phase: Pending status: [] 2018-12-12 06:26:19 INFO LoggingPodStatusWatcherImpl:54 - State changed, new state: pod name: spark-pi-1544595975520-driver namespace: default labels: spark-app-selector -> spark-ec5eb54644d348e7a213f8178b8ef61f, spark-role -> driver pod uid: d5d6bdc7-fdd6-11e8-b666-8e815d3815b2 creation time: 2018-12-12T06:26:18Z service account name: spark volumes: spark-local-dir-1, spark-conf-volume, spark-token-qf9dt node name: flamboyant-darwin-3rhc start time: 2018-12-12T06:26:18Z container images: docker.io/stevenstetzler/spark:v1 phase: Pending status: [ContainerStatus(containerID=null, image= docker.io/stevenstetzler/spark:v1, imageID=, lastState=ContainerState(running=null, terminated=null, waiting=null, additionalProperties={}), name=spark-kubernetes-driver, ready=false, restartCount=0, state=ContainerState(running=null, terminated=null, waiting=ContainerStateWaiting(message=null, reason=ContainerCreating, additionalProperties={}), additionalProperties={}), additionalProperties={})] 2018-12-12 06:26:19 INFO Client:54 - Waiting for application spark-pi to finish... 2018-12-12 06:26:21 INFO LoggingPodStatusWatcherImpl:54 - State changed, new state: pod name: spark-pi-1544595975520-driver namespace: default labels: spark-app-selector -> spark-ec5eb54644d348e7a213f8178b8ef61f, spark-role -> driver pod uid: d5d6bdc7-fdd6-11e8-b666-8e815d3815b2 creation time: 2018-12-12T06:26:18Z service account name: spark volumes: spark-local-dir-1, spark-conf-volume, spark-token-qf9dt node name: flamboyant-darwin-3rhc start time: 2018-12-12T06:26:18Z container images: stevenstetzler/spark:v1 phase: Running status: [ContainerStatus(containerID=docker://b923c6ff02b93557c8c104c01a4eeb1c05f3d0c0123ec4e5895bfd6be398a03a, image=stevenstetzler/spark:v1, imageID=docker-pullable://stevenstetzler/spark@sha256:dc4bce1e410ebd7b14a88caa46a4282a61ff058c6374b7cf721b7498829bb041, lastState=ContainerState(running=null, terminated=null, waiting=null, additionalProperties={}), name=spark-kubernetes-driver, ready=true, restartCount=0, state=ContainerState(running=ContainerStateRunning(startedAt=Time(time=2018-12-12T06:26:21Z, additionalProperties={}), additionalProperties={}), terminated=null, waiting=null, additionalProperties={}), additionalProperties={})] 2018-12-12 06:26:24 INFO LoggingPodStatusWatcherImpl:54 - State changed, new state: pod name: spark-pi-1544595975520-driver namespace: default labels: spark-app-selector -> spark-ec5eb54644d348e7a213f8178b8ef61f, spark-role -> driver pod uid: d5d6bdc7-fdd6-11e8-b666-8e815d3815b2 creation time: 2018-12-12T06:26:18Z service account name: spark volumes: spark-local-dir-1, spark-conf-volume, spark-token-qf9dt node name: flamboyant-darwin-3rhc start time: 2018-12-12T06:26:18Z container images: stevenstetzler/spark:v1 phase: Failed status: [ContainerStatus(containerID=docker://b923c6ff02b93557c8c104c01a4eeb1c05f3d0c0123ec4e5895bfd6be398a03a, image=stevenstetzler/spark:v1, imageID=docker-pullable://stevenstetzler/spark@sha256:dc4bce1e410ebd7b14a88caa46a4282a61ff058c6374b7cf721b7498829bb041, lastState=ContainerState(running=null, terminated=null, waiting=null, additionalProperties={}), name=spark-kubernetes-driver, ready=false, restartCount=0, state=ContainerState(running=null, terminated=ContainerStateTerminated(containerID=docker://b923c6ff02b93557c8c104c01a4eeb1c05f3d0c0123ec4e5895bfd6be398a03a, exitCode=1, finishedAt=Time(time=2018-12-12T06:26:24Z, additionalProperties={}), message=null, reason=Error, signal=null, startedAt=Time(time=2018-12-12T06:26:21Z, additionalProperties={}), additionalProperties={}), waiting=null, additionalProperties={}), additionalProperties={})] 2018-12-12 06:26:24 INFO LoggingPodStatusWatcherImpl:54 - Container final statuses: Container name: spark-kubernetes-driver Container image: stevenstetzler/spark:v1 Container state: Terminated Exit code: 1 2018-12-12 06:26:24 INFO Client:54 - Application spark-pi finished. 2018-12-12 06:26:24 INFO ShutdownHookManager:54 - Shutdown hook called 2018-12-12 06:26:24 INFO ShutdownHookManager:54 - Deleting directory /tmp/spark-ca66ad4b-6526-4053-9ae3-f9ceb2e41cfd When I check the logs with kubectl logs spark-pi-1544595975520-driver I get the following: ++ id -u + myuid=0 ++ id -g + mygid=0 + set +e ++ getent passwd 0 + uidentry=root:x:0:0:root:/root:/bin/ash + set -e + '[' -z root:x:0:0:root:/root:/bin/ash ']' + SPARK_K8S_CMD=driver + case "$SPARK_K8S_CMD" in + shift 1 + SPARK_CLASSPATH=':/opt/spark/jars/*' + env + grep SPARK_JAVA_OPT_ + sed 's/[^=]*=\(.*\)/\1/g' + sort -t_ -k4 -n + readarray -t SPARK_EXECUTOR_JAVA_OPTS + '[' -n '' ']' + '[' -n '' ']' + PYSPARK_ARGS= + '[' -n '' ']' + R_ARGS= + '[' -n '' ']' + '[' '' == 2 ']' + '[' '' == 3 ']' + case "$SPARK_K8S_CMD" in + CMD=("$SPARK_HOME/bin/spark-submit" --conf "spark.driver.bindAddress=$SPARK_DRIVER_BIND_ADDRESS" --deploy-mode client "$@") + exec /sbin/tini -s -- /opt/spark/bin/spark-submit --conf spark.driver.bindAddress=10.244.96.3 --deploy-mode client --properties-file /opt/spark/conf/spark.properties --class org.apache.spark.examples.SparkPi spark-internal 2018-12-12 06:26:22 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 2018-12-12 06:26:22 INFO SparkContext:54 - Running Spark version 2.4.0 2018-12-12 06:26:22 INFO SparkContext:54 - Submitted application: Spark Pi 2018-12-12 06:26:22 INFO SecurityManager:54 - Changing view acls to: root 2018-12-12 06:26:22 INFO SecurityManager:54 - Changing modify acls to: root 2018-12-12 06:26:22 INFO SecurityManager:54 - Changing view acls groups to: 2018-12-12 06:26:22 INFO SecurityManager:54 - Changing modify acls groups to: 2018-12-12 06:26:22 INFO SecurityManager:54 - SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(root); groups with view permissions: Set(); users with modify permissions: Set(root); groups with modify permissions: Set() 2018-12-12 06:26:23 INFO Utils:54 - Successfully started service 'sparkDriver' on port 7078. 2018-12-12 06:26:23 INFO SparkEnv:54 - Registering MapOutputTracker 2018-12-12 06:26:23 INFO SparkEnv:54 - Registering BlockManagerMaster 2018-12-12 06:26:23 INFO BlockManagerMasterEndpoint:54 - Using org.apache.spark.storage.DefaultTopologyMapper for getting topology information 2018-12-12 06:26:23 INFO BlockManagerMasterEndpoint:54 - BlockManagerMasterEndpoint up 2018-12-12 06:26:23 INFO DiskBlockManager:54 - Created local directory at /var/data/spark-c306f3bc-cc7c-4090-a7f7-22fbc02b72bd/blockmgr-63358d1a-1e7e-493e-accd-7992da9b0adf 2018-12-12 06:26:23 INFO MemoryStore:54 - MemoryStore started with capacity 413.9 MB 2018-12-12 06:26:23 INFO SparkEnv:54 - Registering OutputCommitCoordinator 2018-12-12 06:26:23 INFO log:192 - Logging initialized @2059ms 2018-12-12 06:26:23 INFO Server:351 - jetty-9.3.z-SNAPSHOT, build timestamp: unknown, git hash: unknown 2018-12-12 06:26:23 INFO Server:419 - Started @2155ms 2018-12-12 06:26:23 INFO AbstractConnector:278 - Started ServerConnector@7180e701{HTTP/1.1,[http/1.1]}{0.0.0.0:4040} 2018-12-12 06:26:23 INFO Utils:54 - Successfully started service 'SparkUI' on port 4040. 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@9f6e406{/jobs,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@3a60c416{/jobs/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@60f2e0bd{/jobs/job,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@6b410923 {/jobs/job/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@57bd2029{/stages,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@203dd56b{/stages/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@e8fadb0{/stages/stage,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@1d3e6d34 {/stages/stage/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@6eafb10e{/stages/pool,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@26a94fa5 {/stages/pool/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@464a4442{/storage,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@2873d672{/storage/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@3bc735b3{/storage/rdd,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@577f9109 {/storage/rdd/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@4303b7f0{/environment,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@757529a4 {/environment/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@779de014{/executors,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@5c41d037 {/executors/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@2234078 {/executors/threadDump,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@5ec77191 {/executors/threadDump/json,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@4642b71d{/static,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@7ed9ae94{/,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@66908383{/api,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@534ca02b {/jobs/job/kill,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO ContextHandler:781 - Started o.s.j.s.ServletContextHandler@29a23c3d {/stages/stage/kill,null,AVAILABLE,@Spark} 2018-12-12 06:26:23 INFO SparkUI:54 - Bound SparkUI to 0.0.0.0, and started at http://spark-pi-1544595975520-driver-svc.default.svc:4040 2018-12-12 06:26:23 INFO SparkContext:54 - Added JAR file:///opt/spark/examples/jars/spark-examples_2.11-2.4.0.jar at spark://spark-pi-1544595975520-driver-svc.default.svc:7078/jars/spark-examples_2.11-2.4.0.jar with timestamp 1544595983645 2018-12-12 06:26:23 ERROR SparkContext:91 - Error initializing SparkContext. org.apache.spark.SparkException: External scheduler cannot be instantiated at org.apache.spark.SparkContext$.org$apache$spark$SparkContext$$createTaskScheduler(SparkContext.scala:2794) at org.apache.spark.SparkContext.<init>(SparkContext.scala:493) at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2520) at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:935) at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:926) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:926) at org.apache.spark.examples.SparkPi$.main(SparkPi.scala:31) at org.apache.spark.examples.SparkPi.main(SparkPi.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) at org.apache.spark.deploy.SparkSubmit.org $apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:849) at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:167) at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:195) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) Caused by: io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred. at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:62) at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:53) at io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:167) at org.apache.spark.deploy.k8s.SparkKubernetesClientFactory$.createKubernetesClient(SparkKubernetesClientFactory.scala:84) at org.apache.spark.scheduler.cluster.k8s.KubernetesClusterManager.createSchedulerBackend(KubernetesClusterManager.scala:64) at org.apache.spark.SparkContext$.org$apache$spark$SparkContext$$createTaskScheduler(SparkContext.scala:2788) ... 20 more Caused by: java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:110) at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339) at io.fabric8.kubernetes.client.internal.CertUtils.createTrustStore(CertUtils.java:93) at io.fabric8.kubernetes.client.internal.CertUtils.createTrustStore(CertUtils.java:71) at io.fabric8.kubernetes.client.internal.SSLUtils.trustManagers(SSLUtils.java:114) at io.fabric8.kubernetes.client.internal.SSLUtils.trustManagers(SSLUtils.java:93) at io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:63) ... 23 more Caused by: java.io.IOException: Empty input at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:106) ... 29 more 2018-12-12 06:26:23 INFO AbstractConnector:318 - Stopped Spark@7180e701 {HTTP/1.1,[http/1.1]}{0.0.0.0:4040} 2018-12-12 06:26:23 INFO SparkUI:54 - Stopped Spark web UI at http://spark-pi-1544595975520-driver-svc.default.svc:4040 2018-12-12 06:26:23 INFO MapOutputTrackerMasterEndpoint:54 - MapOutputTrackerMasterEndpoint stopped! 2018-12-12 06:26:23 INFO MemoryStore:54 - MemoryStore cleared 2018-12-12 06:26:23 INFO BlockManager:54 - BlockManager stopped 2018-12-12 06:26:23 INFO BlockManagerMaster:54 - BlockManagerMaster stopped 2018-12-12 06:26:23 WARN MetricsSystem:66 - Stopping a MetricsSystem that is not running 2018-12-12 06:26:23 INFO OutputCommitCoordinator$OutputCommitCoordinatorEndpoint:54 - OutputCommitCoordinator stopped! 2018-12-12 06:26:23 INFO SparkContext:54 - Successfully stopped SparkContext Exception in thread "main" org.apache.spark.SparkException: External scheduler cannot be instantiated at org.apache.spark.SparkContext$.org$apache$spark$SparkContext$$createTaskScheduler(SparkContext.scala:2794) at org.apache.spark.SparkContext.<init>(SparkContext.scala:493) at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2520) at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:935) at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:926) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:926) at org.apache.spark.examples.SparkPi$.main(SparkPi.scala:31) at org.apache.spark.examples.SparkPi.main(SparkPi.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) at org.apache.spark.deploy.SparkSubmit.org $apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:849) at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:167) at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:195) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) Caused by: io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred. at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:62) at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:53) at io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:167) at org.apache.spark.deploy.k8s.SparkKubernetesClientFactory$.createKubernetesClient(SparkKubernetesClientFactory.scala:84) at org.apache.spark.scheduler.cluster.k8s.KubernetesClusterManager.createSchedulerBackend(KubernetesClusterManager.scala:64) at org.apache.spark.SparkContext$.org$apache$spark$SparkContext$$createTaskScheduler(SparkContext.scala:2788) ... 20 more Caused by: java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:110) at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339) at io.fabric8.kubernetes.client.internal.CertUtils.createTrustStore(CertUtils.java:93) at io.fabric8.kubernetes.client.internal.CertUtils.createTrustStore(CertUtils.java:71) at io.fabric8.kubernetes.client.internal.SSLUtils.trustManagers(SSLUtils.java:114) at io.fabric8.kubernetes.client.internal.SSLUtils.trustManagers(SSLUtils.java:93) at io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:63) ... 23 more Caused by: java.io.IOException: Empty input at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:106) ... 29 more 2018-12-12 06:26:23 INFO ShutdownHookManager:54 - Shutdown hook called 2018-12-12 06:26:23 INFO ShutdownHookManager:54 - Deleting directory /var/data/spark-c306f3bc-cc7c-4090-a7f7-22fbc02b72bd/spark-157bde7a-d0e1-4092-9e39-5ab2b727e3e7 2018-12-12 06:26:23 INFO ShutdownHookManager:54 - Deleting directory /tmp/spark-07910ccb-c212-4622-9c1b-3e8b772f3faa It looks to me like there is a communication / authentication issue during pod creation, and it looks like there might be a certificate missing that Spark needs to communicate with Kubernetes, which I infer from the "java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input" error message. Any ideas on what I can do to resolve this? Thanks!