我正在使用支持Kubernetes的Docker for Mac,并且我很难创建引用本地构建镜像的Kubernetes部署。
docker images
的输出:
REPOSITORY TAG IMAGE
test latest 2c3bdb36a5ed
我的deployment.yaml文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-deployment
spec:
selector:
matchLabels:
app: helloworld
replicas: 1
template:
metadata:
labels:
app: helloworld
spec:
containers:
- name: aaa
image: test:latest
ports:
- containerPort: 8080
当我运行kubectl apply -f deplyment.yaml
命令时,将创建Pods,但是:
运行kubectl apply -f deplyment.yaml
命令后,会创建Pods,但存在问题:
helloworld-deployment-764b8b85d8-2c4kl 0/1 ImagePullBackOff 0
helloworld-deployment-764b8b85d8-rzq7l 0/1 ImagePullBackOff 0
kubectl describe
命令应用于其中一个 pod,返回如下结果:
Normal Scheduled 20s default-scheduler Successfully assigned helloworld-deployment-79f66d97c6-7tj2x to docker-for-desktop
Normal SuccessfulMountVolume 19s kubelet, docker-for-desktop MountVolume.SetUp succeeded for volume "default-token-72f44"
Normal BackOff 16s kubelet, docker-for-desktop Back-off pulling image "test:latest"
Warning Failed 16s kubelet, docker-for-desktop Error: ImagePullBackOff
Normal Pulling 4s (x2 over 19s) kubelet, docker-for-desktop pulling image "test:latest"
Warning Failed 2s (x2 over 17s) kubelet, docker-for-desktop Failed to pull image "test:latest": rpc error: code = Unknown desc = Error response from daemon: pull access denied for test, repository does not exist or may require 'docker login'
Warning Failed 2s (x2 over 17s) kubelet, docker-for-desktop Error: ErrImagePull
有趣的是,如果我尝试运行托管在DockerHub上的一些图像,那么一切都很好。 我还尝试使用skaffold,它也非常好用...我看到一些关于minikube的类似问题,解决方案是使用minikube docker守护程序构建映像,以便可以从Kubernetes集群引用它们。
我希望避免设置本地仓库,那么如何让它与Docker的Kubernetes配合工作?