可以对 TKG 集群 Pod 使用外部容器注册表。
专用容器注册表用例
容器注册表为 Kubernetes 部署提供了一项关键功能,可用作存储和共享容器映像的集中式存储库。最常用的公共容器注册表是 Docker Hub。有许多私有容器注册表产品。VMware Harbor 是主管附带的开源、云原生、专用容器注册表。
专用容器注册表配置
要将专用注册表用于 TKG 集群,需要为 TKG 集群配置一个或多个自签名证书以通过 HTTPS 提供专用注册表内容。在集群规范中,包含具有 additionalTrustedCAs
字段对的 trust
部分。您可以定义 TKG 集群应信任的任意数量的自签名证书。利用此功能,可以轻松定义证书列表,并在需要轮换时更新这些证书。
专用容器注册表证书的 Trust 字段
将证书条目(PEM 编码的公共证书的 base64 编码字符串)添加到 TKG 集群规范中的 additionalTrustedCAs
部分。
字段 | 描述 |
---|---|
trust |
部分标记。不接受任何数据。 |
additionalTrustedCAs |
部分标记。包括一系列证书,以及每个证书的名称和数据。 |
name |
TLS 证书的名称。 |
data |
以纯文本形式存储的 PEM 编码公用证书的双 base64 编码字符串。
注: 需要使用双 base64 编码。如果数据映射值的内容没有使用双 base6 编码,则无法处理生成的 PEM 文件。
|
v1alpha3 API 示例
下例说明了如何创建具有专用注册表证书的 TKG 2 集群。有关完整的规范,请参阅
v1alpha3 示例:具有自定义网络的 TKC。
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkg2-private-registry namespace: tkg2-cluster-ns spec: topology: controlPlane: ... nodePools: - name: worker ... settings: network: ... trust: additionalTrustedCAs: - name: CompanyInternalCA-1 data: LS0tLS1C...LS0tCg== - name: CompanyInternalCA-2 data: MTLtMT1C...MT0tPg==
v1beta1 API 示例
下例说明了如何使用 v1beta1 API 创建具有专用注册表证书的 TKG 2 集群。请参阅
集群 v1beta1 API规范中的
trust 变量描述。
spec: clusterNetwork: pods: ... serviceDomain: services: ... topology: class: tanzukubernetescluster controlPlane: ... variables: - name: storageClass value: tkg2-storage-profile - name: trust value: additionalTrustedCAs: - name: additional-ca-1
管理专用容器注册表证书
要轮换证书,VI 管理员或 DevOps 工程师将更改 TKG 集群规范中的证书内容,并应用该配置以触发该集群的滚动更新。
要从证书列表中移除证书,请将其删除并应用更新的规范,从而触发滚动更新。