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

问题描述 投票:3回答:1

我在3节点设置上运行Kubernetes(核心操作系统 - 从本指南设置 - 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集群的任何节点,并尝试tu run

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的端口转发方法就足够了,但是其他选择也欢迎)

kubernetes docker-registry
1个回答
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

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

© www.soinside.com 2019 - 2024. All rights reserved.