This site will be decommissioned on January 30th 2025. After that date content will be available at techdocs.broadcom.com.

vSphere에서 오프라인 Harbor 레지스트리 업그레이드

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

중요

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

오프라인 Harbor 레지스트리를 백업하고 복원하려면 vSphere에서 오프라인 Harbor 레지스트리 백업 및 복원을 참조하십시오.

다음 절차에서는 두 개의 OVA를 사용하여 vSphere에서 실행되는 Harbor 인스턴스를 업그레이드합니다.

  • OVA 1은 업그레이드하려는 이전 Harbor OVA입니다. 예를 들어 Harbor v2.7.1 OVA를 입력합니다.
  • OVA 2는 업그레이드하려는 새 Harbor 버전을 실행하는 OVA입니다(예: Harbor v2.8.2 OVA).

OVA 1의 데이터 디스크에는 이미지, 사용자, 프로젝트, 암호를 포함하여 Harbor에서 현재 사용하는 모든 데이터가 포함됩니다.

Harbor를 이전 OVA인 OVA 1에서 새 OVA인 OVA 2로 업그레이드하는 경우, 스크립트를 실행하여 자동으로 업그레이드하거나 수동으로 업그레이드할 수 있습니다.

참고

OVA 업그레이드 프로세스는 템플릿 사용자 지정(Customize Template) > Harbor 구성(Harbor Configurations) 아래의 관리자 암호(Administrator Password)데이터베이스 암호(Database Password) 설정을 OVA 1의 암호 설정으로 덮어씁니다.

Harbor OVA 2.8.2부터는 Docker daemon.jsonbipdefault-address-pools 구성을 지원합니다. 이 구성은 수동 단계 또는 harbor-upgrade.sh 스크립트를 실행하여 마이그레이션되지 않습니다. 새 OVA인 OVA2를 배포할 때 다시 구성해야 합니다.

Harbor OVA 자동 업그레이드

Harbor OVA 2.8.2부터는 Harbor OVA 업그레이드를 자동으로 수행하는 스크립트(harbor-upgrade.sh)를 제공합니다.

중요

harbor-upgrade.sh 스크립트를 실행하기 전에 OVA 1 VM에서 모든 기존 스냅샷을 삭제해야 합니다. OVA 1 VM에 스냅샷이 있는 경우 자동 업그레이드를 수행할 때 데이터 디스크를 확장할 수 없으며 스크립트가 실행되지 않고 종료됩니다. 스냅샷을 제거하지 않으려면 수동으로 업그레이드해야 합니다.

  1. Customer Connect의 Tanzu Kubernetes Grid v2.3.1 제품 다운로드에서 새 Harbor OVA를 다운로드하고 vSphere에서 오프라인 Harbor 레지스트리 배포 절차에 따라 vSphere에 배포합니다.
  2. 결과 OVA 2 VM의 전원을 켭니다.
  3. SSH를 사용하여 새 OVA 2 VM에 로그인합니다.
  4. /etc/goharbor/harbor/harbor-upgrade.sh 스크립트를 실행합니다.

    스크립트를 실행하기 전에 스크립트를 실행하는 데 필요한 몇 가지 정보를 수집해야 합니다.

    • 이전 OVA VM의 이름
    • vCenter Server FQDN 또는 IP 주소
    • vCenter Server 관리자 사용자 이름
    • vCenter 관리자 암호(특수 문자가 포함된 경우 한 번의 따옴표로 묶어야 할 수 있음)
    /etc/goharbor/harbor/harbor-upgrade.sh --old-ova-vm-name OLD_OVA_VM_NAME
    

harbor-upgrade.sh 스크립트 사용에 대한 자세한 내용은 /etc/goharbor/harbor/harbor-upgrade.sh -h를 실행합니다.

Harbor OVA 수동 업그레이드

Harbor를 수동으로 업그레이드하려면 OVA 1 데이터 디스크를 기존 디스크로 OVA 2에 추가한 다음 해당 컨텐츠를 복사하여 데이터를 마이그레이션합니다.

  1. Customer Connect의 Tanzu Kubernetes Grid v2.3.1 제품 다운로드에서 새 Harbor OVA를 다운로드하고 vSphere에서 오프라인 Harbor 레지스트리 배포 절차에 따라 vSphere에 배포합니다.

  2. OVA 1의 전원을 끕니다.

    1. vSphere 인벤토리에서 OVA 1을 마우스 오른쪽 버튼으로 클릭하고 전원(Power) > 게스트 운영 체제 종료(Shut Down Guest OS)를 선택합니다.

      Harbor 업그레이드 스크린샷

    2. OVA 1의 스냅샷을 생성합니다.

      Harbor 업그레이드 스크린샷

      이 백업에서 복원하려면 vSphere에서 오프라인 Harbor 레지스트리 백업 및 복원을 참조하십시오.

    3. OVA 1 디스크 파일 위치를 검색합니다. 인벤토리에서 OVA 1을 마우스 오른쪽 버튼으로 클릭하고 설정 편집(Edit Setting) > 디스크 파일(Disk File)을 선택한 후 값을 기록합니다.

      Harbor 업그레이드 스크린샷

    업그레이드 프로세스 동안 OVA 1의 전원을 다시 켜지 마십시오.

  3. ssh를 사용하여 OVA 2에 로그인합니다.

    ssh root@OVA2-IP
    
  4. OVA 2에서 Harbor를 중지합니다.

    1. Harbor가 실행 중인지 확인합니다.

      docker ps
      
    2. Harbor 프로세스를 중지합니다.

      systemctl stop harbor
      
    3. Harbor가 중지되고 실행되고 있지 않은지 확인합니다.

      docker ps
      
  5. OVA 1 데이터 디스크를 OVA 2에 "기존 디스크"로 추가합니다.

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

      Harbor 업그레이드 스크린샷

    2. 새 창이 나타납니다. 오른쪽 위에 있는 새 디바이스 추가(ADD NEW DEVICE) 드롭다운에서 기존 하드 디스크(Existing Hard Disk)를 선택합니다.

      Harbor 업그레이드 스크린샷

    3. 파일 선택(Select File)에서 OVA 1 데이터스토어(예: vsanDatastore) 및 이전에 기록된 디스크 파일 위치를 선택합니다. 파일 위치는 .vmdk로 끝납니다. 확인(OK)을 클릭합니다.

      Harbor 업그레이드 스크린샷

    4. 새 하드 디스크(New Hard Disk) 목록이 설정 편집(Edit Settings) > 가상 설정(Virtual Settings) 탭에 추가됩니다. 확인(OK)을 클릭합니다.

      Harbor 업그레이드 스크린샷

    5. 최근 작업(Recent Tasks) 표시줄에서 새 디스크 추가가 완료될 때까지 기다립니다.

    6. ova1의 데이터 디스크가 ova2에 추가되었는지 확인하려면 해당 목록을 다시 마우스 오른쪽 버튼으로 클릭하고 설정 편집(Edit Settings)을 선택합니다.

      Harbor 업그레이드 스크린샷

  6. OVA 1 데이터가 포함된 디스크를 OVA 2 파일 시스템에 마운트합니다.

    1. ssh를 통해 OVA 2에 로그인한 명령 프롬프트에서 lsblk를 실행하여 새로 추가된 디스크가 추가된 블록 디바이스를 확인합니다.

      Harbor 업그레이드 스크린샷

    2. mkdir -p /ova1을 실행하여 OVA 2 파일 시스템에서 새 디스크에 대한 마운트 지점을 생성합니다.

      Harbor 업그레이드 스크린샷

    3. mount 명령을 실행하여 블록 디바이스를 파일 시스템의 최상위 수준인 마운트 지점에 마운트합니다. 예를 들면 다음과 같습니다.

      mount DEVICE /ova1
      

      여기서 DEVICElsblk에 의해 나열된 새 디바이스입니다(예: /dev/sdc1).

      Harbor 업그레이드 스크린샷

  7. harbor.yml 파일을 OVA 2 Harbor 버전을 나타내는 파일 이름으로 백업합니다. 예:

    # for example, if your new Harbor OVA (ova2) version is 2.8.2, then change harborXYZ.origin.yml to harbor282.origin.yml
    mv /etc/goharbor/harbor/harbor.yml /etc/goharbor/harbor/harborXYZ.origin.yml
    
  8. 마이그레이션된 OVA 1 데이터 디스크의 harbor.yml 파일을 OVA 2 Harbor 디렉토리로 복사합니다. 예:

    cp -pr /ova1/harbor.yml /etc/goharbor/harbor/harbor.yml
    
  9. OVA 2에 동적으로 할당된 IP 주소 또는 OVA 1의 다른 고정 IP 또는 FQDN이 있는 경우 그에 따라 /etc/goharbor/harbor/harbor.yml 파일에서 hostname 설정을 업데이트해야 할 수 있습니다. OVA 1에서 복사한 hostname 값이 OVA 2에 대해 올바르지 않으면 OVA 2의 올바른 주소 또는 FQDN으로 변경합니다.

    참고

    인증서를 OVA 1에서 OVA 2로 복사할 필요가 없습니다. 네트워크 관리에 따라 OVA 2의 인증서는 새 인증서이거나 OVA 1 인증서와 동일하지만 어느 쪽이든 작동합니다.

  10. OVA 2에서 다음 디렉토리를 제거합니다.

    rm -rf /storage/data/!(ca_download)
    rm -rf /storage/log/*
    
  11. 데이터 디렉토리를 OVA 1 데이터 디스크에서 OVA 2로 복사합니다.

    cp -pr /ova1/data/!(ca_download) /storage/data
    
  12. Harbor 로그 디렉토리를 OVA 1 데이터 디스크에서 OVA 2로 복사합니다.

    cp -pr /ova1/log/* /storage/log
    
  13. OVA 2에서 OVA 1 디스크를 마운트 해제합니다.

    umount /ova1
    rm -rf /ova1
    
  14. OVA 2에서 OVA 1 데이터 디스크를 제거합니다. OVA 2의 vCenter 가상 하드웨어(Virtual Hardware) > 설정 편집(Edit Settings)에서, 추가된 OVA 1 하드 디스크가 나열된 줄에서 X 버튼을 클릭합니다. 데이터스토어에서 파일 삭제(Delete files from datastore) 확인란을 활성화하지 말고 확인(OK)을 클릭하여 확인합니다.

    Harbor 업그레이드 스크린샷

    Harbor 업그레이드 스크린샷

  15. Harbor 컨테이너에서 harbor.yml를 실행하여 복사한 migrate 파일을 업그레이드합니다.

    cd /etc/goharbor/harbor
    docker run -it --rm -v /:/hostfs vmware.io/goharbor/prepare:TAG migrate -i /etc/goharbor/harbor/harbor.yml
    

    여기서 TAG는 OVA 2의 Harbor 이미지 태그입니다. 예를 들면 다음과 같습니다.

    root@localhost [ /etc/goharbor/harbor ]# docker images | grep vmware.io/goharbor/prepare
    vmware.io/goharbor/prepare                v2.8.2_vmware.2   a82940c8052a   2 weeks ago   163MB
    
    root@localhost [ /etc/goharbor/harbor ]# docker run -it --rm -v /:/hostfs vmware.io/goharbor/prepare:v2.8.2_vmware.2 migrate -i /etc/goharbor/harbor/harbor.yml
    migrating to version 2.7.0
    migrating to version 2.8.0
    Written new values to /etc/goharbor/harbor/harbor.yml
    
  16. 새 OVA 2 버전 Harbor harbor.yml/storage/harbor.yml로 복사합니다.

    cp -pr /etc/goharbor/harbor/harbor.yml /storage/harbor.yml
    
  17. OVA 2에서 Harbor prepare 스크립트를 실행합니다. OVA 1에서 Harbor 기본 스캐너를 사용하도록 설정했는지 여부에 따라 --with-trivy 플래그를 추가해야 할 수 있습니다.

    • 스캐너 사용하지 않음:

      cd /etc/goharbor/harbor && /etc/goharbor/harbor/prepare
      
    • 스캐너 사용:

      cd /etc/goharbor/harbor && /etc/goharbor/harbor/prepare --with-trivy
      
  18. Harbor 서비스를 시작합니다.

    systemctl start harbor
    
check-circle-line exclamation-circle-line close-line
Scroll to top icon