在Kubernetes上启动Spark 3.0——错误提取图像



我正试图按照官方网站上的说明在Kubernetes上启动spark:Spark Kubernetes。我按照说明使用他们提供的脚本创建了一个图像,如下所示:

./bin/docker-image-tool.sh -r <repo> -t my-tag -p ./kubernetes/dockerfiles/spark/bindings/python/Dockerfile build

对于<repo>,我使用了pyspark。我为Kubernetes提交的spark如下:

./bin/spark-submit 
--master k8s://https://<ipaddress>:<port>
--deploy-mode cluster 
--name spark-pi 
--class org.apache.spark.examples.SparkPi 
--conf spark.executor.instances=5 
--conf spark.kubernetes.container.image=pyspark/spark-py:my-tag 
--conf spark.kubernetes.file.upload.path=/usr/local/spark/examples 
local:///usr/local/spark/examples/spark-examples_2.12-3.0.0.jar

kubernetes的设置看起来还可以,但是pod获取的图像出现问题,导致重新启动。我不确定我对这张照片的命名是否正确。

该示例使用pyspark/spark py:my标记作为应该存在的容器映像,由于不存在,您将得到作为image Pull error的错误。您可以将您的映像推送到dockerhub或您的私人注册表,并将其用作example.com/repo/spark:v1.0.0,其中example.com是您的私人注册中心,repo是您在那里的存储库。

此外,当您运行./bin/docker-image-tool.sh -r <repo> -t my-tag build时,您需要指定一个repo。你的命令应该像./bin/docker-image-tool.sh -r docker.io/myrepo -t v2.3.0 -p kubernetes/dockerfiles/spark/bindings/python/Dockerfile build

如果您使用的是minikube,那么构建镜像将直接进入minikube的Docker守护进程。没有必要将图像推送到minikube中。在这种情况下,当在minikube集群内运行应用程序时,它们将自动可用。

最新更新