【问题标题】:Kubernetes fails to pull Docker image from artifactoryonline.comKubernetes 无法从 artifactoryonline.com 拉取 Docker 镜像
【发布时间】:2016-08-08 08:59:26
【问题描述】:

我在 AWS 上使用 Kubernetes 来运行 Play+AKKA Streams 服务器。

这是版本详情:

客户端版本:version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.4+3eed1e3", GitCommit:"3eed1e3be6848b877ff80a93da3785d9034d0a4f", GitTreeState:"not a混帐树"} 服务器版本:version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.4", GitCommit:"3eed1e3be6848b877ff80a93da3785d9034d0a4f", GitTreeState:"clean"}

这是我的部署脚本:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: service-validation2
  labels:
    name: service-validation2
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        name: service-validation2
    spec:
      containers:
      - name: service-validation2
        image: company-docker-docker-local.artifactoryonline.com/service:1.0.192
        ports:
        - containerPort: 9000
      imagePullSecrets:
        - name: company-artifactory

执行时

kubectl create -f deployment.yaml --record

我的 pod 进入“ImagePullBackOff”状态。

这里是事件列表:

  • 已成功将 service-validation2-3890064411-98444 分配给 ip-172-20-0-134.us-west-2.compute.internal

  • 拉取镜像“company-docker-docker-local.artifactoryonline.com/service:1.0.192”

  • 未能提取图像“company-docker-docker-local.artifactoryonline.com/service:1.0.192”:错误:找不到图像服务:1.0.192

  • 同步 pod 时出错,跳过:使用 ErrImagePull 无法为“service-validation2”“StartContainer”:“Error: image service:1.0.192 not found”

但是,图像存在于存储库中 -- 正在执行:

docker pull company-docker-docker-local.artifactoryonline.com/service:1.0.192

在我的机器上工作。

现在,该节点上运行着其他 pod。

我不确定这是否相关,但在此问题之前,我有一个错误(与 Play 的 application.conf 相关)导致 pod 崩溃。但这已解决。

【问题讨论】:

    标签: docker kubernetes artifactory


    【解决方案1】:

    您是否已通过 Artifactory Registry 的身份验证?可能是您在您的机器上登录,但您也需要 Kubernetes 集群对其进行身份验证。

    您可以直接通过configuring nodes to authenticate to a private repository 或按照推荐的方式和using ImagePullSecrets 进行此操作。

    【讨论】:

    • 这是一个很好的评论。但是由于这曾经有效,因此我们已经有了对远程存储库进行身份验证的秘密。我们最终重新创建了集群(并升级到 1.3.4 版)。
    • 哦,是的。似乎我在你的部署中忽略了那部分。所以它在重新创建后工作?奇怪的错误。
    【解决方案2】:

    可能的原因: 1> 人工制品没有进行身份验证 2> docker引擎冲突(我有这个问题)尝试重新启动docker。

    【讨论】:

      【解决方案3】:

      仅在创建密钥时:

      company-docker-docker-local.artifactoryonline.com   <this is your-registry-server>
      
      kubectl create secret docker-registry regcred --docker-server=<your-registry-server>
      --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
      

      然后像这样声明你的img

      ${your-registry-server}/{repo-name}/<image name>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-16
        • 2023-04-03
        • 2020-09-16
        • 1970-01-01
        • 1970-01-01
        • 2015-04-12
        • 1970-01-01
        • 2016-08-20
        相关资源
        最近更新 更多