【发布时间】:2018-11-14 06:07:04
【问题描述】:
我有 3 个节点 [主机 a,主机 b,主机 c] kubernetes 集群(版本 1.12.2)。我正在尝试运行 kubernetes document 中提到的 spark-pi 示例 jar。
主机a是我的kubernetes Master。 >> kubectl get nodees 列出所有三个节点。
我已经使用 spark 2.3.0 二进制文件夹中提供的内容构建了 spark docker 映像。
>> sudo ./bin/docker-image-tool.sh -r docker.io/spark/spark -t spark230 build
我收到了图像构建成功的消息。
>> docker images ls
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/spark/spark spark230 6a2b645d7efe About an hour ago 346 MB
docker.io/weaveworks/weave-npc 2.5.0 d499500e93d3 7 days ago 49.5 MB
docker.io/weaveworks/weave-kube 2.5.0 a5103f96993a 7 days ago 148 MB
docker.io/openjdk 8-alpine 97bc1352afde 2 weeks ago 103 MB
k8s.gcr.io/kube-proxy v1.12.2 15e9da1ca195 2 weeks ago 96.5 MB
k8s.gcr.io/kube-apiserver v1.12.2 51a9c329b7c5 2 weeks ago 194 MB
k8s.gcr.io/kube-controller-manager v1.12.2 15548c720a70 2 weeks ago 164 MB
k8s.gcr.io/kube-scheduler v1.12.2 d6d57c76136c 2 weeks ago 58.3 MB
k8s.gcr.io/etcd 3.2.24 3cab8e1b9802 7 weeks ago 220 MB
k8s.gcr.io/coredns 1.2.2 367cdc8433a4 2 months ago 39.2 MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 10 months ago 742 kB
> ./bin/spark-submit
--master k8s://https://<api-server>:<api
> server port> --deploy-mode cluster --name spark-pi
> --class org.apache.spark.examples.SparkPi --conf spark.executor.instances=5 --conf
> spark.kubernetes.container.image=spark/spark:spark230 --conf
> spark.kubernetes.authenticate.driver.serviceAccountName=spark
> local:///opt/spark/examples/jars/spark-examples_2.11-2.3.0.jar
当我提交上述命令时,它有时会给出正确的输出。其他时候它会抛出错误。
> code = Unknown desc = repository docker.io/spark/spark not found:
does not exist or no pull access, reason=ErrImagePull
当我进一步调试它时,它看起来像,每当节点名称:主机 b 或主机 c 时,它都会抛出错误消息。
当 node name : host a 时,它运行良好。看起来其他节点无法找到图像。
问题:
- 我应该在所有节点上安装 spark 并在所有节点上构建 docker 映像吗?
- 是否可以将图像引用从单个节点 [host a] 传递到其他节点?即如何让其他节点从主机 a 引用相同的图像。
【问题讨论】:
标签: docker apache-spark kubernetes