Kubernetes私人码头注册表 - 注册表代理不起作用

时间:2016-05-30 21:07:24

标签: kubernetes docker-registry

我在3节点设置上运行Kubernetes(Core OS - 本指南中的设置 - https://coreos.com/kubernetes/docs/latest/deploy-master.html)。我需要在设置中运行私有docker注册表,所以我遵循了这个指南:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/registry

我认为注册表pod正在运行,至少在端口5000上有来自注册表pod的空响应(指南说我应该得到“404 Unauthorized”响应)。我正在从busybox中测试它,它甚至可以使用dns主机名。

但主要问题是kube-registry-proxy无法正常运行。通过在每个节点上的/ etc / kubernetes / manifest /文件夹中添加定义yaml,我能够启动并运行代理。当我从kube-system命名空间列出pod时,我看到了:

kube-registry-proxy-192.168.10.4       1/1       Running   0          32m
kube-registry-proxy-192.168.10.5       1/1       Running   0          3d
kube-registry-proxy-192.168.10.6       1/1       Running   0          1d

这似乎工作正常。但是当我ssh到Kube集群的任何节点时,尝试运行

curl -v localhost:5000

我收到了这个错误:

* Rebuilt URL to: localhost:5000/
*   Trying 127.0.0.1...
* connect to 127.0.0.1 port 5000 failed: Connection refused
* Failed to connect to localhost port 5000: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 5000: Connection refused

另外,当我跑

sudo lsof -i|grep LISTEN

没有列出端口5000。有线索吗?

编辑:我需要的是能够从kubernetes中推送和提取图像(因此pod可以使用来自那里的图像)并且还能够从外部推送图像(使用端口5000的端口转发方法是足够,但也欢迎其他选择)

1 个答案:

答案 0 :(得分:0)

可能没有听你的localhost。如果您只想测试群集中任何节点的内部群集流量,则可以卷曲pod的IP或服务群集IP:

$ kubectl get po <your_pod> -o yaml | grep -i podip
    podIP: <spod_private_ip>
$ curl <pod_private_ip>:5000
$ kubectl get svc <your_svc> -o yaml | grep -i -w 'clusterip\|port'
     clusterIP: <cluster_ip>
     port: 5000
$ curl <cluster_ip>:5000

要将您的服务公开给外部流量,您需要指定此{K8s example中显示的NodePortLoadBalancer服务类型。