vSphere에 오프라인 Harbor 레지스트리 배포

이 항목에서는 다운로드한 OVA 파일에서 개인 Harbor 이미지 레지스트리를 설치하여 오프라인 vSphere 환경에 TKG(Tanzu Kubernetes Grid)를 배포하는 데 필요한 이미지를 제공하는 방법을 설명합니다. 그 결과 Harbor 레지스트리는 TKG와 별도로 실행되고 TKG에서 사용되는 구성 요소 이미지를 저장하고 관리합니다.

이 VM 기반 Harbor 배포는 인터넷 제한 또는 에어갭 환경에서 TKG 시스템 이미지를 호스팅하는 경우에만 지원됩니다. 운영 환경에서 호스팅된 애플리케이션에 대해 많은 수의 이미지를 관리할 수 있는 확장 가능하고 고가용성 Harbor를 배포하려면 Tanzu CLI를 사용하여 TKG 2.2 워크로드 클러스터 생성 및 관리의 서비스 레지스트리용 Harbor 설치에 설명된 대로 TKG 클러스터에 Harbor 패키지를 배포합니다.

참고

Notary와 Chartmuseum은 Harbor v2.6에서 더 이상 사용되지 않으며 Harbor v2.6.0 릴리스 정보에 설명된 대로 향후 릴리스에서 제거될 예정입니다. 사용자는 컨테이너 서명 및 확인을 위해 Sigstore Cosign으로 전환해야 합니다.

사전 요구 사항

Harbor 배포

OVA 파일에서 Harbor를 배포하려면 다음을 수행합니다.

  1. vCenter vSphere 클러스터를 마우스 오른쪽 버튼으로 클릭하고 OVF 템플릿 배포(Deploy OVF Template)…를 선택합니다.

    Harbor 설치 스크린샷

  2. OVF 템플릿 배포(Deploy OVF Template) 창이 나타납니다. 로컬 파일(Local File)을 선택하고 다운로드한 Harbor OVA 파일의 위치를 찾습니다.

  3. 오른쪽 아래에서 다음(NEXT)을 클릭합니다. 일련의 구성 창이 나타납니다.

  4. 소스 확인: 예(YES)를 클릭합니다.

    Harbor 설치 스크린샷

  5. 가상 시스템 이름: Harbor 인스턴스를 실행하는 가상 시스템에 대해 선택하는 이름을 입력합니다. 다음(NEXT)을 클릭합니다.

    Harbor 설치 스크린샷

  6. 계산 리소스 선택: 기본 선택 항목을 그대로 두고 다음(NEXT)을 클릭합니다.

    Harbor 설치 스크린샷

    vSphere OVF 템플릿을 다운로드하고 렌더링하므로 이 단계는 몇 분 정도 걸릴 수 있습니다.

  7. 세부 정보 검토: 다음(NEXT)을 클릭합니다.

    Harbor 설치 스크린샷

  8. 라이센스 계약: 라이센스를 수락하고 다음(NEXT)을 클릭합니다.

    Harbor 설치 스크린샷

  9. 스토리지 선택: vsanDatastore를 선택하고 다음(NEXT)을 클릭합니다.

    Harbor 설치 스크린샷

  10. 네트워크 선택: 기본 VM 네트워크(VM Network)를 선택하고 다음(NEXT)을 클릭합니다.

    Harbor 설치 스크린샷

  11. 템플릿 사용자 지정(Customize template) > VM 자격 증명(VM Credentials):

    Harbor 설치 스크린샷

    1. 루트 암호(필수): VM의 root 사용자 계정의 기본 설정 암호이며 8~128자여야 합니다.

    2. 루트를 통한 SSH 허용: VM에 대한 ssh 액세스를 root 사용자로 허용하려면 기본값을 사용하도록 둡니다.

  12. 템플릿 사용자 지정(Customize template) > Harbor 구성(Harbor Configurations):

    Harbor 설치 스크린샷

    1. 호스트 이름(Hostname)(선택 사항): 입력할 경우 Harbor 호스트 이름을 FQDN(예: yourdomain.com)으로 지정합니다. IP 주소 또는 localhost일 수 없습니다.

      호스트 이름(Hostname)을 지정하면 SAN(주체 대체 이름) 속성에 DNS 정보만 포함됩니다. IP 정보가 제공되지 않았습니다.

      호스트 이름(Hostname)을 지정하지 않으면 SAN 속성에 IP 정보만 포함되며 DNS 정보가 제공되지 않습니다.

    2. 관리자 암호(필수): Harbor admin 사용자의 암호입니다. 관리자가 Harbor UI 및 클라이언트 컨테이너에 액세스하여 이미지를 풀 및 푸시하는 데 사용합니다. 8~128자여야 합니다.

    3. Harbor 데이터베이스 암호: Harbor 내부 데이터베이스의 암호입니다. 입력할 경우 8~128자여야 합니다.

    4. Harbor 기본 스캐너 활성화: Trivy 스캐너를 설치하고 이를 활성화하여 Harbor에 업로드될 때 이미지를 스캔할 수 있습니다.

    5. Harbor에 자체 서명된 인증서 사용:

      • 자체 서명된 인증서를 사용하도록 설정하고 CA 인증서, 서버 인증서, 서버 키는 비워 둡니다.

      • 그렇지 않으면 Harbor에 자체 서명된 인증서 사용을 비활성화하고 CA 인증서, 서버 인증서, 서버 키의 다중 라인 파일 컨텐츠에 붙여 넣습니다. 양식에 붙여 넣으면 다중 라인 값이 공백 문자를 구분 기호로 사용하여 단일 라인 문자열로 바뀝니다.

  13. 템플릿 사용자 지정(Customize template) > 네트워킹 구성(Networking Configurations):

    Harbor 설치 스크린샷

    1. IP 주소, 넷마스크, 게이트웨이: eth0의 고정 IP 주소, 넷마스크, 게이트웨이입니다(있는 경우).

    2. DNS, DNS 도메인: Harbor VM의 DNS 서버 및 도메인입니다.

  14. 완료 준비: 구성을 검토하고 완료(FINISH)를 클릭합니다.

    Harbor 설치 스크린샷

배포 보기 및 디버그

Harbor OVA를 처음 배포할 때 Harbor에서 Docker 이미지를 로드하는 데 몇 분 정도 걸립니다.

프로세스를 보고 진행 중인지 확인하려면 ssh VM에 로그인하고 다음을 실행합니다.

watch docker ps

Harbor가 5분 정도 후에 실행되고 있지 않으면 디버깅을 위해 VM에서 로그 파일을 검색합니다.

  1. cd /etc/goharbor/harbor && ./harbor-support.sh --include-private

  2. 로그 파일을 찾아 압축을 풉니다. 이름은 /storage/log/harbor_appliance_logs_2022-11-30T09-39-12Z.tar.gz와 비슷합니다.

문제 해결

Error: 매니페스트 또는 인증서 파일을 검색할 수 없음

  1. 아래와 같이 Error: Unable to retrieve manifest or certificate file 오류가 표시되면 Harbor OVA를 다시 배포해 보십시오.

    Harbor 설치 스크린샷

Harbor 프록시 캐시 지원 없음

인터넷 제한 환경에서 Tanzu Kubernetes Grid v2.2를 실행하는 Harbor의 프록시 캐시 기능을 사용할 수 없습니다. 여전히 Harbor 프록시 캐시를 사용하여 이전 버전의 Tanzu Kubernetes Grid 이미지 및 애플리케이션 이미지와 같은 비 Tanzu 이미지의 이미지를 프록시할 수 있습니다.

루트 암호 재설정

root 암호를 분실한 경우 분실한 루트 암호 재설정 절차에 따라 복구합니다.

데이터 디스크 확장

OVA에서 배포된 Harbor 인스턴스에는 두 개의 디스크가 있습니다.

  • 데이터 디스크: Harbor 애플리케이션 데이터 및 인증서 파일이 포함되어 있습니다. /storage로 마운트되었습니다.
  • 시스템 디스크: VM 시스템 데이터 및 Harbor 부트스트랩 이미지를 포함하고 부트스트랩 이미지를 실행합니다.

요청을 수용하기 위해 Harbor 데이터 디스크의 크기를 늘려야 하는 경우 설정을 변경하는 동안 Harbor VM의 전원을 일시적으로 꺼야 합니다. VM에 동적 IP 주소가 있는 경우 VM을 다시 시작하려면 아래 설명된 추가 단계가 필요합니다.

Harbor 인스턴스의 데이터 디스크를 확장하려면 다음을 수행합니다.

  1. vSphere 호스트 및 클러스터(Hosts and Clusters) 보기에서 Harbor OVA VM을 마우스 오른쪽 버튼으로 클릭하고 전원(Power) > 끄기(Power Off) 를 선택합니다.

    Harbor 설치 스크린샷

  2. Harbor OVA VM을 다시 마우스 오른쪽 버튼으로 클릭하고 설정 편집(Edit Settings)을 선택합니다.

    Harbor 설치 스크린샷

  3. 설정 편집(Edit Settings) 창이 나타납니다. 가상 하드웨어(Virtual Hardware)에서 하드 디스크 2(Hard disk 2) 설정을 원하는 용량으로 늘립니다. 확인(OK)을 클릭합니다.

    Harbor 설치 스크린샷

  4. Harbor OVA VM을 다시 마우스 오른쪽 버튼으로 클릭하고 전원(Power) > 켜기(Power On)를 선택하여 VM을 다시 시작합니다.

    Harbor 설치 스크린샷

  5. Harbor VM을 다시 시작했기 때문에 VM의 호스트 주소 구성에 따라 추가 단계를 수행해야 할 수 있습니다.

  6. 고정 IP 주소(Static IP address): 추가 단계가 없습니다.

  7. 동적 IP 주소(Dynamic IP address): Harbor VM의 IP 주소가 변경된 경우:

    1. Harbor 저장소의 만료된 기존 Harbor CA 인증서를 새 인증서로 변경하는 방법 스레드에 설명된 대로 새 IP 주소용 인증서를 생성합니다.
    2. 아래 인증서 순환에 설명된 대로 새 인증서를 VM에 적용합니다.
  8. FQDN: Harbor VM의 IP 주소가 변경된 경우 VM의 /etc/hosts 파일 또는 DNS 레코드에서 해당 주소를 업데이트합니다.

인증서 순환

Harbor VM의 IP 주소가 변경되면 인증서를 순환합니다.

  1. VM에 ssh.

  2. Harbor 서비스를 중지합니다.

    systemctl stop harbor
    
  3. 이전 인증서의 server.crt, server.key, ca.crt 파일을 이동하거나 이름을 변경합니다.

    • server.crt/storage/data/secret/cert/server.crt에 있습니다.
    • server.key/storage/data/secret/cert/server.key에 있습니다.
    • ca.crt/storage/data/ca_download/ca.crt에 있습니다.
  4. 새 인증서의 server.crt, server.key, ca.crt를 위 위치에 저장하고 파일 소유권과 사용 권한을 이전 파일과 동일하게 설정합니다.

  5. Harbor 서비스를 시작합니다.

    systemctl start harbor
    

후속 작업

이 Harbor 레지스트리를 사용하여 인터넷이 제한된 환경에서 관리 클러스터를 배포한 후 TKG 워크로드 클러스터가 다음 두 가지 방법 중 하나로 Harbor를 사용하도록 설정할 수 있습니다.

  • 외부 Harbor 레지스트리를 사용합니다. 이 레지스트리가 신뢰할 수 있는 CA 인증서를 사용하는 경우 워크로드 클러스터와 레지스트리 간의 연결이 안전합니다. 중앙 레지스트리에서 자체 서명된 인증서를 사용하는 경우 TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY를 비활성화하고 TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE 옵션을 지정할 수 있습니다. 이 옵션을 설정하면 자체 서명된 인증서가 워크로드 클러스터에 자동으로 삽입됩니다.

  • Harbor의 두 번째 인스턴스를 TKG 내에서 공유 서비스로 배포합니다. VMware Harbor 패키지를 TKG에서 관리하는 공유 서비스로 배포하는 것이 좋습니다. 자세한 내용은 서비스 레지스트리용 Harbor 설치를 참조하십시오.

로드 밸런싱이 포함된 인프라에서 VMware은 Harbor 레지스트리 및 외부 DNS에 설명된 대로 Harbor 서비스와 함께 외부 DNS 패키징 서비스를 설치하는 것을 권장합니다.

check-circle-line exclamation-circle-line close-line
Scroll to top icon