簡體   English   中英

kubernetes無法從Spark Master主機提取圖像

[英]kubernetes not able to pull image from spark master host

我有3個節點[主機a,主機b,主機c] kubernetes集群(版本1.12.2)。 我正在嘗試運行kubernetes文檔中提到的spark-pi示例jar。

主持人是我的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

當我進一步調試它時,它看起來就像每當節點名稱:host b或host c拋出上面的錯誤消息時一樣。

當節點名稱:host a時,它可以正常運行。 看起來其他節點無法找到圖像。

問題:

  1. 我應該在所有節點上安裝spark並在所有節點上構建docker映像嗎?
  2. 是否可以將圖像參考從單個節點[主機a]傳遞到其他節點? 即如何使其他節點從主機a引用相同的圖像。

您始終可以將docker映像另存為tar文件,然后將該tar文件復制到其他主機並在其中加載該映像。

要將Docker映像另存為tar文件:

sudo docker save -o <path for generated tar file> <image name>

現在,使用scp或某些其他復制工具將tar文件復制到其他主機。 並使用以下命令加載docker映像:

sudo docker load -i <path to image tar file>

希望這可以幫助

是的,您需要在所有節點中構建Spark映像。 您可以編寫包裝器腳本以在所有節點上調用“ rebuild-image.sh”,如下所示:

for h in hostnames; do
    rsync -av /opt/spark ${h}:/opt
    ssh ${h} /opt/spark/rebuild-image.sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM