在Azure ACS上配置Kubernetes以从Artifactory中提取图像

时间:2017-07-13 14:02:32

标签: kubernetes

我尝试配置Kubernetes从我们的私人Artifactory Docker仓库中提取图像。

首先我用kubectl配置了一个秘密:

kubectl create secret docker-registry artifactorysecret --docker-server=ourcompany.jfrog.io/path/list/docker-repo/ --docker-username=artifactory-user --docker-password=artipwd --docker-email=myemail

使用带

的kubectl创建pod
apiVersion: v1
kind: Pod
metadata:
  name: base-infra
spec:
  containers:
    - name: api-gateway
      image: api-gateway
  imagePullSecrets:
    - name: artifactorysecret

我在Kubernetes中遇到“ImagePullBackOff”错误:

 3m            3m              1       default-scheduler                                           Normal
Scheduled       Successfully assigned consort-base-infra to k8s-agent-ab2f29b2-2
  3m            0s              5       kubelet, k8s-agent-ab2f29b2-2   spec.containers{api-gateway}    Normal
Pulling         pulling image "api-gateway"
  2m            <invalid>       5       kubelet, k8s-agent-ab2f29b2-2   spec.containers{api-gateway}    Warning
Failed          Failed to pull image "api-gateway": rpc error: code = 2 desc = Error: image library/api-gateway:latest not found
  2m            <invalid>       5       kubelet, k8s-agent-ab2f29b2-2                               Warning
FailedSync      Error syncing pod, skipping: failed to "StartContainer" for "api-gateway" with ErrImagePull: "rpc error: code = 2 desc = Error: image library/api-gateway:latest not found"

  2m    <invalid>       17      kubelet, k8s-agent-ab2f29b2-2   spec.containers{api-gateway}    Normal  BackOff
Back-off pulling image "api-gateway"
  2m    <invalid>       17      kubelet, k8s-agent-ab2f29b2-2                                   Warning FailedSync
Error syncing pod, skipping: failed to "StartContainer" for "api-gateway" with ImagePullBackOff: "Back-off pulling image \"api-gateway\""

回购当然有最新版本。我不知道我在这里缺少什么。似乎Kubernetes能够登录回购......

1 个答案:

答案 0 :(得分:1)

好的 - 我发现要通过Pull image Azure Container Registry - Kubernetes

连接Artifactory

有两件事需要注意:

1)在秘密定义中不要忘记服务器属性中的https://:

kubectl create secret docker-registry regsecret --docker-server=https://our-repo.jfrog.io --docker-username=myuser --docker-password=<your-pword> --docker-email=<your-email>

2)在部署描述符中使用完整的映像路径并指定秘密(或将其附加到默认的ServiceAccount):

apiVersion: v1
kind: Pod
metadata:
  name: consort-base-infra-art
spec:
  containers:
    - name: api-gateway
      image: our-repo.jfrog.io/api-gateway
  imagePullSecrets:
    - name: regsecret