Harbor 컨테이너 레지스트리를 감독자 서비스로 설치하고 Harbor를 개인 레지스트리로 실행할 수 있습니다.

사전 요구 사항

다음 사전 요구 사항을 준수합니다.
  • vSphere 8 감독자를 사용하도록 설정합니다.
  • 감독자 서비스를 숙지합니다.
참고: 이러한 지침은 vSphere 8 및 NSX 4 네트워킹을 통해 검증됩니다.

필요한 YAML 파일 다운로드

Contour 및 Harbor를 포함하여 필요한 YAML 파일을 다운로드합니다.
  1. Kubernetes 수신 컨트롤러 서비스 사이트에서 다음 Contour 파일을 다운로드합니다.
    1. Contour 서비스 정의 파일: contour.yml
    2. Contour 서비스 구성 파일: contour-data-values.yml
  2. 클라우드 네이티브 레지스트리 서비스 사이트에서 다음 Harbor 파일을 다운로드합니다.
    1. Harbor 서비스 정의 파일: harbor.yml
    2. Harbor 서비스 구성 파일: harbor-data-values.yml

Contour 설치

Harbor를 설치하기 전에 먼저 Contour를 설치해야 합니다.
  1. 워크로드 관리 > > 서비스 > 추가에서 contour.yml을 vCenter에 업로드합니다.
  2. Contour 서비스 정의가 추가되었는지 확인합니다.
  3. 워크로드 관리 > 감독자 > 감독자 > 구성을 선택합니다.
  4. 감독자 서비스 > 개요를 선택합니다.
  5. 사용 가능 탭을 선택합니다.
  6. Contour를 선택하고 설치를 클릭합니다.
  7. contour-data-values.yml의 컨텐츠를 복사한 후 "YAML 서비스 구성" 입력 필드에 붙여 넣습니다.
    참고: Contour 데이터 값은 있는 그대로 사용할 수 있으며 구성을 변경할 필요가 없습니다. Envoy의 서비스 유형은 LoadBalancer 로 설정됩니다.
  8. 확인을 클릭하여 Contour 설치를 계속 진행합니다.
  9. Contour가 설치되어 있는지 확인합니다.
    1. 이름이 svc-contour-domain-XXXXvSphere 네임스페이스를 선택합니다.
    2. 네트워크 탭을 선택하고 서비스를 선택합니다.
    3. ClusterIP 유형의 Contour 서비스와 LoadBalancer 유형의 엔보이 서비스가 표시됩니다. 엔보이 서비스에는 외부 IP 주소가 있어야 합니다.

Harbor 데이터 값 업데이트

Harbor를 설치하기 전에 데이터 값 파일을 업데이트합니다.
  1. 텍스트 편집기로 harbor-data-values.yml 파일을 엽니다.
  2. 다음과 같이 편집합니다. 이 내용은 반드시 편집해야 하며 다른 필드는 필요한 경우 편집할 수 있습니다.
  3. 변경 내용을 저장합니다.
    이름
    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를 설치합니다.
  1. 워크로드 관리 > > 서비스 > 추가에서 harbor.yml을 vCenter에 업로드합니다.
  2. Harbor 서비스 정의가 추가되었는지 확인합니다.
  3. 워크로드 관리 > 감독자 > 감독자 > 구성을 선택합니다.
  4. 감독자 서비스 > 개요를 선택합니다.
  5. 사용 가능 탭을 선택합니다.
  6. Harbor를 선택하고 설치를 클릭합니다.
  7. 편집한 harbor-data-values.yml의 컨텐츠를 복사한 후 "YAML 서비스 구성" 입력 필드에 붙여 넣습니다.
  8. 확인을 클릭하여 Harbor 설치를 계속 진행합니다.
  9. Harbor가 설치되어 있는지 확인합니다.
    1. 이름이 svc-harbor-domain-XXXXvSphere 네임스페이스를 선택합니다.
    2. 네트워크 탭을 선택하고 서비스를 선택합니다.
    3. Harbor용으로 설치된 여러 컨테이너가 표시됩니다(각 서비스는 ClusterIP 유형임).

Harbor에 대한 DNS 구성

도메인 이름을 등록하고 Harbor에 대한 DNS 레코드를 설정해야 합니다.
  1. 워크로드 관리 > 네임스페이스를 선택합니다.
  2. Contour 네임스페이스를 선택합니다.
  3. 네트워크 > 서비스를 선택합니다.
  4. 엔보이 수신 서비스의 외부 IP 주소(예: 10.197.154.71)를 기록합니다.
  5. Harbor 구성에서 지정한 FQDN(Harbor 도메인 이름)을 등록합니다.
  6. AWS Route 53 또는 유사한 서비스를 사용하여 DNS "A" 레코드를 생성합니다.

Harbor에 로그인

Harbor DNS가 설정되면 로그인합니다.
  1. Harbor에 대해 등록한 도메인 이름으로 이동합니다.
  2. Harbor 구성에서 지정한 관리자 | 암호를 사용하여 도메인에 로그인합니다.
  3. 로그인 후 더 안전한 암호로 변경합니다.

Harbor 레지스트리를 신뢰하도록 감독자 구성(선택 사항)

TKG 클러스터는 TKG 클러스터와 Harbor가 동일한 감독자에 배포될 때 Harbor 감독자 서비스를 신뢰하도록 자동 구성됩니다. 그러나 감독자vSphere 포드를 생성할 때 Harbor 감독자 서비스를 신뢰하도록 자동 구성되지 않습니다. Harbor CA 인증서로 configmap을 업데이트하여 감독자 및 Harbor 서비스 간에 신뢰를 설정하려면 다음 단계를 완료합니다.
  1. Harbor에서 관리 > 구성 > 시스템 설정으로 이동합니다.
  2. 파일 이름이 ca.crt인 레지스트리 루트 인증서를 다운로드합니다.
  3. KUBE_EDITOR 환경 변수를 구성합니다.

    Kubectl용 텍스트 편집기 구성의 내용을 참조하십시오.

  4. kubectl을 사용하여 감독자에 로그인합니다.

    kubectl을 사용하여 vCenter Single Sign-On 사용자로 감독자에 연결의 내용을 참조하십시오.

  5. 컨텍스트를 감독자 컨텍스트(IP 주소)로 전환합니다.
  6. 다음 명령을 사용하여 configmap/image-fetch-ca-bundle 을 편집합니다.
    kubectl edit configmap image-fetcher-ca-bundle -n kube-system
  7. Harbor ca.crt 파일의 컨텐츠를 복사하고 기존 인증서(감독자용으로, 변경해서는 안 됨) 아래에 configmap을 추가합니다. 파일에 대한 편집 내용을 저장합니다. Kubectl이 "configmap/image-fetcher-ca-bundle edited"를 보고하는 것을 볼 수 있습니다.