grep

Engineering

NCR: 복제 기능 소개

NHN

2022년 4월 28일

원문에서 보기 ↗

NCR은 Docker Registry 기반의 관리형 컨테이너 레지스트리 서비스 입니다. 레지스트리를 개인 PC 및 온프레미스 환경에서 직접 구축하는 수고를 들이는 대신, NCR 사용자들은 간편하게 자신만의 레지스트리 서버를 가질 수 있습니다. NCR 콘솔을 통해 레지스트리 및 이미지 관리를 직관적으로 할 수 있고 GC, 웹훅 등 다양한 부가기능을 사용할 수 있습니다. 앞으로 NCR에서 제공할 기능은 계속 추가될 예정입니다. 또한 NCR은 NHN Cloud OBS를 저장소로 하기때문에 저장 공간 크기에 구애받지 않고 필요한 만큼 이미지를 안전하게 저장할 수 있습니다.

이번 3월 정기 배포에 NCR에 새롭게 복제 기능이 추가되었습니다. 오늘은 이 기능에 대해서 설명드리려고 합니다.

복제 기능의 특징

NCR에서 제공하는 복제 기능은 리전간 이미지를 복제합니다. 복제 기능의 구체적인 특징은 다음과 같습니다.

복제 구성 설정

복제 기능을 사용하려면 NCR 콘솔에서 복제 구성을 설정해야 합니다. NCR 콘솔에서 복제 탭으로 이동합니다. 복제 탭으로 이동하면 현재 설정된 복제 구성 목록 화면을 볼 수 있습니다. 스크린샷 2022-04-06 오후 3.07.00.png

새로운 복제 구성을 설정하기 위해서는 복제 생성 버튼을 클릭합니다. 그러면 복제 생성 모달창이 나타납니다. 이 복제 생성 모달창에서는 복제 구성 생성에 필요한 정보를 입력해야 합니다. 스크린샷 2022-04-06 오후 3.11.59.png

복제 구성을 생성하려면 복제 구성의 이름과 복제 유형 그리고 대상 리전을 선택해야 합니다. 현재는 Push 방식의 복제만 지원합니다. Push 방식 복제 구성에서는 오직 NCR 리전만을 선택할 수 있습니다. 다른 레지스트리로부터 이미지를 당겨 오는 방식의 복제를 추후 지원할 예정입니다.

이 문서에는 한국(판교) 리전에서 한국(평촌) 리전 방향으로 복제를 구성합니다. 필요한 정보를 모두 입력한 후 확인 버튼을 클릭하면 복제 구성이 생성됩니다. 스크린샷 2022-04-06 오후 3.14.09.png

복제 구성 생성 직후에는 활성 상태가 비활성으로 표시될 수 있습니다. 이는 복제 구성이 생성되고 복제를 위한 준비 하는 시간이 필요하기 때문입니다. 복제 준비가 끝나면 복제 구성의 활성 상태가 활성으로 표시됩니다. 준비 시간은 수 분 정도 걸립니다. 상태가 변경되지 않는 경우 새로 고침을 해보시기 바랍니다.

자동 복제

복제 구성이 완료되면 이미지가 복제될 준비는 끝난 것입니다. 테스트를 위해 한번 간단한 이미지를 올려 보겠습니다. NCR 콘솔에서 관리 탭을 통해 레지스트리 목록 보기 화면으로 이동합니다. 이 화면에서 레지스트리 생성 버튼을 클릭하여 이미지를 업로드할 레지스트리를 하나 생성합니다. 스크린샷 2022-04-06 오후 3.38.07.png

스크린샷 2022-04-06 오후 3.38.28.png

이제 로컬 PC에서 터미널을 열어 다음과 같이 이미지를 업로드 합니다. NCR 레지스트리에 이미지를 업로드하기 위해서는 먼저 로그인 과정을 거쳐야 합니다. 로그인 방법에 대한 설명은 NCR 사용 가이드를 참고하시기 바랍니다.

docker pull hello-world:latest
docker tag hello-world:latest $REGISTRY_DOMAIN/hello-world:latest
docker push $REGISTRY_DOMAIN/hello-world:latest

이미지가 업로드 되면 NCR 콘솔에서 대상 리전으로 이동하여 이미지가 복제되었는지를 확인해봅니다. 대상 리전에 앞서 우리가 생성한 레지스트리와 동일한 이름을 가진 레지스트리와 방금 올린 이미지가 존재하는 것을 확인할 수 있습니다.

스크린샷 2022-04-06 오후 4.09.32.png

수동 복제

앞에서 언급했다시피 NCR의 복제 기능은 이미지가 업로드되었을 때만 동작하고 또 복제 대상은 새로 업로드 된 이미지로 제한됩니다. 만약 이미 업로드가 끝난 이미지를 복제하고 싶다면 어떻게 해야 할까요? 이 경우 NCR에서 제공하는 수동 복제 기능을 사용해야 합니다. 수동 복제 기능을 사용하면 원본 리전에 있는 모든 이미지들을 대상 리전으로 복제 하게 됩니다.

수동 복제를 사용하려면 NCR 콘솔의 복제 탭으로 이동합니다. 그리고 복제를 실행할 복제 구성을 선택합니다. 그러면 상단에서 복제 실행 버튼이 활성화될 것 입니다. 스크린샷 2022-04-06 오후 4.38.05.png

이 복제 실행 버튼을 누르게 되면 다음과 같이 복제 실행 모달창이 나타납니다. 여기서 확인 버튼을 누르면 복제가 실행됩니다. 스크린샷 2022-04-06 오후 4.39.32.png

복제 이력 보기

앞의 예제에서 업로드 후 복제 동작 여부를 NCR 콘솔에서 확인했습니다. 예제에서 사용한 이미지는 하나 밖에 없었고 우리가 직접 업로드 후 확인했기 때문에 콘솔을 사용하는 것에 문제가 없었습니다. 그런데 만약 Jenkins와 같이 자동화된 CI/CD 도구를 사용해서 이미지를 빌드하는 경우 그래서 여러 개의 이미지가 업로드되는 경우는 어떻게 확인할 수 있을까요?

NCR은 사용자로 하여금 복제 진행 상황을 확인할 수 있도록 복제 이력을 제공합니다. 사용자는 복제 이력을 통해 현재 복제 완료된/복제 예정 이미지들을 식별하고 진행률을 알 수 있습니다. 복제 이력을 확인하려면 앞서 생성한 복제 구성을 선택하여 복제 구성 상세 보기 화면을 열어야 합니다. 스크린샷 2022-04-06 오후 4.22.17.png

상세 보기 화면에서 복제 히스토리 탭을 선택하면 복제 이력 목록 보기 화면으로 이동합니다. 앞 서 우리가 한 이미지를 업로드하였으므로 그 이력이 이미 존재하고 있습니다.

스크린샷 2022-04-06 오후 4.24.56.png

보다 자세한 정보를 보고 싶다면 복제 이력을 선택합니다. 그러면 복제 히스토리 상세 보기 모달창이 나타나고 복제 대상 이미지별 복제 시작/종료 시간, 상태 및 로그를 볼 수 있습니다.

스크린샷 2022-04-06 오후 4.26.37.png

마치며

NCR의 복제 기능을 활용한 이미지의 리전 간 복제 방법에 대해서 알아보았습니다. 정리하면 아래와 같습니다.

  1. NCR 콘솔에서 복제 구성을 생성할 수 있습니다.
  2. 이미지 복제는 이미지 업로드시 자동으로 실행되며, 콘솔에서 수동으로도 실행할 수 있습니다.
  3. NCR 콘솔의 복제 히스토리 보기를 통해 복제 이력 및 진행 상황을 확인할 수 있습니다.