kubernetes 使用 docker 本地映像创建部署 - 映像拉取失败
kubernetes create deployment using docker local image - image pull failed
我尝试使用本地 docker 映像和 docker 集线器使用 minikube 部署 kubernetes。但是两者都不起作用。
方法一:
使用保存并加载 tar 文件,创建了图像,它可供 kubectl 使用。
root@arun-desktop-e470:/var/local/dprojects/elasticsearch# kubectl get pods --all-namespaces -o jsonpath="{..image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c|grep elk
2 elk/elasticsearch:latest
执行以下命令创建部署:
kubectl run elastic --image=elk/elasticsearch:latest --port=9200
kubectl expose deployment elastic --target-port=9200 --type=NodePort
minikube service elastic --url
来自 kubectl describe pod 命令,
Warning Failed 122m (x4 over 124m) kubelet, minikube Failed to pull image "elk/elasticsearch:latest": rpc error: code = Unknown desc = Error response from daemon: pull access denied for elk/elasticsearch, repository does not exist or may require 'docker login'
方法二:
我确实将图像推送到我的 docker 集线器存储库 (https://hub.docker.com/r/get2arun/elk/tags),然后登录到终端中的 docker 集线器并再次创建部署。
推送到 docker 中心,如下所示,因此我有权将图像推送和拉到我的 docker 中心帐户。我检查了管理存储库下的 "collaborators",它有我的 docker 集线器 ID。
root@arun-desktop-e470:~# docker push get2arun/elk:elasticsearch_v1
The push refers to repository [docker.io/get2arun/elk]
19b7091eba36: Layer already exists
237c06a69e1c: Layer already exists
c84fa0f11212: Layer already exists
6ca6c301e2ab: Layer already exists
76dd25653d9b: Layer already exists
602956e7a499: Layer already exists
bde76be259f3: Layer already exists
2333287a7524: Layer already exists
d108ac3bd6ab: Layer already exists
elasticsearch_v1: digest: sha256:6f0b981b5dedfbe3f8e0291dc17fc09d32739ec3e0dab6195190ab0cc3071821 size: 2214
kubectl 运行 elasticsearch-v2 --image=get2arun/elk:elasticsearch_v1 --port=9200
来自 kubectl describe pods 命令:
Normal BackOff 21s kubelet, minikube Back-off pulling image "get2arun/elk:elasticsearch_v1"
Warning Failed 21s kubelet, minikube Error: ImagePullBackOff
Normal Pulling 7s (x2 over 24s) kubelet, minikube Pulling image "get2arun/elk:elasticsearch_v1"
Warning Failed 4s (x2 over 21s) kubelet, minikube Failed to pull image "get2arun/elk:elasticsearch_v1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for get2arun/elk, repository does not exist or may require 'docker login'
我删除了代理设置并尝试打开 wifi 帐户,但仍然看到权限被拒绝。
此错误消息不足以确定问题所在,希望应该有某种方法来缩小此类问题的范围。
- 当 Kubernetes 被要求使用
本地 docker 图像或从 docker 集线器中拉取图像?
- 部署完成后如何获取所有日志信息tar?
- 日志的其他来源是什么
方法一中,由于镜像没有推送到仓库,需要使用imagePullPolicy
切勿尝试拉取图像
imagePullPolicy: Never
尝试拉取镜像,如果不存在
imagePullPolicy: IfNotPresent
如果你想使用本地图像/存储库,我认为 IfNotPresent 是理想的。根据您的要求使用。
kubectl
kubectl run elastic --image=elk/elasticsearch:latest --port=9200 --image-pull-policy IfNotPresent
我尝试使用本地 docker 映像和 docker 集线器使用 minikube 部署 kubernetes。但是两者都不起作用。
方法一: 使用保存并加载 tar 文件,创建了图像,它可供 kubectl 使用。
root@arun-desktop-e470:/var/local/dprojects/elasticsearch# kubectl get pods --all-namespaces -o jsonpath="{..image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c|grep elk
2 elk/elasticsearch:latest
执行以下命令创建部署:
kubectl run elastic --image=elk/elasticsearch:latest --port=9200
kubectl expose deployment elastic --target-port=9200 --type=NodePort
minikube service elastic --url
来自 kubectl describe pod 命令,
Warning Failed 122m (x4 over 124m) kubelet, minikube Failed to pull image "elk/elasticsearch:latest": rpc error: code = Unknown desc = Error response from daemon: pull access denied for elk/elasticsearch, repository does not exist or may require 'docker login'
方法二: 我确实将图像推送到我的 docker 集线器存储库 (https://hub.docker.com/r/get2arun/elk/tags),然后登录到终端中的 docker 集线器并再次创建部署。
推送到 docker 中心,如下所示,因此我有权将图像推送和拉到我的 docker 中心帐户。我检查了管理存储库下的 "collaborators",它有我的 docker 集线器 ID。
root@arun-desktop-e470:~# docker push get2arun/elk:elasticsearch_v1
The push refers to repository [docker.io/get2arun/elk]
19b7091eba36: Layer already exists
237c06a69e1c: Layer already exists
c84fa0f11212: Layer already exists
6ca6c301e2ab: Layer already exists
76dd25653d9b: Layer already exists
602956e7a499: Layer already exists
bde76be259f3: Layer already exists
2333287a7524: Layer already exists
d108ac3bd6ab: Layer already exists
elasticsearch_v1: digest: sha256:6f0b981b5dedfbe3f8e0291dc17fc09d32739ec3e0dab6195190ab0cc3071821 size: 2214
kubectl 运行 elasticsearch-v2 --image=get2arun/elk:elasticsearch_v1 --port=9200
来自 kubectl describe pods 命令:
Normal BackOff 21s kubelet, minikube Back-off pulling image "get2arun/elk:elasticsearch_v1"
Warning Failed 21s kubelet, minikube Error: ImagePullBackOff
Normal Pulling 7s (x2 over 24s) kubelet, minikube Pulling image "get2arun/elk:elasticsearch_v1"
Warning Failed 4s (x2 over 21s) kubelet, minikube Failed to pull image "get2arun/elk:elasticsearch_v1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for get2arun/elk, repository does not exist or may require 'docker login'
我删除了代理设置并尝试打开 wifi 帐户,但仍然看到权限被拒绝。
此错误消息不足以确定问题所在,希望应该有某种方法来缩小此类问题的范围。
- 当 Kubernetes 被要求使用 本地 docker 图像或从 docker 集线器中拉取图像?
- 部署完成后如何获取所有日志信息tar?
- 日志的其他来源是什么
方法一中,由于镜像没有推送到仓库,需要使用imagePullPolicy
切勿尝试拉取图像
imagePullPolicy: Never
尝试拉取镜像,如果不存在
imagePullPolicy: IfNotPresent
如果你想使用本地图像/存储库,我认为 IfNotPresent 是理想的。根据您的要求使用。
kubectl
kubectl run elastic --image=elk/elasticsearch:latest --port=9200 --image-pull-policy IfNotPresent