簡體   English   中英

來自服務器的錯誤(BadRequest):pod“test-run-spark”中的容器“spark-kubernetes-driver”正在等待啟動:嘗試提取圖像但失敗

[英]Error from server (BadRequest): container "spark-kubernetes-driver" in pod "test-run-spark" is waiting to start: trying and failing to pull image

mac os 中的 minikube 無法從 docker 存儲庫中提取 docker 圖像。

嘗試在 k8s 上運行 spark

spark-submit --master k8s://https://ip:port --deploy-mode cluster --name test-run-spark --conf spark.kubernetes.container.image=Docker-image --conf spark.kubernetes.driver.container.image=docker4tg/Docker-image --conf spark.kubernetes.executor.container.image=docker4tg/Docker-image --conf spark.kubernetes.driver.pod.name=test-run-spark --class [class] --num-executors 1 --executor-memory 512m --driver-memory 512m --driver-cores 2 --executor-cores 2 --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark local:///[jar].jar

使用相同的 docker 圖像,我可以將 docker 圖像拉到我的本地。 但是 k8s pod 不能,但是這里是緩存。 只有幾個相同圖像的標簽,我向上或向下移動 mkdir 命令以更改 hash,工作。 我沒有進行邏輯更改,但它適用於 3 到 4 個標簽,並且 spplication 運行成功。 我無法理解這一點。

請幫我找出問題所在。

Dockerfile


FROM ubuntu:18.04
ARG SPARKVERSION=tmpsVersion
ARG HADOOPVERSION=tmpHVersion
ENV SPARK_VERSION=$SPARKVERSION
ENV HADOOP_VERSION=$HADOOPVERSION
RUN sed -i s/http/ftp/ /etc/apt/sources.list && apt-get update -y
RUN apt-get install wget -y
RUN apt-get install openjdk-8-jdk -y
RUN sed -i s/http/ftp/ /etc/apt/sources.list && apt-get update -y
RUN mkdir -p /opt/spark/work-dir
WORKDIR /opt/spark/work-dir
RUN wget -O spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz  https://archive.apache.org/dist/spark/spark-${SPARK_VERSION}/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz
RUN tar -xzvf spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz -C /opt/spark/
RUN rm -rf spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz
RUN mv -f /opt/spark/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}/* /opt/spark/
RUN rm -rf /opt/spark/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}
ENV SPARK_HOME=/opt/spark
ENV PATH="${SPARK_HOME}/bin:${PATH}"
RUN mkdir -p /opt/spark/data-jars/
COPY [jar.jar] /opt/spark/data-jars/
ENTRYPOINT [ "/opt/spark/kubernetes/dockerfiles/spark/entrypoint.sh" ]

錯誤:

kubectl get pods; kubectl logs test-run-spark
NAME             READY   STATUS             RESTARTS   AGE
test-run-spark   0/1     ImagePullBackOff   0          2m36s
Error from server (BadRequest): container "spark-kubernetes-driver" in pod "test-run-spark" is waiting to start: trying and failing to pull image

請幫我解決這些問題

你的minikube環境與你的主機是隔離的,所以如果你的主機上已經有鏡像或者你可以拉取它,這並不意味着你可以在minikube中做同樣的事情。

如果你想在minikube上下文中構建鏡像:

# export minikube docker config
eval $(minikube docker-env)
# build your image directly in minikube
docker build 

如果您在本地有圖像,您可以通過以下方式將其加載到minikube

minikube image load IMAGE_NAME

如果您想讓minikube從私有遠程注冊表(例如:dockerhub)中提取圖像,您可以按照這些說明將注冊表憑據添加到您的minikube中。

暫無
暫無

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

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