이 페이지에서는 GKE On-Prem용으로 기존 Docker 레지스트리를 구성하는 방법을 설명합니다.
개요
GKE On-Prem은 안전하지 않은 Docker 레지스트리를 지원하지 않습니다. Docker 레지스트리를 시작할 때 인증서와 키를 제공해야 합니다. 인증서는 공개 인증 기관(CA)에서 서명하거나 자체 서명할 수 있습니다.
Docker 레지스트리 만들기
Docker 레지스트리를 만드는 방법은 외부에서 액세스할 수 있는 레지스트리 실행을 참조하세요.
레지스트리 구성
관리 워크스테이션 VM은 사용자 인증서를 서명한 CA를 신뢰해야 합니다. 이 트러스트를 설정하려면 관리 워크스테이션 VM에서 다음 단계를 수행하세요.
인증서를 저장할 디렉터리를 만듭니다.
sudo mkdir -p /etc/docker/certs.d/[REGISTRY_SERVER]
여기서 [REGISTRY_SERVER]는 Docker 레지스트리를 실행하는 VM의 IP 주소 또는 호스트 이름입니다.
인증서 파일을
/etc/docker/certs.d/[REGISTRY_SERVER]/ca.crt
에 복사합니다. 원래 파일 이름이 다르더라도 파일 이름을ca.crt
로 지정해야 합니다.Docker 서비스를 다시 시작합니다.
sudo service docker restart
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 레지스트리로 푸시됩니다.
문제해결
자세한 내용은 문제 해결을 참조하세요.