请参阅此示例,使用一个或多个其他受信任 CA 证书置备 v1beta1 集群。
v1beta1 示例:具有其他受信任 CA 证书的集群
集群 v1beta1 API 提供了
trust 变量,用于为集群置备一个或多个其他受信任的 CA 证书。
字段 | 描述 |
---|---|
trust |
部分标记。不接受任何数据。 |
additionalTrustedCAs |
部分标记。为每个受信任的 CA 包含一组具有 name 的证书。 |
name |
Kubernetes 密钥中 data 映射字段的用户定义名称,该字段包含采用双 base64 编码的 PEM 格式的 CA 证书。
注: 需要使用双 base64 编码。如果内容未采用双 base6 编码,则无法处理生成的 PEM 文件。
|
下例演示了如何将包含 CA 证书的 Kubernetes 密钥添加到 v1beta1 API 集群规范。
#cluster-with-trusted-private-reg-cert.yaml apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: cluster01 namespace: tkgs-cluster-ns spec: clusterNetwork: services: cidrBlocks: ["198.52.100.0/12"] pods: cidrBlocks: ["192.101.2.0/16"] serviceDomain: "cluster.local" topology: class: tanzukubernetescluster version: v1.26.5+vmware.2-fips.1-tkg.1 controlPlane: replicas: 3 workers: machineDeployments: - class: node-pool name: node-pool-01 replicas: 3 variables: - name: vmClass value: guaranteed-medium - name: storageClass value: tkgs-storage-profile - name: defaultStorageClass value: tkgs-storage-profile - name: trust value: additionalTrustedCAs: - name: additional-ca-1
下例演示了包含其他受信任 CA 证书的 Kubernetes 密钥。
#additional-ca-1.yaml apiVersion: v1 data: additional-ca-1: TFMwdExTMUNSGlSzZ3Jaa...VVNVWkpRMEMwdExTMHRDZz09 kind: Secret metadata: name: cluster01-user-trusted-ca-secret namespace: tkgs-cluster-ns type: Opaque
其中:
- 密钥
data
映射的值是用户定义的字符串,它是 CA 证书的名称(在此示例中为additional-ca-1
),其值为采用双 base64 编码的 PEM 格式的 CA 证书。 - 在
metadata
部分中,密钥必须命名为CLUSTER-NAME-user-trusted-ca-secret
,其中 CLUSTER-NAME 是集群的名称。必须在集群所在的同一 vSphere 命名空间 中创建此密钥。
对 CA 证书的内容进行双 base64 编码。
- Linux:
base64 -w 0 ca.crt | base64 -w 0
- Windows:https://www.base64encode.org/。
过程:新集群
完成以下过程,以在新的 TKGS 集群中包含一个或多个其他受信任的 CA 证书。
- 对 CA 证书的内容进行双 base64 编码。
- 创建一个包含数据映射名称(其值为采用双 base64 编码的 PEM 格式的 CA 证书)的 Kubernetes 密钥。
- 在集群规范中,使用数据映射的名称填充
trust.additionalTrustedCAs
变量。 - 像平时一样置备集群。
- 成功置备集群后,您添加的 CA 证书将受集群信任。
过程:现有集群
完成以下过程,以将一个或多个其他受信任的 CA 证书添加到现有集群。
- 对 CA 证书的内容进行双 base64 编码。
- 创建一个包含数据映射名称(其值为采用双 base64 编码的 PEM 格式的 CA 证书)的 Kubernetes 密钥。
- 确认您已配置 kubectl 编辑。
- 编辑集群规范。
kubectl edit tanzukubernetescluster/tkgs-cluster-name
- 将
trust.additionalTrustedCAs
部分添加到规范中。 - 在
additionalTrustedCAs
字段中填充密钥(包含了采用双 base64 编码的 PEM 格式的 CA 证书)中的数据映射的名称 - 在文本编辑器中保存更改,并验证 kubectl 是否已注册这些更改。
kubectl edit cluster/tkgs-cluster-name cluster.run.tanzu.vmware.com/tkgs-cluster-name edited
- 为集群启动滚动更新时,将添加其他受信任的 CA 证书。
验证其他受信任的 CA 证书
添加到集群的其他受信任 CA 证书包含在集群的 kubeconfig 文件中。
轮换证书
要轮换证书,请创建新的密钥,并使用相应的值编辑集群规范。这将触发对集群进行滚动更新。
注: 系统不监控对
CLUSTER-NAME-user-trusted-ca-secret
所做的更改。如果
data
映射值发生更改,则这些更改不会反映在集群中。您需要创建新密钥及其
name
到
trust.additionalTrustCAs
的数据映射。
对其他受信任的 CA 证书进行故障排除
用例
最常见的用例是添加其他受信任的 CA 以连接到容器注册表。请参见将 TKG 服务 集群与专用容器注册表集成。