감독자에서 내장된 Harbor 레지스트리를 사용하는 경우 내장된 레지스트리의 이미지를 감독자 서비스로 설치한 Harbor 레지스트리로 마이그레이션할 수 있습니다.
사전 요구 사항
- Contour 및 Harbor 감독자 서비스가 감독자에 설치되어 있는지 확인합니다.
- 감독자에서 사용하는 DNS에 엔보이 서비스 수신 IP에 매핑된 Harbor FQDN의 항목이 포함되어 있는지 확인합니다.
- 감독자와 Harbor 간에 신뢰가 설정되어 있는지 확인합니다. Harbor가 실행되는 것과 다른 감독자에서 실행되는 Tanzu Kubernetes Grid 클러스터에서 이미지를 참조하는 경우 이러한 Tanzu Kubernetes Grid 클러스터와 Harbor 간에 신뢰가 있는지 확인합니다.
프로시저
- 감독자에 vCenter Single-Sign-On 사용자로 로그인합니다.
- Harbor 감독자 서비스에 대한 네트워크 액세스 송신을 설정합니다.
- Harbor의 서비스 네임스페이스(예: svc-harbor-domain-c9)에 allow-all-egress-harbor-supervisor-service라는 네트워크 정책 CRD를 생성합니다.
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-all-egress-harbor-supervisor-service namespace: svc-harbor-domain-c9 spec: podSelector: matchLabels: app: harbor egress: - {}
- Harbor의 서비스 네임스페이스(예: svc-harbor-domain-c9)에 allow-all-egress-harbor-supervisor-service라는 네트워크 정책 CRD를 생성합니다.
- 내장된 레지스트리의 암호에 액세스합니다. 그래야 나중에 레지스트리를 Harbor에 대한복제 끝점으로 추가할 수 있습니다.
- 내장된 레지스트리 네임스페이스(예: vmware-system-registry-437393318)의 관리 vCenter Single Sign-On 사용자에게 편집 권한을 부여합니다.
- 내장된 레지스트리 네임스페이스에서 암호에 액세스합니다.
# kubectl get secrets -n vmware-system-registry-437393318 harbor-437393318-controller-registry -o yaml apiVersion: v1 data: harborAdminPassword: UDNSak4wQk5VbFlrY1VZeVprUmpKQT09 harborAdminUsername: WVdSdGFXND0= harborPostgresPassword: TlRoS1ZHeEFLa1lrVkdjaGN6aGtXZz09 kind: Secret ...
- 사용자 이름과 암호를 디코딩합니다.
# echo 'WVdSdGFXND0=' | base64 -d | base64 -d admin # echo 'UDNSak4wQk5VbFlrY1VZeVprUmpKQT09' | base64 -d | base64 -d ?tc7@MRV$qF2fDc$
- 내장된 레지스트리 네임스페이스(예: vmware-system-registry-437393318)의 관리 vCenter Single Sign-On 사용자에게 편집 권한을 부여합니다.
- 내장된 레지스트리에 대한 복제 끝점 및 복제 규칙을 Harbor 감독자 서비스에 추가합니다.
- Harbor 감독자 서비스의 UI에 루트로 로그인합니다.
- 레지스트리를 클릭하고 새 끝점을 클릭합니다.
- 복제 탭을 선택하고 새 복제 규칙을 클릭합니다.
나머지 설정은 기본값으로 두고 다음 설정을 채웁니다.
- 이름 - 규칙의 이름을 제공합니다.
- 복제 모드 - 풀 기반을 선택합니다.
- 소스 레지스트리 - 추가한 레지스트리 끝점을 선택합니다.
- 저장을 클릭합니다.
- 새로 생성된 복제 규칙을 선택하고 복제를 클릭합니다.