2016-05-30 99 views
3

我在3节点设置(核心操作系统 - 本指南设置 - https://coreos.com/kubernetes/docs/latest/deploy-master.html)上运行Kubernetes。我需要在设置中运行私人码头注册表,因此我遵循本指南:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/registryKubernetes私人码头注册表 - 注册表代理不起作用

我认为注册表pod正在运行,至少从端口5000上的注册表pod有一个空响应说我应该得到一个“404未经授权”的回应)。我从一个busybox测试这个,它甚至可以和dns主机名一起工作。

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

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到库贝集群的任何节点,并尝试运行恩

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是足够的,但也欢迎其他选项)

回答

0

它可能不听你的localhost。如果你只在集群内任一节点测试内部群集通讯有兴趣,你可以卷曲吊舱的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服务类型。

+0

我不需要暴露任何东西,我只需要能够从kubernetes内部推拉图像,也许可以从外部推拉,但是如果按照指南中的描述进行操作就足够了。但是,如果有某个地方有更好的指南(无法谷歌,我可以使用它,我只需要一些关于如何使其工作的线索) – rastusik

+0

您是否尝试过使用服务的集群IP?请注意,这只能在您的群集中使用。 –

+0

是的,正如问题所写:“我认为注册表窗格正在运行,至少从端口5000上的注册表窗格中得到一个空的响应(指南说我应该得到一个”404未授权“响应)。从一个busybox测试它,它甚至可以与dns主机名配合使用。“但是我也需要将集群外部的一些基本映像推送到注册表中。 – rastusik