可以安裝 Harbor 容器登錄作為 主管 服務,並將 Harbor 作為私人登錄執行。

必要條件

請遵循以下必要條件:
備註: 這些指示會透過 vSphere 8 和 NSX 4 網路進行驗證。

下載必要的 YAML 檔案

下載所需的 YAML 檔案,包括 Contour 和 Harbor。
  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

必須先安裝 Contour,然後再安裝 Harbor。
  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 類型的 Envoy 服務。envoy 服務應具有外部 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. 記錄 Envoy 入口服務的外部 IP 位址,例如 10.197.154.71。
  5. 登錄在 Harbor 組態中指定的 Harbor 網域名稱 (FQDN)。
  6. 使用 AWS Route 53 或類似服務建立 DNS「A」記錄。

登入 Harbor

設定 Harbor DNS 後,便可登入。
  1. 移至您為 Harbor 登錄的功能變數名稱。
  2. 使用 admin 和在 Harbor 組態中指定的密碼登入網域。
  3. 登入後,將密碼變更為更安全的密碼。

將主管設定為信任 Harbor 登錄 (可選)

當 TKG 叢集和 Harbor 部署在同一 主管 上時,TKG 叢集會自動設定為信任 Harbor 主管 服務。但是,建立 vSphere 網繭 時, 主管 不會自動設定為信任 Harbor 主管 服務。請完成以下步驟,將 configmap 更新為包含 Harbor CA 憑證資訊,以在 主管 和 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」。