如果要將內嵌式 Harbor 登錄與 主管 搭配使用,則可以將映像從內嵌式登錄移轉到作為 主管服務 安裝的 Harbor 登錄。
必要條件
- 確認已在 主管 上安裝 Contour 和 Harbor 主管服務。
- 確認用於 主管 的 DNS 包含對應到 Envoy 服務入口 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 主管服務。
- 以 root 身分登入 Harbor 主管服務 的使用者介面。
- 按一下登錄,然後按一下新增端點。
- 選取複寫索引標籤,然後按一下新增複寫規則。
填寫以下設定,將其餘設定保留為預設值:
- 名稱 - 提供規則名稱。
- 複寫模式 - 選取以提取為基礎。
- 來源登錄 - 選取已新增的登錄端點。
- 按一下儲存。
- 選取新建立的複寫規則,然後按一下複寫。