轮替证书授权机构

Google Distributed Cloud 使用证书和私钥来对集群中的系统组件之间的连接进行身份验证和加密。这些证书授权机构和密钥由集群证书授权机构 (CA) 进行管理。运行 bmctl update credentials certificate-authorities rotate 命令时,Google Distributed Cloud 会执行以下操作:

  • 为集群 CA、etcd CA 和前端代理 CA 创建新的集群证书授权机构 (CA) 并将其上传到管理员集群中的用户集群命名空间。

  • 管理员集群控制器会将用户集群证书授权机构替换为新生成的证书授权机构。

  • 管理员集群控制器会将新的公共 CA 证书和叶证书密钥对分发给用户集群系统组件。

为了维护安全的集群通信,请定期轮替用户集群 CA,并在可能出现安全漏洞时轮替。

准备工作

在轮替集群证书授权机构之前,请根据以下条件和影响进行规划:

  • 在启动 CA 轮替之前,请确保管理员和用户集群的版本为 1.9.0 或更高版本。

  • CA 轮替是增量轮替,允许系统组件在轮替期间进行通信。

  • CA 轮替过程会重启用户集群中的 API 服务器、控制平面进程和 pod。

  • 预计工作负载会在 CA 轮替期间重启并重新调度。

  • 对于非高可用性集群配置,预计 CA 轮替期间会出现短暂的控制平面停机时间。

  • CA 轮替期间不允许集群管理操作。

  • CA 轮替时长取决于集群的大小。例如,对于具有一个控制平面和 50 个工作器节点的集群,CA 轮替可能需要接近两个小时才能完成。

限制

证书授权机构轮替功能具有以下限制:

  • CA 轮替不会更新管理员手动颁发的证书,即使集群 CA 为证书签名也是如此。在用户集群 CA 轮替完成后更新和重新分发任何手动颁发的证书。

  • 启动后,CA 轮替无法暂停或回滚。

启动集群 CA 轮替

使用以下命令启动 CA 轮替过程:

bmctl update credentials certificate-authorities rotate --cluster CLUSTER_NAME \
    --kubeconfig KUBECONFIG

替换以下内容:

  • CLUSTER_NAME:要为其轮替 CA 的集群的名称。
  • KUBECONFIG:管理员集群 kubeconfig 文件的路径。对于自行管理的集群,此文件是集群的 kubeconfig 文件。

在 CA 成功轮替并生成新的 kubeconfig 文件后,bmctl 命令会退出。kubeconfig 文件的标准路径为 bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig

排查集群 CA 轮替问题

bmctl update credentials 命令显示 CA 轮替的进度。关联的 update-credentials.log 文件将保存到以下带有时间戳的目录中:

bmctl-workspace/CLUSTER_NAME/log/update-credentials-TIMESTAMP