Kubernetes无法从artifactoryonline.com

时间:2016-08-08 08:59:27

标签: docker kubernetes artifactory

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

以下是版本详情:

  

客户端版本:version.Info {Major:“1”,Minor:“2”,GitVersion:“v1.2.4 + 3eed1e3”,GitCommit:“3eed1e3be6848b877ff80a93da3785d9034d0a4f”,GitTreeState:“不是git tree“}   服务器版本: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-西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”失败:“错误:图片服务:找不到1.0.192”

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

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

在我的机器上运行。

现在,此节点上还有其他pod正在运行。

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

可能的原因: 1 GT;身份验证不会发生 2 - ; docker引擎冲突(我有这个问题)尝试重启docker。

答案 2 :(得分:0)

创建秘密时只放:

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>