5.6. 配置证书轮转
配置证书轮转参数以替换现有证书。
5.6.1. 配置证书轮转 复制链接链接已复制到粘贴板!
您可以在 web 控制台中的 OpenShift Virtualization 安装过程中,或者在安装 HyperConverged 自定义资源(CR)后完成此操作。
先决条件
-
已安装 OpenShift CLI(
oc)。
流程
运行以下命令打开
HyperConvergedCR:$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv按照以下示例所示,编辑
spec.certConfig字段。要避免系统过载,请确保所有值都大于或等于 10 分钟。将所有值显示为符合 golangParseDuration格式的字符串。apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: certConfig: ca: duration: 48h0m0s renewBefore: 24h0m0s server: duration: 24h0m0s renewBefore: 12h0m0s-
ca.renewBefore的值必须小于或等于ca.duration的值。 -
server.duration的值必须小于或等于ca.duration的值。 -
server.renewBefore的值必须小于或等于server.duration的值。
-
运行以下命令,将更新应用到
HyperConvergedCR:$ oc apply -f <filename>.yaml例如:
$ oc apply -f kubevirt-hyperconverged.yaml
5.6.2. 证书轮转参数故障排除 复制链接链接已复制到粘贴板!
删除 HyperConverged 自定义资源(CR)中的一个或多个 certConfig 值会导致 certConfig 值恢复到默认值。
如果默认值与以下条件之一冲突,您会收到错误消息:
-
ca.renewBefore的值必须小于或等于ca.duration的值。 -
server.duration的值必须小于或等于ca.duration的值。 -
server.renewBefore的值必须小于或等于server.duration的值。
例如,如果您删除了 server.duration 值,则默认值 24h0m0s 大于 ca.duration 的值,这与指定条件冲突:
apiVersion: hco.kubevirt.io/v1beta1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
# ...
certConfig:
ca:
duration: 4h0m0s
renewBefore: 1h0m0s
server:
duration: 4h0m0s
renewBefore: 4h0m0s
# ...
这会生成以下出错信息:
error: hyperconvergeds.hco.kubevirt.io "kubevirt-hyperconverged" could not be patched: admission webhook "validate-hco.kubevirt.io" denied the request: spec.certConfig: ca.duration is smaller than server.duration
错误消息仅提及第一个冲突。在继续操作前,请查看所有 certConfig 值。