如果要将嵌入式 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 主管服务 的 UI。
- 单击注册表,然后单击新建端点。
- 选择复制选项卡,然后单击新建复制规则。
填写以下设置,将其余设置保留为默认值:
- 名称 - 提供规则名称。
- 复制模式 - 选择基于提取。
- 源注册表 - 选择已添加的注册表端点。
- 单击保存。
- 选择新创建的复制规则,然后单击复制。