gpt4 book ai didi

docker - Kind kubernetes 集群拉取 docker 镜像失败

转载 作者:行者123 更新时间:2023-12-02 11:59:59 35 4
gpt4 key购买 nike

我尝试使用 KinD作为 Minikube 的替代方案,在我的本地机器上引导 K8S 集群。
集群创建成功。
但是当我尝试从图像创建一些 pod/部署时,它失败了。

$ kubectl run nginx --image=nginx
$ kubectl run hello --image=hello-world
几分钟后,使用 get pods获得失败状态。
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
hello 0/1 ImagePullBackOff 0 11m
nginx 0/1 ImagePullBackOff 0 22m
恐怕这是中国的另一个全局防火墙问题。
kubectl describe pods/nginx
Name: nginx
Namespace: default
Priority: 0
Node: dev-control-plane/172.19.0.2
Start Time: Sun, 30 Aug 2020 19:46:06 +0800
Labels: run=nginx
Annotations: <none>
Status: Pending
IP: 10.244.0.5
IPs:
IP: 10.244.0.5
Containers:
nginx:
Container ID:
Image: nginx
Image ID:
Port: <none>
Host Port: <none>
State: Waiting
Reason: ErrImagePull
Ready: False
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-mgq96 (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
default-token-mgq96:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-mgq96
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 56m default-scheduler Successfully assigned default/nginx to dev-control-plane
Normal BackOff 40m kubelet, dev-control-plane Back-off pulling image "nginx"
Warning Failed 40m kubelet, dev-control-plane Error: ImagePullBackOff
Warning Failed 13m (x3 over 40m) kubelet, dev-control-plane Failed to pull image "nginx": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/library/nginx:latest": failed to copy: unexpected EOF
Warning Failed 13m (x3 over 40m) kubelet, dev-control-plane Error: ErrImagePull
Normal Pulling 13m (x4 over 56m) kubelet, dev-control-plane Pulling image "nginx"
当我进入 kindest/node 容器时,但里面没有 docker。 不知道 KIND 是如何工作的 ,最初我理解它是将 K8S 集群部署到 Docker 容器中。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a644f8b61314 kindest/node:v1.19.0 "/usr/local/bin/entr…" About an hour ago Up About an hour 127.0.0.1:52301->6443/tcp dev-control-plane

$ docker exec -it a644f8b61314 /bin/bash
root@dev-control-plane:/# docker -v
bash: docker: command not found
阅读 Kind 文档后,我找不到像在 Minikube 中那样设置存储库镜像的选项。
顺便说一句,我在 Windows 10 上使用最新的 Docker Desktop 测试版。

最佳答案

首先使用 docker pull nginx 在本地系统中拉取图像然后使用下面的命令将该图像加载到 kind 集群

kind load docker-image nginx --name kind-cluster-name 
实物使用 containerd而不是 docker 作为运行时,这就是为什么 docker 没有安装在节点上。
或者,您可以使用 crictl用于拉取和检查 kind 节点内的图像的工具。
crictl pull nginx
crictl images

关于docker - Kind kubernetes 集群拉取 docker 镜像失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63657414/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com