0

我正在通过 jib 和 skaffold 构建 docker 图像。当我service-1在 skaffold build.artifacts.image 中提供图像密钥时,会创建一个图像(名为“service-1:SHA256”的图像),我可以通过docker image ls. 然后在 skaffold deploy 中,我提供 kubectl 命令,它可以很好地拾取创建的图像。在我的 deployment.yaml 清单文件中,我只指定了 spec.template.spec.containers.image : service-1

上述方法工作正常,但我想做 helm。我已经创建了舵图。但是 helm 无法从我的本地 docker daemon repo 中获取任何图像。如果我指定 image:service-1:SHA256 在我看到时存在docker image ls,我会得到 ErrImagePull。

为什么 helm 无法从我的本地 docker 注册表中选择图像。我也无法 docker pull service-1:sha256。

正在使用的默认 docker 注册表是什么,带有 kubectl 的 skaffold 如何能够正确拉取映像,而 helm 和 docker 则不能。

我也尝试了 skaffold+helm,但遇到了同样的问题。

apiVersion: skaffold/v2alpha3
kind: Config
metadata:
  name: service-1
build:
  artifacts:
    - image: service-1
      jib:
        project: com.sample.app:service-1
        args:
          - -Dmaven.test.skip
deploy:
  helm:
    releases:
      - name: service-1
        chartPath: service-1-chart
        values:
          image: service-1
        valuesFiles:
          - service-1-chart/values.yaml

在 pod describe 期间获取以下内容

  Normal   Scheduled  75s                default-scheduler        Successfully assigned default/service1-df75c747b-g6qfm to docker-desktop
  Normal   Pulling    29s (x3 over 74s)  kubelet, docker-desktop  Pulling image "service-1:e7d693388f7f26a062257408e3cfb5904da4749342729802eb9ac65fab6d2f31"
  Warning  Failed     27s (x3 over 73s)  kubelet, docker-desktop  Failed to pull image "service-1:e7d693388f7f26a062257408e3cfb5904da4749342729802eb9ac65fab6d2f31": rpc error: code = Unknown desc = Error response from daemon: pull access denied for service-1, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed     27s (x3 over 73s)  kubelet, docker-desktop  Error: ErrImagePull
  Normal   BackOff    2s (x4 over 72s)   kubelet, docker-desktop  Back-off pulling image "service-1:e7d693388f7f26a062257408e3cfb5904da4749342729802eb9ac65fab6d2f31"
  Warning  Failed     2s (x4 over 72s)   kubelet, docker-desktop  Error: ImagePullBackOff

当我尝试做 docker pull 时:

Error response from daemon: pull access denied for service-1, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
4

1 回答 1

2

If you don't want to use Docker registry, but to run the image directly from your Docker Daemon, then add imagePullPolicy: Never.

于 2020-04-14T07:57:10.480 回答