2017-09-26 10 views
0

개인 레지스트리를 만들어서 부두 이미지를 푸시하고 해당 이미지를 사용하여 배포를 만들고 싶습니다. KOPS를 사용하여 AWS에 하나의 마스터 하나의 슬레이브가있는 kubernetes 클러스터를 만들었습니다. 레지스트리 서비스를 만들고 슬레이브 노드에 공개하려면이 링크 (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/registry )를 따라야합니다.kubernetes의 개인 레지스트리에서 이미지를 가져 오는 중에 문제가 발생했습니다.

그런 다음 나는 도커 이미지를 만들어이 링크에 제공된 localhost : 5000 /로 레지스트리에 푸시합니다. 나는이 이미지를 사용하여 배포를 만들려고 할 때

지금, 나는 오류가 발생합니다 :

이미지 "로컬 호스트 : 5000/포스트 그레스-SDL": 당기 못했습니다 당기면서 코드 = 2 DESC = 오류 : RPC 오류 이미지 : http://localhost:5000/v1/repositories/postgres-sdl/images를 가져옵니다 : 5000 : getsockopt 함수 : 연결이 고정 표시기 이미지 I 태그를 구축 한 후

을 거부하고이 이름과 이미지를 밀어 : 로컬 호스트 : 5000/포스트 그레스 - SDL

내 배포 TCP [:: 1] 다이얼 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 주소가 있지만 실제로 위험합니다.

클러스터가 죽으면 모든 이미지가 손실됩니다.

아마존 도커 레지스트리를 사용하면 안전하고 적절한 방법입니다.

0

호스트 포트가 CNI에서 제대로 작동하지 않는 문제가 있습니다 (this issue 참조).

포트 맵 플러그인을 설치하고 .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

    • 프록시 포드 다시 작성을 통해 확인할 수 있습니다.