Harbor 컨테이너 레지스트리를 감독자 서비스로 설치하고 Harbor를 개인 레지스트리로 실행할 수 있습니다.
사전 요구 사항
다음 사전 요구 사항을 준수합니다.
- vSphere 8 감독자를 사용하도록 설정합니다.
- 감독자 서비스를 숙지합니다.
참고: 이러한 지침은 vSphere 8 및 NSX 4 네트워킹을 통해 검증됩니다.
필요한 YAML 파일 다운로드
Contour 및 Harbor를 포함하여 필요한 YAML 파일을 다운로드합니다.
- Kubernetes 수신 컨트롤러 서비스 사이트에서 다음 Contour 파일을 다운로드합니다.
- Contour 서비스 정의 파일: contour.yml
- Contour 서비스 구성 파일: contour-data-values.yml
- 클라우드 네이티브 레지스트리 서비스 사이트에서 다음 Harbor 파일을 다운로드합니다.
- Harbor 서비스 정의 파일: harbor.yml
- Harbor 서비스 구성 파일: harbor-data-values.yml
Contour 설치
Harbor를 설치하기 전에 먼저 Contour를 설치해야 합니다.
- contour.yml을 vCenter에 업로드합니다. 에서
- Contour 서비스 정의가 추가되었는지 확인합니다.
- 을 선택합니다.
- 를 선택합니다.
- 사용 가능 탭을 선택합니다.
- Contour를 선택하고 설치를 클릭합니다.
- contour-data-values.yml의 컨텐츠를 복사한 후 "YAML 서비스 구성" 입력 필드에 붙여 넣습니다.
참고: Contour 데이터 값은 있는 그대로 사용할 수 있으며 구성을 변경할 필요가 없습니다. Envoy의 서비스 유형은 LoadBalancer 로 설정됩니다.
- 확인을 클릭하여 Contour 설치를 계속 진행합니다.
- Contour가 설치되어 있는지 확인합니다.
- 이름이 svc-contour-domain-XXXX인 vSphere 네임스페이스를 선택합니다.
- 네트워크 탭을 선택하고 서비스를 선택합니다.
- ClusterIP 유형의 Contour 서비스와 LoadBalancer 유형의 엔보이 서비스가 표시됩니다. 엔보이 서비스에는 외부 IP 주소가 있어야 합니다.
Harbor 데이터 값 업데이트
Harbor를 설치하기 전에 데이터 값 파일을 업데이트합니다.
- 텍스트 편집기로 harbor-data-values.yml 파일을 엽니다.
- 다음과 같이 편집합니다. 이 내용은 반드시 편집해야 하며 다른 필드는 필요한 경우 편집할 수 있습니다.
- 변경 내용을 저장합니다.
이름 값 hostname harbordomain.com (고유한 항목 선택) tlsCertificate.tlsSecretLabels {"managed-by": "vmware-vRegistry"} (이 값을 확인하고 그대로 유지) persistence.persistentVolumeClaim.registry.storageClass "vwt-storage-policy" (감독자에 대한 vSphere 스토리지 정책 이름 입력) persistence.persistentVolumeClaim.jobservice.storageClass "vwt-storage-policy" (감독자에 대한 vSphere 스토리지 정책 이름 입력) persistence.persistentVolumeClaim.database.storageClass "vwt-storage-policy" (감독자에 대한 vSphere 스토리지 정책 이름 입력) persistence.persistentVolumeClaim.redis.storageClass "vwt-storage-policy" (감독자에 대한 vSphere 스토리지 정책 이름 입력) persistence.persistentVolumeClaim.trivy.storageClass "vwt-storage-policy" (감독자에 대한 vSphere 스토리지 정책 이름 입력)
Harbor 설치
다음 지침을 완료하여 Harbor를 설치합니다.
- harbor.yml을 vCenter에 업로드합니다. 에서
- Harbor 서비스 정의가 추가되었는지 확인합니다.
- 을 선택합니다.
- 를 선택합니다.
- 사용 가능 탭을 선택합니다.
- Harbor를 선택하고 설치를 클릭합니다.
- 편집한 harbor-data-values.yml의 컨텐츠를 복사한 후 "YAML 서비스 구성" 입력 필드에 붙여 넣습니다.
- 확인을 클릭하여 Harbor 설치를 계속 진행합니다.
- Harbor가 설치되어 있는지 확인합니다.
- 이름이 svc-harbor-domain-XXXX인 vSphere 네임스페이스를 선택합니다.
- 네트워크 탭을 선택하고 서비스를 선택합니다.
- Harbor용으로 설치된 여러 컨테이너가 표시됩니다(각 서비스는 ClusterIP 유형임).
Harbor에 대한 DNS 구성
도메인 이름을 등록하고 Harbor에 대한 DNS 레코드를 설정해야 합니다.
- 를 선택합니다.
- Contour 네임스페이스를 선택합니다.
- 를 선택합니다.
- 엔보이 수신 서비스의 외부 IP 주소(예: 10.197.154.71)를 기록합니다.
- Harbor 구성에서 지정한 FQDN(Harbor 도메인 이름)을 등록합니다.
- AWS Route 53 또는 유사한 서비스를 사용하여 DNS "A" 레코드를 생성합니다.
Harbor에 로그인
Harbor DNS가 설정되면 로그인합니다.
- Harbor에 대해 등록한 도메인 이름으로 이동합니다.
- Harbor 구성에서 지정한 관리자 | 암호를 사용하여 도메인에 로그인합니다.
- 로그인 후 더 안전한 암호로 변경합니다.
Harbor 레지스트리를 신뢰하도록 감독자 구성(선택 사항)
TKG 클러스터는 TKG 클러스터와 Harbor가 동일한
감독자에 배포될 때 Harbor
감독자 서비스를 신뢰하도록 자동 구성됩니다. 그러나
감독자는
vSphere 포드를 생성할 때 Harbor
감독자 서비스를 신뢰하도록 자동 구성되지 않습니다. Harbor CA 인증서로 configmap을 업데이트하여
감독자 및 Harbor 서비스 간에 신뢰를 설정하려면 다음 단계를 완료합니다.
- Harbor에서 으로 이동합니다.
- 파일 이름이 ca.crt인 레지스트리 루트 인증서를 다운로드합니다.
- KUBE_EDITOR 환경 변수를 구성합니다.
Kubectl용 텍스트 편집기 구성의 내용을 참조하십시오.
- kubectl을 사용하여 감독자에 로그인합니다.
kubectl을 사용하여 vCenter Single Sign-On 사용자로 감독자에 연결의 내용을 참조하십시오.
- 컨텍스트를 감독자 컨텍스트(IP 주소)로 전환합니다.
- 다음 명령을 사용하여 configmap/image-fetch-ca-bundle 을 편집합니다.
kubectl edit configmap image-fetcher-ca-bundle -n kube-system
- Harbor ca.crt 파일의 컨텐츠를 복사하고 기존 인증서(감독자용으로, 변경해서는 안 됨) 아래에 configmap을 추가합니다. 파일에 대한 편집 내용을 저장합니다. Kubectl이 "configmap/image-fetcher-ca-bundle edited"를 보고하는 것을 볼 수 있습니다.