×

配置证书轮换参数以替换现有证书。

配置证书轮换

您可以在 OpenShift Virtualization 安装期间在 Web 控制台中进行此操作,或者在安装后在HyperConverged自定义资源 (CR) 中进行此操作。

步骤
  1. 运行以下命令打开HyperConverged CR

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  2. 按以下示例所示编辑spec.certConfig字段。为避免系统过载,请确保所有值都大于或等于 10 分钟。所有值都应表达为符合golang ParseDuration 格式的字符串。

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
      certConfig:
        ca:
          duration: 48h0m0s
          renewBefore: 24h0m0s (1)
        server:
          duration: 24h0m0s  (2)
          renewBefore: 12h0m0s  (3)
    1 ca.renewBefore的值必须小于或等于ca.duration的值。
    2 server.duration的值必须小于或等于ca.duration的值。
    3 server.renewBefore的值必须小于或等于server.duration的值。
  3. 将 YAML 文件应用到您的集群。

证书轮换参数故障排除

删除一个或多个certConfig值会导致它们恢复为默认值,除非默认值与以下条件之一冲突

  • ca.renewBefore的值必须小于或等于ca.duration的值。

  • server.duration的值必须小于或等于ca.duration的值。

  • server.renewBefore的值必须小于或等于server.duration的值。

如果默认值与这些条件冲突,您将收到错误消息。

如果您在以下示例中删除server.duration值,则默认值24h0m0s将大于ca.duration的值,这与指定的条件冲突。

示例
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 值。