이 항목에서는 다운로드한 OVA 파일에서 개인 Harbor 이미지 레지스트리를 설치하여 오프라인 vSphere 환경에 TKG(Tanzu Kubernetes Grid)를 배포하는 데 필요한 이미지를 제공하는 방법을 설명합니다. 그 결과 Harbor 레지스트리는 TKG와 별도로 실행되고 TKG에서 사용되는 구성 요소 이미지를 저장하고 관리합니다.
중요
이 VM 기반 Harbor 배포는 인터넷 제한 또는 에어갭 환경에서 TKG 시스템 이미지를 호스팅하는 경우에만 지원됩니다. 운영 환경에서 호스팅된 애플리케이션에 대해 많은 수의 이미지를 관리할 수 있는 확장 가능하고 고가용성 Harbor를 배포하려면 Tanzu CLI를 사용하여 TKG 2.3 워크로드 클러스터 생성 및 관리의 서비스 레지스트리용 Harbor 설치에 설명된 대로 TKG 클러스터에 Harbor 패키지를 배포합니다.
Notary와 Chartmuseum은 Harbor v2.6 이후 더 이상 사용되지 않으며 Harbor v2.6.0 릴리스 정보에 설명된 대로 향후 릴리스에서 제거될 예정입니다. 컨테이너 서명 및 확인을 위해 Sigstore Cosign으로 전환합니다.
ca.crt
, server.crt
, server.key
파일OVA 파일에서 Harbor를 배포하려면 다음을 수행합니다.
vCenter vSphere 클러스터를 마우스 오른쪽 버튼으로 클릭하고 OVF 템플릿 배포(Deploy OVF Template)…를 선택합니다.
OVF 템플릿 배포(Deploy OVF Template) 창이 나타납니다. 로컬 파일(Local File)을 선택하고 다운로드한 Harbor OVA 파일의 위치를 찾습니다.
오른쪽 아래에서 다음(NEXT)을 클릭합니다. 일련의 구성 창이 나타납니다.
소스 확인: 예(YES)를 클릭합니다.
가상 시스템 이름: Harbor 인스턴스를 실행하는 가상 시스템에 대해 선택하는 이름을 입력합니다. 다음(NEXT)을 클릭합니다.
계산 리소스 선택: 기본 선택 항목을 그대로 두고 다음(NEXT)을 클릭합니다.
vSphere OVF 템플릿을 다운로드하고 렌더링하므로 이 단계는 몇 분 정도 걸릴 수 있습니다.
세부 정보 검토: 다음(NEXT)을 클릭합니다.
라이센스 계약: 라이센스를 수락하고 다음(NEXT)을 클릭합니다.
스토리지 선택: vsanDatastore를 선택하고 다음(NEXT)을 클릭합니다.
네트워크 선택: 기본 VM 네트워크(VM Network)를 선택하고 다음(NEXT)을 클릭합니다.
템플릿 사용자 지정(Customize template) > VM 자격 증명(VM Credentials):
루트 암호(필수): VM의 root
사용자 계정의 기본 설정 암호이며 8~128자여야 합니다.
루트를 통한 SSH 허용: VM에 대한 ssh
액세스를 root
사용자로 허용하려면 기본값을 사용하도록 둡니다.
템플릿 사용자 지정(Customize template) > Harbor 구성(Harbor Configurations):
호스트 이름(Hostname)(선택 사항): 입력할 경우 Harbor 호스트 이름을 FQDN(예: yourdomain.com
)으로 지정합니다. IP 주소 또는 localhost
일 수 없습니다.
호스트 이름(Hostname)을 지정하면 SAN(주체 대체 이름) 속성에 DNS 정보만 포함됩니다. IP 정보가 제공되지 않았습니다.
호스트 이름(Hostname)을 지정하지 않으면 SAN 속성에 IP 정보만 포함되며 DNS 정보가 제공되지 않습니다.
관리자 암호(필수): Harbor admin
사용자의 암호입니다. 관리자가 Harbor UI 및 클라이언트 컨테이너에 액세스하여 이미지를 풀 및 푸시하는 데 사용합니다. 8~128자여야 합니다.
Harbor 데이터베이스 암호: Harbor 내부 데이터베이스의 암호입니다. 입력할 경우 8~128자여야 합니다.
Harbor 기본 스캐너 활성화: Trivy 스캐너를 설치하고 이를 활성화하여 Harbor에 업로드될 때 이미지를 스캔할 수 있습니다.
Harbor에 자체 서명된 인증서 사용:
자체 서명된 인증서를 사용하도록 설정하고 CA 인증서, 서버 인증서, 서버 키는 비워 둡니다.
그렇지 않으면 Harbor에 자체 서명된 인증서 사용을 비활성화하고 CA 인증서, 서버 인증서, 서버 키의 다중 라인 파일 컨텐츠에 붙여 넣습니다. 양식에 붙여 넣으면 다중 라인 값이 공백 문자를 구분 기호로 사용하여 단일 라인 문자열로 바뀝니다.
템플릿 사용자 지정(Customize template) > 네트워킹 구성(Networking Configurations):
IP 주소, 넷마스크, 게이트웨이: eth0
의 고정 IP 주소, 넷마스크, 게이트웨이입니다(있는 경우).
DNS, DNS 도메인: Harbor VM의 DNS 서버 및 도메인입니다.
(선택 사항) 템플릿 사용자 지정(Customize template) > Docker 구성(Docker Configurations):
이 구성은 선택 사항이며 Harbor v2.8.x 이상이 있는 OVA에만 사용할 수 있습니다.
Docker 데몬 BIP 값: Docker 데몬을 구성하기 위한 CIDR 형식 값입니다. 예를 들면 다음과 같습니다. 198.18.251.1/24
주소 풀 1 기본, 주소 풀 1 크기: 주소 풀 기본 및 주소 풀 크기는 쌍(있는 경우)으로 구성해야 합니다. 최대 3 쌍의 주소 풀 기본 및 주소 풀 크기를 허용합니다. 또한 주소 풀 기본은 CIDR 형식이어야 합니다(예: 198.18.252.0/22). 주소 풀 크기는 1~32 사이의 정수여야 합니다.
완료 준비: 구성을 검토하고 완료(FINISH)를 클릭합니다.
Docker 배포(선택 사항)
Harbor v2.8.x 이상이 있는 OVA의 경우 위에 설명된 Docker 구성 탭에 구성된 대로 OVA에서 실행되도록 Docker 데몬 구성을 선택적으로 설정할 수 있습니다.
Docker 구성에 잘못된 인수를 입력하면 firstboot systemd
서비스와 Docker가 모두 실패합니다.
Docker 설치를 확인하려면 Harbor VM에 ssh
를 설치하고 systemctl status firstboot
및 systemctl status docker
를 실행합니다. firstboot
서비스 상태가 Active: failed
로 나열되면 배포가 실패하지만, Active: inactive (dead)
및 firstboot.service: Succeeded
가 표시되고 docker
서비스가 Active: active (running)
로 표시되면 배포가 성공했습니다.
로그에서 자세한 내용을 확인하려면 journalctl -u firstboot
및 journalctl -u docker
를 실행합니다.
Harbor 배포:
Harbor OVA를 처음 배포할 때 Harbor에서 Docker 이미지를 로드하는 데 몇 분 정도 걸립니다.
프로세스를 보고 진행 중인지 확인하려면 ssh
VM에 로그인하고 다음을 실행합니다.
watch docker ps
Harbor가 5분 정도 후에 실행되고 있지 않으면 디버깅을 위해 VM에서 로그 파일을 검색합니다.
cd /etc/goharbor/harbor && ./harbor-support.sh --include-private
로그 파일을 찾아 압축을 풉니다. 이름은 /storage/log/harbor_appliance_logs_2022-11-30T09-39-12Z.tar.gz
와 비슷합니다.
아래와 같이 Error: Unable to retrieve manifest or certificate file
오류가 표시되면 Harbor OVA를 다시 배포해 보십시오.
인터넷 제한 환경에서 Tanzu Kubernetes Grid v2.3을 실행하는 Harbor의 프록시 캐시 기능을 사용할 수 없습니다. 여전히 Harbor 프록시 캐시를 사용하여 이전 버전의 Tanzu Kubernetes Grid 이미지 및 애플리케이션 이미지와 같은 비 Tanzu 이미지의 이미지를 프록시할 수 있습니다.
root
암호를 분실한 경우 분실한 루트 암호 재설정 절차에 따라 복구합니다.
OVA에서 배포된 Harbor 인스턴스에는 두 개의 디스크가 있습니다.
/storage
로 마운트되었습니다.요청을 수용하기 위해 Harbor 데이터 디스크의 크기를 늘려야 하는 경우 설정을 변경하는 동안 Harbor VM의 전원을 일시적으로 꺼야 합니다. VM에 동적 IP 주소가 있는 경우 VM을 다시 시작하려면 아래 설명된 추가 단계가 필요합니다.
Harbor 인스턴스의 데이터 디스크를 확장하려면 다음을 수행합니다.
vSphere 호스트 및 클러스터(Hosts and Clusters) 보기에서 Harbor OVA VM을 마우스 오른쪽 버튼으로 클릭하고 전원(Power) > 끄기(Power Off) 를 선택합니다.
Harbor OVA VM을 다시 마우스 오른쪽 버튼으로 클릭하고 설정 편집(Edit Settings)을 선택합니다.
설정 편집(Edit Settings) 창이 나타납니다. 가상 하드웨어(Virtual Hardware)에서 하드 디스크 2(Hard disk 2) 설정을 원하는 용량으로 늘립니다. 확인(OK)을 클릭합니다.
Harbor OVA VM을 다시 마우스 오른쪽 버튼으로 클릭하고 전원(Power) > 켜기(Power On)를 선택하여 VM을 다시 시작합니다.
Harbor VM을 다시 시작했기 때문에 VM의 호스트 주소 구성에 따라 추가 단계를 수행해야 할 수 있습니다.
고정 IP 주소(Static IP address): 추가 단계가 없습니다.
동적 IP 주소(Dynamic IP address): Harbor VM의 IP 주소가 변경된 경우:
FQDN: Harbor VM의 IP 주소가 변경된 경우 VM의 /etc/hosts
파일 또는 DNS 레코드에서 해당 주소를 업데이트합니다.
Harbor VM의 IP 주소가 변경되면 인증서를 순환합니다.
VM에 ssh
.
Harbor 서비스를 중지합니다.
systemctl stop harbor
이전 인증서의 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
에 있습니다.새 인증서의 server.crt
, server.key
, ca.crt
를 위 위치에 저장하고 파일 소유권과 사용 권한을 이전 파일과 동일하게 설정합니다.
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 패키징 서비스를 설치하는 것을 권장합니다.