2016-05-30 79 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