cert-manager 为每个数据库集群预配一组 TLS 证书。除了数据库服务器证书之外,该操作器还会为控制平面组件创建证书,以保护内部连接。
虽然 cert-manager 会根据 Certificate 对象的 duration 和 renewBefore 字段自动续订证书,但在以下情况下,您可能需要手动触发证书轮替:
- 私钥遭到入侵。
- CA 证书已轮替。根据
cert-manager文档,当与签发者关联的 CA 证书轮替时,叶证书不会自动重新签发。 cert-manager自动重新签发失败。虽然这种情况很少见,但如果由于 cert-manager 常见问题解答 中描述的特定条件而未触发自动重新签发,您必须触发手动轮替。
准备工作
- 确保您已配置
kubectl以访问 Kubernetes 集群。 - 确保
cert-manager在 Kubernetes 集群上运行。
手动证书轮替
如需手动触发证书轮替,请删除与 cert-manager Certificate 对象关联的 Secret。cert-manager 控制器会协调该对象并重新签发证书,从而创建一个新的 Secret。与 AlloyDB Omni
操作器关联的工作负载会自动重新加载其 TLS 配置,以使用新证书。
确定要轮替的
cert-managerCertificate。这些对象位于DBCluster命名空间和安装 AlloyDB Omni 操作器的命名空间中。CA 证书的名称带有前缀dbs-al-ca,而叶证书带有前缀dbs-al-cert。在剩余步骤中,请使用输出中关联的 Secret 的名称。kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide在触发轮替之前,请备份证书 Secret:
kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak删除证书 Secret:
kubectl delete secret SECRET_NAME -n NAMESPACE等待
cert-manager重新创建证书 Secret:kubectl get secret SECRET_NAME -n NAMESPACE -w
验证证书轮替
手动轮替证书后,请验证是否正在使用新证书:
检查证书 Secret。
creationTimestamp值必须反映您手动轮替证书后的时间:kubectl get secret SECRET_NAME -n NAMESPACE -o yaml检查
Certificate状态。验证状态部分中的notBefore和notAfter日期是否正确:kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
后续步骤
- 管理证书。