Docker kubernetes:容器未开始使用私有注册表

Docker kubernetes:容器未开始使用私有注册表,docker,kubernetes,Docker,Kubernetes,我在debian上安装了kubernetes 1.1.1 我还有一个私有注册表,在v2中运行良好 我面临一个奇怪的问题 在master中定义一个pod apiVersion: v1 kind: Pod metadata: name: nginx labels: app: nginx spec: containers: - name: nginx image: docker-registry.hiberus.com:5000/debian:ssh imagePullSecrets: - name:

我在debian上安装了kubernetes 1.1.1

我还有一个私有注册表,在v2中运行良好

我面临一个奇怪的问题

在master中定义一个pod

apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: docker-registry.hiberus.com:5000/debian:ssh
imagePullSecrets:
- name: myregistrykey
我的主人身上也有秘密
myregistrykey kubernetes.io/dockercfg 1 44m

我的config.json就是这样做的

{
"auths": {
"https://docker-registry.hiberus.com:5000": {
"auth": "anNhdXJhOmpzYXVyYQ==",
"email": "jsaura@heraldo.es"
}
}
}
于是我做了base64,创造了我的秘密

非常简单

在我的节点上,可以毫无问题地提取图像

docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker-registry.hiberus.com:5000/debian ssh 3b332951c107 29 minutes ago 183.3 MB
golang 1.4 2819d1d84442 7 days ago 562.7 MB
debian latest 91bac885982d 8 days ago 125.1 MB
gcr.io/google_containers/pause 0.8.0 2c40b0526b63 7 months ago 241.7 kB
但是我的容器没有启动

./kubectl describe pod nginx
Name: nginx
Namespace: default
Image(s): docker-registry.hiberus.com:5000/debian:ssh
Node: 192.168.29.122/192.168.29.122
Start Time: Wed, 18 Nov 2015 17:08:53 +0100
Labels: app=nginx
Status: Running
Reason:
Message:
IP: 172.17.0.2
Replication Controllers: 
Containers:
nginx:
Container ID: docker://3e55ab118a3e5d01d3c58361abb1b23483d41be06741ce747d4c20f5abfeb15f
Image: docker-registry.hiberus.com:5000/debian:ssh
Image ID: docker://3b332951c1070ba2d7a3bb439787a8169fe503ed8984bcefd0d6c273d22d4370
State: Waiting
Reason: CrashLoopBackOff
Last Termination State: Terminated
Reason: Error
Exit Code: 0
Started: Wed, 18 Nov 2015 17:08:59 +0100
Finished: Wed, 18 Nov 2015 17:08:59 +0100
Ready: False
Restart Count: 2
Environment Variables:
Conditions:
Type Status
Ready False
Volumes:
default-token-ha0i4:
Type: Secret (a secret that should populate this volume)
SecretName: default-token-ha0i4
Events:
FirstSeen LastSeen Count From SubobjectPath Reason Message
───────── ──────── ───── ──── ───────────── ────── ───────
16s 16s 1 {kubelet 192.168.29.122} implicitly required container POD Created Created with docker id 4a063be27162
16s 16s 1 {kubelet 192.168.29.122} implicitly required container POD Pulled Container image "gcr.io/google_containers/pause:0.8.0" already present on machine
16s 16s 1 {kubelet 192.168.29.122} implicitly required container POD Started Started with docker id 4a063be27162
16s 16s 1 {kubelet 192.168.29.122} spec.containers{nginx} Pulling Pulling image "docker-registry.hiberus.com:5000/debian:ssh"
15s 15s 1 {scheduler } Scheduled Successfully assigned nginx to 192.168.29.122
11s 11s 1 {kubelet 192.168.29.122} spec.containers{nginx} Created Created with docker id 36df2dc8b999
11s 11s 1 {kubelet 192.168.29.122} spec.containers{nginx} Pulled Successfully pulled image "docker-registry.hiberus.com:5000/debian:ssh"
11s 11s 1 {kubelet 192.168.29.122} spec.containers{nginx} Started Started with docker id 36df2dc8b999
10s 10s 1 {kubelet 192.168.29.122} spec.containers{nginx} Pulled Container image "docker-registry.hiberus.com:5000/debian:ssh" already present on machine
10s 10s 1 {kubelet 192.168.29.122} spec.containers{nginx} Created Created with docker id 3e55ab118a3e
10s 10s 1 {kubelet 192.168.29.122} spec.containers{nginx} Started Started with docker id 3e55ab118a3e
5s 5s 1 {kubelet 192.168.29.122} spec.containers{nginx} Backoff Back-off restarting failed docker container
它在内部循环尝试启动,但从未启动

奇怪的是,如果y在我的节点上手动执行run命令,容器将毫无问题地启动,但使用pod会拉取图像,但从未启动

我做错什么了吗

如果我在吊舱中使用公共图像,它将毫无问题地启动。。这只发生在我使用私人图像时

我也从debian迁移到ubuntu,没有同样的问题

我还将这个秘密链接到了默认的服务帐户,仍然没有运气

克隆了最后一个git版本,已编译,没有运气


我很清楚,问题是使用私有注册表,但我已经应用并遵循了我读到的所有信息,仍然不走运。

如果docker容器的主进程已经退出,它可能会退出。 你能分享容器日志吗

  • 如果执行
    docker ps-a
    操作,您应该会看到所有正在运行和退出的容器
  • 运行
    docker容器日志容器\u id
  • 还可以尝试在交互式和守护进程模式下运行容器,看看它是否仅在守护进程模式下失败

    在守护程序模式下运行-

    docker run-d-t Image\u name

    以交互模式运行-

    docker run-it Image\u name

    对于交互式守护程序模式
    docker run-idt Image\u name


    请参阅-

    如果docker容器的主进程已退出,则该容器可能会退出。 你能分享容器日志吗

  • 如果执行
    docker ps-a
    操作,您应该会看到所有正在运行和退出的容器
  • 运行
    docker容器日志容器\u id
  • 还可以尝试在交互式和守护进程模式下运行容器,看看它是否仅在守护进程模式下失败

    在守护程序模式下运行-

    docker run-d-t Image\u name

    以交互模式运行-

    docker run-it Image\u name

    对于交互式守护程序模式
    docker run-idt Image\u name


    请参阅-

    我不清楚私有注册表是问题所在,因为事件显示图像已成功提取。您可能需要检查您的pod yaml是否正确。另外,请尝试
    kubectl logs-c-p
    查看最后终止的容器的日志。感谢您的回答,我认为这是private registry的错误,因为相同的yaml更改了公共容器的映像:/。我想集装箱没有日志,但我明天会检查。我最终看到它在我的奴隶机上运行在docker images命令下,但它很快就消失了。这是我的pod定义
    apiVersion:v1
    种类:pod元数据:名称:prueba标签:app:prueba规范:containers:-名称:prueba图像:docker registry.hiberus.com:5000/debian:ssh imagePullSecrets:-名称:claveweird我可以用kubectl描述pod描述pod,但我无法访问日志
    root@kubernetes-master:/opt/kubernetes#./kubectl记录prueba-c 26fdaa2e1b60服务器错误:服务器找不到请求的资源(Pod prueba)root@kubernetes-master:/opt/kubernetes#./kubectl记录来自服务器的prueba错误:发生内部错误:Pod命名空间“default”中的“prueba”:容器“prueba”“处于等待状态。请直接检查您在Docker上拖动的图像,看看它是否快速失败。如果确实如此,你首先需要弄清楚原因。在此之后,如前所述,图像被正确地提取,因此这不是问题。我不清楚私有注册表是问题所在,因为事件显示图像被成功提取。您可能需要检查您的pod yaml是否正确。另外,请尝试
    kubectl logs-c-p
    查看最后终止的容器的日志。感谢您的回答,我认为这是private registry的错误,因为相同的yaml更改了公共容器的映像:/。我想集装箱没有日志,但我明天会检查。我最终看到它在我的奴隶机上运行在docker images命令下,但它很快就消失了。这是我的pod定义
    apiVersion:v1
    种类:pod元数据:名称:prueba标签:app:prueba规范:containers:-名称:prueba图像:docker registry.hiberus.com:5000/debian:ssh imagePullSecrets:-名称:claveweird我可以用kubectl描述pod描述pod,但我无法访问日志
    root@kubernetes-master:/opt/kubernetes#./kubectl记录prueba-c 26fdaa2e1b60服务器错误:服务器找不到请求的资源(Pod prueba)root@kubernetes-master:/opt/kubernetes#./kubectl记录来自服务器的prueba错误:发生内部错误:Pod命名空间“default”中的“prueba”:容器“prueba”处于等待状态。请直接检查您在Docker上拉取的映像是否快速失败。如果失败,您首先需要找出原因。然后,如前所述,正确拉取映像,因此这不是问题。