无法从minikube docker

时间:2018-02-16 00:02:03

标签: docker kubernetes minikube

当我尝试在群集中运行容器时,我收到一条消息“deployment test created”但是当我查看仪表板时,我可以看到它处于错误状态(Failed to pull image...,它是由于授权问题,无法从本地minikube docker env中提取图像

我的步骤是:

  1. 使用hyperv启动minikube并将--insecure-registry开关设置为10.0.0.0/8,同时尝试0.0.0.0/0 - Kubernetes版本1.9.0也尝试了1.8.0
  2. 通过docker env
  3. minikube docker-env | Invoke-Expression设置为minikube docker
  4. 构建docker image - 图像构建并存在于minikube本地docker
  5. kubectl run test --image test-service --port 1101
  6. 结果如下:

    Failed Deployment

    我错过了什么?

3 个答案:

答案 0 :(得分:1)

正如评论中所讨论的,openfaas/faas-netes问题135说明了类似的问题,并提到了可能的解决方案:

  

imagePullPolicy如果没有提及,则应默认为Never而不是Always

OP Tim Jarvis实现了:

  

我意识到这不是一个授权问题,但它总是想要从外部回购中获取。
  我的修复方法是使用imagePullPolicy的{​​{1}}。

答案 1 :(得分:0)

这也发生在我身上,重要的是检查发送检索图像的策略,某些论坛中介绍了一些方法,您可以通过如下设置您偏好的注册表来启动minikube,这是一个路径

$ minikube start --cpus 2 --disk-size 50g --memory 5000 --insecure-registry your.registry.com:5000

另一种方法是在minikube的开头,通过docker-env呈现环境变量,如下所示,并在命令后生成映像的构建。

$ eval $(minikube docker-env)

另一种选择是通过docker负载将映像导入到现有映像。

答案 2 :(得分:0)

在容器定义中设置以下属性:

imagePullPolicy: IfNotPresent

示例:

  ...
  containers:
    - name: podhealthexample
      image: podhealth-pod-a:latest
      ports:
        - containerPort: 80
      imagePullPolicy: IfNotPresent