【问题标题】:Kubernetes doesn't pull from private Docker RegistryKubernetes 不会从私有 Docker Registry 中提取
【发布时间】:2016-05-06 08:12:59
【问题描述】:

我已经部署了一个私有注册表,并且可以使用 docker pull x.x.x/name 从中提取。问题是我不能让 Kubernetes 从那个存储库中拉取。我想我已经关注了其他主题的所有答案,但它们似乎没有奏效。

.yaml 文件:

apiVersion: v1
kind: Pod
metadata:
  name: private-image-test-1
spec:
  containers:
    - name: uses-private-image
      image: x.x.x/nginx_1
      imagePullPolicy: Always
      command: [ "echo", "SUCCESS" ]
  imagePullSecrets:
   - name: registrypullsecret

kubectl 获取 pod:

NAME                   READY     STATUS                                                                 RESTARTS   AGE
private-image-test-1   0/1       Image: x.x.x/nginx_1 is ready, container is creating   0          4m

kubectl 描述 pod private-image-test-1

Name:           private-image-test-1
Namespace:      default
Node:           37.72.163.69/37.72.163.69
Start Time:     Fri, 06 May 2016 08:04:45 +0000
Labels:         <none>
Status:         Pending
IP:
Controllers:    <none>
Containers:
  uses-private-image:
    Container ID:
    Image:              x.x.x/nginx_1
    Image ID:
    Port:
    Command:
      echo
      SUCCESS
    QoS Tier:
      cpu:              BestEffort
      memory:           BestEffort
    State:              Waiting
      Reason:           Image: x.x.x/nginx_1 is ready, container is creating
    Ready:              False
    Restart Count:      0
    Environment Variables:
Conditions:
  Type          Status
  Ready         False 
Volumes:
  default-token-zrn4n:
    Type:       Secret (a volume populated by a Secret)
    SecretName: default-token-zrn4n
Events:
  FirstSeen     LastSeen        Count   From                    SubobjectPath                           Type            Reason        Message
  ---------     --------        -----   ----                    -------------                           --------        ------        -------
  4m            4m              1       {scheduler }                                                                    scheduled     Successfully assigned private-image-test-1 to 37.72.163.69
  4m            8s              30      {kubelet 37.72.163.69}  implicitly required container POD                       pulled        Successfully pulled image "gcr.io/google_containers/pause:0.8.0"
  4m            8s              30      {kubelet 37.72.163.69}  implicitly required container POD                       failed        Failed to create docker container with error: no such image
  4m            8s              30      {kubelet 37.72.163.69}                                                          failedSync    Error syncing pod, skipping: no such image

现在欢迎任何帮助,谢谢!

【问题讨论】:

  • 如果你执行进去,你能ping docker 注册表吗? (你可能需要使用 docker.io 来部署)或者,如果你 ssh 进入盒子,你可以点击注册表吗?
  • 您忘记描述用于拉取图像的秘密(“registrypullsecret”)。它存在吗?它有有效的语法吗?
  • 你用过吗?

标签: docker registry private kubernetes


【解决方案1】:

在我遇到此问题的大多数情况下,几乎总是您的凭据密码不正确。正确的格式应该是

apiVersion: v1
kind: Secret
metadata:
  name: registrypullsecret
data:
  .dockerconfigjson: {BASE64 encoding of your config}
type: kubernetes.io/dockerconfigjson

根据记忆,type 字段在最新版本的 k8s 中发生了变化,因此请务必检查您列出的类型是否正确。

另外,您的 yaml 示例的缩进很糟糕,但这可能是 SO 编辑器问题。

【讨论】:

  • 我添加了这个,没有任何变化
猜你喜欢
  • 1970-01-01
  • 2017-02-24
  • 2015-09-04
  • 2019-04-28
  • 1970-01-01
  • 2022-08-08
  • 2023-02-10
  • 1970-01-01
  • 2019-08-16
相关资源
最近更新 更多