如何从本地 docker 图像启动新的 k8s pod?
How to start new k8s pod from LOCAL docker image?
我正在学习docker和k8s。现在我在 MAC Mojave 上有以下本地 docker 图片:
请注意,由于某些原因我无法连接 "gcr.io",因此我在 gitHub:
中创建了一个 docker 文件
从 gcr.io/google_containers/pause-amd64:3.0
然后我利用 "hub.docker.com" 基于 gitHub docker 文件创建自动构建:
然后我运行docker拉和docker标签,所以这就是为什么是 docker 图像之后的 gcr.io 图像。
我安装了 minikube 版本:0.25.0,并使用 yaml(kubectl) 创建了一个 pod。 运行 kubectl get pods,pod 状态卡在 "ContainerCreating"。然后 运行 minikube logs, 显示 failed pulling image "gcr.io/google_containers/pause-amd64:3.0:
我在这里很困惑:
我已经有 gcr.io/google_containers/pause-amd64 的本地图像,为什么 k8s 仍然尝试连接 gcr.io 而不是本地图像?如何让 k8s 从本地抓取该图像?
可能与imagePullPolicy有关,尽量指定imagePullPolicy:Never否则本地图片将无法使用。另外,你可以看看这个 tutorial
最后,我解决了这个问题:
- 运行 "minikube ssh"
- docker 登录 docker 中心
- docker 将 pause-amd64:3.0 拉入 docker 集线器
- docker 标记为 "gcr.io/google_containers/pause-amd64:3.0"
现在 pod 状态是 "Running":)
所以原因是 minikube 在节点上利用了 docker 而不是主机的 docker...
我正在学习docker和k8s。现在我在 MAC Mojave 上有以下本地 docker 图片:
请注意,由于某些原因我无法连接 "gcr.io",因此我在 gitHub:
中创建了一个 docker 文件
从 gcr.io/google_containers/pause-amd64:3.0
然后我利用 "hub.docker.com" 基于 gitHub docker 文件创建自动构建:
然后我运行docker拉和docker标签,所以这就是为什么是 docker 图像之后的 gcr.io 图像。
我安装了 minikube 版本:0.25.0,并使用 yaml(kubectl) 创建了一个 pod。 运行 kubectl get pods,pod 状态卡在 "ContainerCreating"。然后 运行 minikube logs, 显示 failed pulling image "gcr.io/google_containers/pause-amd64:3.0:
我在这里很困惑: 我已经有 gcr.io/google_containers/pause-amd64 的本地图像,为什么 k8s 仍然尝试连接 gcr.io 而不是本地图像?如何让 k8s 从本地抓取该图像?
可能与imagePullPolicy有关,尽量指定imagePullPolicy:Never否则本地图片将无法使用。另外,你可以看看这个 tutorial
最后,我解决了这个问题:
- 运行 "minikube ssh"
- docker 登录 docker 中心
- docker 将 pause-amd64:3.0 拉入 docker 集线器
- docker 标记为 "gcr.io/google_containers/pause-amd64:3.0"
现在 pod 状态是 "Running":) 所以原因是 minikube 在节点上利用了 docker 而不是主机的 docker...