繁体   English   中英

Kubernetes 不会从私有 Docker Registry 中提取

[英]Kubernetes doesn't pull from private Docker Registry

我已经部署了一个私有注册表,并且可以使用 docker pull xxx/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

在这一点上欢迎任何帮助,谢谢!

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

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

从内存来看,k8s的最新版本中的type字段已更改,因此请务必检查您列出的类型是否正确。

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

创建 dockerhub 密码和修补所有服务帐户的脚本可以在我的回答中找到: 如何在 kubeless 中增加 dockerhub 速率限制?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM