2017-09-26 112 views
0

我想創建一個私人註冊表,在這裏我想推送我的Docker圖像並使用這些圖像創建部署。 我已經使用KOPS在AWS中創建了一個擁有一個主控從站的kubernetes集羣。 我跟着這個鏈接:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/registry 來創建一個註冊表服務並將它暴露在從屬節點上。從kubernetes中的私有註冊表中拉出圖像時出現問題

然後我建立一個docker鏡像,並將它作爲localhost:5000 /推送到註冊表中,如本鏈接所示。

現在,當我嘗試使用此圖片創建部署,我得到的錯誤:

未能拉形象「本地主機:5000/Postgres的-SDL」:RPC錯誤:代碼= 2遞減=錯誤而拉圖片:獲取http://localhost:5000/v1/repositories/postgres-sdl/images:撥打TCP [:: 1]:5000:用getsockopt:連接被拒絕

建設碼頭工人形象我的標籤後,用這個名字推圖像:本地主機:5000/Postgres的-SDL

我的部署yaml看起來像這樣:

 image: localhost:5000/postgres-sdl 
+0

看來註冊表沒有運行。您是否創建了服務和註冊表代理窗格? – user3151902

+0

是的,kube-registry pod和kube-registry-proxy pod正在運行,並且kube-registry服務正在運行。 –

+0

錯誤消息說,您搜索了'postgres-sdl'圖像,但是您寫道,您上傳了圖像'management'。是否有圖像不匹配? – adebasi

回答

-1

我建議不要使用本地註冊表與kubernetes! 確保它在您的配置文件中爲您提供了不錯的localhost:5000地址,這與使用minikube進行測試時相同,但實際上很危險。

如果集羣死亡,您將丟失所有圖像。

只要使用亞馬遜碼頭註冊表,這是一個安全的方法來做到這一點。

0

問題是hostport與CNI無法正常工作(請參閱this issue)。

您需要安裝portmap插件並創建.conflist文件。所有這些都取決於你如何設置你的kubernetes集羣。

我用下面的步驟:/opt/cni/bin

  • 我使用運河

    • 設置端口映射插件(通過containernetworking/plugins v0.6.0下載),所以我的網絡配置是這樣的:

      { 
      "name": "canal", 
      "cniVersion": "0.3.0", 
      "plugins": [{ 
           "type": "flannel", 
           "delegate": { 
            "type": "calico", 
            "etcd_endpoints": "https://10.128.0.3:2379", 
            "etcd_key_file": "/opt/calicoctl/etcd-key", 
            "etcd_cert_file": "/opt/calicoctl/etcd-cert", 
            "etcd_ca_cert_file": "/opt/calicoctl/etcd-ca", 
            "log_level": "info", 
            "policy": { 
             "type": "k8s" 
            }, 
            "kubernetes": { 
             "kubeconfig": "/root/cdk/kubeconfig" 
            } 
           } 
          }, 
          { 
           "type": "portmap", 
           "capabilities": { 
            "portMappings": true 
           }, 
           "snat": true 
          } 
      ]} 
      

      確保文件以.conflist結尾。我將這個文件保存在/etc/cni/net.d。有關詳細信息可以通過Container Networking Interface Specification

    • 重新創建代理窗格。

  • 相關問題