恢复已删除的 kOps 秘密 ca crt/key 文件

Restore deleted kOps secret ca crt/key files

我在 v1.8.6 上有一个旧的 kubernetes 集群,使用 kOps 我一直在尝试将服务器升级到 v1.20.8。

我 运行 遇到 CA cert/key 问题,其中 kOps 无法滚动更新集群并返回错误 x509: certificate signed by unknown authority

kOps 创建了一个新的 ca 机密,因此现在有两个类型为 ca 的机密。通过 github 问题,我发现听起来与我所经历的相似,我删除了旧的 ca cert/key 并认为 kOps delete secret .... 我会继续使用新的。

我没有备份密钥,我确实从 S3 以及本地 .kube/config 和主服务器 ~/.kube/config 获得了 crt 的副本相同的证书颁发机构数据。我可以通过 kubectl 使用 tls 再次连接到集群,但是 kOps 有问题。我在 S3 上的 kOps 状态存储中没有 ca .crt 或 .key 文件。

我能以某种方式恢复密钥文件吗?
在这种情况下,如果我计划升级集群,我可以在没有密钥文件的情况下创建 kOps 秘密吗?

如果您还没有旋转控制 plane/master 节点,您会在那里找到证书。这些文件的位置多年来发生了变化,但您应该希望在 /srv/kubernetes/.

中找到它们

或者如果您启用了 S3 versioning,您可以恢复它们。

kOps 将在您下次 运行 kops update cluster --yes 时重新提供任何丢失的秘密。您可以坚持使用新证书,但请注意您正在有效地执行 a key rotation 并且可能需要遵循本文档中提到的其余步骤。