Mac版Docker-Kubernetes-参考本地映像 [英] Docker for Mac - Kubernetes - reference local image

查看:83
本文介绍了Mac版Docker-Kubernetes-参考本地映像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用具有Kubernetes支持的Mac版Docker,并且正在努力创建引用本地构建映像的Kubernetes部署.

I am using Docker for Mac with Kubernetes support and I'm struggling to create a Kubernetes Deployment that references a locally built image.

docker images的输出:

REPOSITORY  TAG     IMAGE 
test        latest  2c3bdb36a5ed

我的deployment.yaml:

My 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时,会创建pod,但是:

When i run kubectl apply -f deplyment.yaml pods are created but:

helloworld-deployment-764b8b85d8-2c4kl   0/1       ImagePullBackOff   0          
helloworld-deployment-764b8b85d8-rzq7l   0/1       ImagePullBackOff   0

这些吊舱之一的

kubectl describe给出:

kubectl describe of one of these pods gives:

  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 ,它也可以像一种魅力...

What is interesting is that if i try to run some image hosted on dockerhub then everything is fine, I also tried to use skaffold and it also works like a charm...

我看到一些有关minikube的类似问题,解决方案是使用minikube docker守护进程构建映像,以便可以从Kubernetes集群中引用它们.

I see some similar issues regarding minikube where the solution is to use the minikube docker daemon to build images so that they can be referenced from the Kubernetes cluster.

我想避免设置本地存储库,那么如何使其与Docker的Kubernetes一起使用?

I would like to avoid setting up local repo, so how can I make it work with Docker's Kubernetes ?

推荐答案

我能够通过将imagePullPolicy设置为Never来运行本地图像.

I was able to run a local image by setting the imagePullPolicy to Never.

例如:

apiVersion: v1
kind: Pod
metadata:
  name: local-image-test
spec:
  containers:
  - name: local-image-container
    image: local-image:latest
    imagePullPolicy: Never

(信用至 https://github.com/kubernetes/kubernetes/issues /1293#issuecomment-357326426 (此解决方案)

(Credit to https://github.com/kubernetes/kubernetes/issues/1293#issuecomment-357326426 for this solution)

这篇关于Mac版Docker-Kubernetes-参考本地映像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆