按照以下說明在執行適用於 vSphere 8.x 的 TKr 的 TKG 服務 叢集上安裝 Harbor 容器登錄。
必要條件
請遵循以下必要條件。
建立 Harbor 資料值
準備透過建立資料值檔案來安裝 Harbor。
- 取得存放庫的最新 Harbor 套件版本。
tanzu package available get harbor.tanzu.vmware.com -n tkg-system
或者,使用 kubectl。
kubectl -n tkg-system get packages | grep harbor
備註: 通常,應使用最新版本,除非需求不同。 - 產生
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 是要產生的資料值檔案的名稱和路徑
- 編輯
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 登錄。
- 建立 Harbor 的命名空間。
kubectl create ns tanzu-system-registry
- 安裝 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
- 確認 Harbor 安裝。
tanzu package installed get harbor --namespace tanzu-system-registry
使用類型為 LoadBalancer 的 Envoy 服務為 Harbor 設定 DNS
如果透過 LoadBalancer 公開必要 Contour with Envoy 服務,請取得負載平衡器的外部 IP 位址,並為 Harbor FQDN 建立 DNS 記錄。
- 取得類型為 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]}'
- 若要驗證 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
- 若要驗證 Harbor 延伸的安裝,請登入 Harbor。
- 在 DNS 伺服器上建立兩個 CNAME 記錄,以將 Envoy 服務負載平衡器
External-IP
位址對應至 Harbor FQDN 和 Notary FQDN。 - 安裝外部 DNS 延伸。
使用類型為 NodePort 的 Envoy 服務為 Harbor 設定 DNS
如果透過 NodePort 公開必要 Contour > Envoy 服務,請取得 worker 節點的虛擬機器 IP 位址,並為 Harbor FQDN 建立 DNS 記錄。
備註: 若要使用 NodePort,必須在
harbor-data-values.yaml
檔案中指定正確的
port.https
值。
- 將內容切換至佈建叢集所在的 vSphere 命名空間。
kubectl config use-context VSPHERE-NAMESPACE
- 列出叢集中的節點。
kubectl get virtualmachines
- 使用下列命令選擇其中一個 worker 節點並加以說明。
kubectl describe virtualmachines tkg2-cluster-X-workers-9twdr-59bc54dc97-kt4cm
- 找到虛擬機器的 IP 位址,例如
Vm Ip: 10.115.22.43
。 - 若要驗證 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
- 若要驗證 Harbor 延伸的安裝,請登入 Harbor。
- 在 DNS 伺服器上建立兩個 CNAME 記錄,以將 worker 節點 IP 位址對應至 Harbor FQDN 和 Notary FQDN。
- 安裝外部 DNS 延伸。
登入 Harbor Web 介面
安裝並設定 Harbor 後,請進行登入並開始使用。
- 存取位於
https://core.harbor.domain
的 Harbor 登錄 Web 介面或您使用的主機名稱。 - 透過使用者名稱 admin 以及您在
harbor-data-values.yaml
檔案中產生的密碼登入 Harbor。 - 確認您可以存取 Harbor 使用者介面。
- 取得 Harbor CA 憑證。
在 Harbor 介面中,選取新專案。
,或建立按一下登錄憑證,然後下載 Harbor CA 憑證 (ca.crt)。
- 將 Harbor CA 憑證新增至 Docker 用戶端的信任存放區,以便能夠將容器映像推送至 Harbor 登錄以及從中提取容器映像。請參閱對 TKG 服務 叢集使用私人登錄。
- 如需有關使用 Harbor 的詳細資料,請參閱 Harbor 說明文件。