3.2. 配置自定义证书颁发机构
				要使用自定义证书颁发机构(CA)配置外部生成的证书和域名,请将它们添加到 MicroShift /etc/microshift/config.yaml 配置文件中。您还必须配置主机操作系统信任 root。
			
					外部生成的 kubeconfig 文件在 /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig 目录中创建。如果您需要在外部生成的配置之外使用 localhost,请在其默认位置保留原始 kubeconfig 文件。localhost kubeconfig 文件使用自签名证书颁发机构。
				
先决条件
- 
						已安装 OpenShift CLI (oc)。
- 您可以使用具有集群管理角色的用户访问集群。
- 证书颁发机构已发布自定义证书。
- 
						MicroShift /etc/microshift/config.yaml配置文件存在。
流程
- 复制您要添加到 MicroShift 主机的信任根中的自定义证书。确保证书和私钥只能被 MicroShift 访问。
- 对于您需要的每个自定义 CA,使用以下示例 - 将名为Certificates 的- apiServer部分添加到- /etc/microshift/config.yamlMicroShift 配置文件中:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令重启 MicroShift 以应用证书: - systemctl microshift restart - $ systemctl microshift restart- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
						等待几分钟,让系统重新启动并应用自定义服务器。新的 kubeconfig文件在/var/lib/microshift/resources/kubeadmin/目录中生成。
- 
						将 kubeconfig文件复制到客户端。如果您为 IP 地址指定了通配符,请更新kubeconfig以删除服务器的公共 IP 地址,并使用您要使用的特定通配符范围替换该 IP 地址。
- 在客户端中,执行以下步骤: - 运行以下命令指定要使用的 - kubeconfig:- export KUBECONFIG=~/custom-kubeconfigs/kubeconfig - $ export KUBECONFIG=~/custom-kubeconfigs/kubeconfig- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 使用复制的kubeconfig文件的位置作为路径。
 
- 使用以下命令检查是否应用了证书: - oc --certificate-authority ~/certs/ca.ca get node - $ oc --certificate-authority ~/certs/ca.ca get node- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - oc get node NAME STATUS ROLES AGE VERSION dhcp-1-235-195.arm.example.com Ready control-plane,master,worker 76m v1.29.2 - oc get node NAME STATUS ROLES AGE VERSION dhcp-1-235-195.arm.example.com Ready control-plane,master,worker 76m v1.29.2- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,将新 CA 文件添加到 $KUBECONFIG 环境变量中: - oc config set clusters.microshift.certificate-authority /tmp/certificate-authority-data-new.crt - $ oc config set clusters.microshift.certificate-authority /tmp/certificate-authority-data-new.crt- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,验证新的 - kubeconfig文件是否包含新的 CA:- oc config view --flatten - $ oc config view --flatten- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 外部生成的 - kubeconfig文件示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 外部生成的kubeconfig文件中不存在certificate-authority-data部分。它通过之前使用的oc config set命令添加。
 
- 运行以下命令,验证自定义 API 服务器证书颁发机构的 - 主题和签发者:- curl --cacert /tmp/caCert.pem https://${fqdn_name}:6443/healthz -v- $ curl --cacert /tmp/caCert.pem https://${fqdn_name}:6443/healthz -v- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 重要- 将生成的 - kubeconfig文件中的- certificate-authority-data替换为新的- rootCA,或者将- certificate-authority-data添加到操作系统的信任根中。不要同时使用这两种方法。
- 在操作系统的信任根中配置额外的 CA。例如,在客户端系统上的 RHEL 客户端信任存储中。详情请查看 系统范围的信任存储。 - 建议使用包含 CA 的配置更新证书捆绑包。
- 
										如果您不想配置证书捆绑包,也可以使用 oc login localhost:8443 --certificate-authority=/path/to/cert.crt命令,但这不是首选的方法。