按照以下說明在執行適用於 vSphere 8.x 的 TKr 的 TKG 服務 叢集上安裝 Harbor 容器登錄。

必要條件

建立 Harbor 資料值

準備透過建立資料值檔案來安裝 Harbor。

  1. 取得存放庫的最新 Harbor 套件版本。
    tanzu package available get harbor.tanzu.vmware.com -n tkg-system

    或者,使用 kubectl。

    kubectl -n tkg-system get packages | grep harbor
    備註: 通常,應使用最新版本,除非需求不同。
  2. 產生 harbor-data-values.yaml 檔案。
    tanzu package available get harbor.tanzu.vmware.com/2.9.1+vmware.1-tkg.1 --default-values-file-output harbor-data-values.yaml
    其中:
    • 2.9.1+vmware.1-tkg.1 是目標套件版本
    • harbor-data-values.yaml 是要產生的資料值檔案的名稱和路徑
  3. 編輯 harbor-data-values.yaml 檔案並更新以下參數的值。

    根據需要設定其他參數。請參閱Harbor 套件參考

    欄位 說明
    hostname 用於存取 Harbor 管理主控台和登錄服務的 FQDN。將「yourdomain.com」取代為唯一主機名稱。
    harborAdminPassword 將密碼變更為唯一的強密碼 (也可以安裝後在使用者介面中進行變更)。
    persistence.persistentVolumeClaim.database.storageClass: 輸入vSphere命名空間的vSphere儲存區原則的名稱。
    persistence.persistentVolumeClaim.jobservice.storageClass: 輸入vSphere命名空間的vSphere儲存區原則的名稱。
    persistence.persistentVolumeClaim.redis.storageClass: 輸入vSphere命名空間的vSphere儲存區原則的名稱。
    persistence.persistentVolumeClaim.registry.storageClass: 輸入vSphere命名空間的vSphere儲存區原則的名稱。
    persistence.persistentVolumeClaim.trivy.storageClass: 輸入vSphere命名空間的vSphere儲存區原則的名稱。
    tlsCertificate.tlsSecretLabels: {"managed-by": "vmware-vRegistry"}

安裝 Harbor

完成下列步驟以安裝 Harbor 登錄。
  1. 建立 Harbor 的命名空間。
    kubectl create ns tanzu-system-registry
  2. 安裝 Harbor。
    tanzu package install harbor --package harbor.tanzu.vmware.com --version 2.9.1+vmware.1-tkg.1 --values-file harbor-data-values.yaml --namespace tanzu-system-registry
  3. 確認 Harbor 安裝。
    tanzu package installed get harbor --namespace tanzu-system-registry

使用類型為 LoadBalancer 的 Envoy 服務為 Harbor 設定 DNS

如果透過 LoadBalancer 公開必要 Contour with Envoy 服務,請取得負載平衡器的外部 IP 位址,並為 Harbor FQDN 建立 DNS 記錄。
  1. 取得類型為 LoadBalancer 的 Envoy 服務的 External-IP 位址。
    kubectl get service envoy -n tanzu-system-ingress
    您應該會看到傳回的 External-IP 位址,例如:
    NAME    TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)                      AGE
    envoy   LoadBalancer   10.99.25.220   10.195.141.17   80:30437/TCP,443:30589/TCP   3h27m
    或者,也可以使用下列命令取得 External-IP 位址。
    kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
  2. 若要驗證 Harbor 延伸的安裝,請使用對應至負載平衡器的 External-IP 位址的 Harbor 和 Notary FQDN 來更新本機 /etc/hosts 檔案,例如:
    127.0.0.1 localhost
    127.0.1.1 ubuntu
    #TKG Harbor with Envoy Load Balancer IP
    10.195.141.17 core.harbor.domain
    10.195.141.17 core.notary.harbor.domain
    
  3. 若要驗證 Harbor 延伸的安裝,請登入 Harbor。
  4. 在 DNS 伺服器上建立兩個 CNAME 記錄,以將 Envoy 服務負載平衡器 External-IP 位址對應至 Harbor FQDN 和 Notary FQDN。
  5. 安裝外部 DNS 延伸。

使用類型為 NodePort 的 Envoy 服務為 Harbor 設定 DNS

如果透過 NodePort 公開必要 Contour > Envoy 服務,請取得 worker 節點的虛擬機器 IP 位址,並為 Harbor FQDN 建立 DNS 記錄。
備註: 若要使用 NodePort,必須在 harbor-data-values.yaml 檔案中指定正確的 port.https 值。
  1. 將內容切換至佈建叢集所在的 vSphere 命名空間
    kubectl config use-context VSPHERE-NAMESPACE
  2. 列出叢集中的節點。
    kubectl get virtualmachines
  3. 使用下列命令選擇其中一個 worker 節點並加以說明。
    kubectl describe virtualmachines tkg2-cluster-X-workers-9twdr-59bc54dc97-kt4cm
  4. 找到虛擬機器的 IP 位址,例如 Vm Ip: 10.115.22.43
  5. 若要驗證 Harbor 延伸的安裝,請使用對應至 worker 節點 IP 位址的 Harbor 和 Notary FQDN 來更新本機 /etc/hosts 檔案,例如:
    127.0.0.1 localhost
    127.0.1.1 ubuntu
    #TKG Harbor with Envoy NodePort
    10.115.22.43 core.harbor.domain
    10.115.22.43 core.notary.harbor.domain
    
  6. 若要驗證 Harbor 延伸的安裝,請登入 Harbor。
  7. 在 DNS 伺服器上建立兩個 CNAME 記錄,以將 worker 節點 IP 位址對應至 Harbor FQDN 和 Notary FQDN。
  8. 安裝外部 DNS 延伸。

登入 Harbor Web 介面

安裝並設定 Harbor 後,請進行登入並開始使用。
  1. 存取位於 https://core.harbor.domain 的 Harbor 登錄 Web 介面或您使用的主機名稱。

    Harbor 登錄 Web 介面。

  2. 透過使用者名稱 admin 以及您在 harbor-data-values.yaml 檔案中產生的密碼登入 Harbor。

    Harbor 登入頁面,帶有使用者名稱 admin 和產生的密碼。

  3. 確認您可以存取 Harbor 使用者介面。

    登入後,將顯示 Harbor 使用者介面的 [專案] 索引標籤。

  4. 取得 Harbor CA 憑證。

    在 Harbor 介面中,選取專案 > 程式庫,或建立新專案

    按一下登錄憑證,然後下載 Harbor CA 憑證 (ca.crt)。

  5. 將 Harbor CA 憑證新增至 Docker 用戶端的信任存放區,以便能夠將容器映像推送至 Harbor 登錄以及從中提取容器映像。請參閱對 TKG 服務 叢集使用私人登錄
  6. 如需有關使用 Harbor 的詳細資料,請參閱 Harbor 說明文件