如果要將內嵌式 Harbor 登錄與 主管 搭配使用,則可以將映像從內嵌式登錄移轉到作為 主管服務 安裝的 Harbor 登錄。

必要條件

  • 確認已在 主管 上安裝 Contour 和 Harbor 主管服務
  • 確認用於 主管 的 DNS 包含對應到 Envoy 服務入口 IP 的 Harbor FQDN 項目。
  • 確認已在 主管 與 Harbor 之間建立信任。如果在未執行 Harbor 的 主管 上執行的 Tanzu Kubernetes Grid 叢集已參考映像,請確認這些 Tanzu Kubernetes Grid 叢集與 Harbor 之間存在信任關係。

程序

  1. 以 vCenter Single-Sign-On 使用者身分登入 主管
  2. 設定到 Harbor 主管服務 的網路存取出口。
    1. 在 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:
        - {}
  3. 存取內嵌式登錄的密碼,以便以後可以將登錄作為複寫端點新增到 Harbor。
    1. 向內嵌式登錄命名空間 (例如,可命名為 vmware-system-registry-437393318) 上的管理 vCenter Single Sign-On 使用者授與編輯權限。

      向管理員帳戶新增編輯權限的對話方塊。
    2. 從內嵌式登錄命名空間存取密碼。
      # 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
      ...
    3. 對使用者名稱和密碼進行解碼。
      # echo 'WVdSdGFXND0=' | base64 -d | base64 -d
      admin
       
      # echo 'UDNSak4wQk5VbFlrY1VZeVprUmpKQT09' | base64 -d | base64 -d
      ?tc7@MRV$qF2fDc$
  4. 將內嵌式登錄的複寫端點和複寫規則新增到 Harbor 主管服務
    1. 以 root 身分登入 Harbor 主管服務 的使用者介面。
    2. 按一下登錄,然後按一下新增端點
      [新增登錄端點] 視窗中填入了 vRegistry URL 和認證的資料
    3. 選取複寫索引標籤,然後按一下新增複寫規則
      填寫以下設定,將其餘設定保留為預設值:
      • 名稱 - 提供規則名稱。
      • 複寫模式 - 選取以提取為基礎
      • 來源登錄 - 選取已新增的登錄端點。

      將複寫規則新增到 Harbor 並選取了必要設定的視窗。
    4. 按一下儲存
  5. 選取新建立的複寫規則,然後按一下複寫

結果

內嵌式登錄的內容將複寫到 Harbor 登錄。