비공개 Docker 레지스트리 구성

이 페이지에서는 GKE On-Prem용으로 기존 Docker 레지스트리를 구성하는 방법을 설명합니다.

개요

GKE On-Prem은 안전하지 않은 Docker 레지스트리를 지원하지 않습니다. Docker 레지스트리를 시작할 때 인증서와 키를 제공해야 합니다. 인증서는 공개 인증 기관(CA)에서 서명하거나 자체 서명할 수 있습니다.

Docker 레지스트리 만들기

Docker 레지스트리를 만드는 방법은 외부에서 액세스할 수 있는 레지스트리 실행을 참조하세요.

레지스트리 구성

관리 워크스테이션 VM은 사용자 인증서를 서명한 CA를 신뢰해야 합니다. 이 트러스트를 설정하려면 관리 워크스테이션 VM에서 다음 단계를 수행하세요.

  1. 인증서를 저장할 디렉터리를 만듭니다.

    sudo mkdir -p /etc/docker/certs.d/[REGISTRY_SERVER]

    여기서 [REGISTRY_SERVER]는 Docker 레지스트리를 실행하는 VM의 IP 주소 또는 호스트 이름입니다.

  2. 인증서 파일을 /etc/docker/certs.d/[REGISTRY_SERVER]/ca.crt에 복사합니다. 원래 파일 이름이 다르더라도 파일 이름을 ca.crt로 지정해야 합니다.

  3. Docker 서비스를 다시 시작합니다.

    sudo service docker restart
  4. Docker에 로그인할 수 있는지 확인합니다.

    docker login -u [USERNAME] -p [PASSWORD] [REGISTRY_SERVER]

    여기서 [USERNAME][PASSWORD]는 Docker 레지스트리에 로그인하는 데 사용되는 사용자 인증 정보입니다.

    발생 가능한 오류 및 솔루션

    • Get https://[REGISTRY_SERVER]/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers). Docker 레지스트리를 실행하는 VM의 IP 주소가 올바른지 확인합니다.

    • login attempt to https://[REGISTRY_SERVER]/v2/ failed with status: 401 Unauthorized. 사용자 이름과 비밀번호가 올바른지 확인합니다.

    • Get https://[REGISTRY_SERVER]/v1/users/: x509: certificate signed by unknown authority. 관리 워크스테이션 VM이 인증서를 신뢰하지 않습니다.

설치 중에 gkectl prepare를 실행하면 설치에 필요한 이미지가 Docker 레지스트리로 푸시됩니다.

문제해결

자세한 내용은 문제 해결을 참조하세요.