我正在使用 cert-manager 管理 kubernetes 上的 SSL 证书。证书作为机密存储在我的命名空间中。我必须生成近 1000 多个证书,但我读到拥有大量机密是“危险的”,因为它可能会在启动新节点时阻止 kubernetes 的启动。
您是否知道关于有多少机密可能至关重要的更多信息?您通过 cert-manager 管理了多少证书?您的 k8s 集群是否安全?
答案1
我找不到有关确切秘密号码的任何信息,但在检查官方文件我发现:
单个密钥的大小限制为 1MiB。这是为了防止创建非常大的密钥,因为这会耗尽 API 服务器和 kubelet 内存。但是,创建许多较小的秘密也会耗尽记忆. 由于秘密而对内存使用进行更全面的限制是一项计划功能。
很难说出一个神奇的数字,因为这取决于你如何使用机密以及你的集群是如何配置的。最安全的方式是在非生产环境中进行测试以验证行为。例如,多主或多集群集群可以更有弹性地处理机密。
在 GKE 维度限制中:Pod 数量、服务数量 + 存储在etcd。
这里您可以找到有关 etcd 数据库和 K8s API 要求/性能的更多信息。
另外,我发现了一个非常有趣的文章我们可以在哪里找到有关 Kubernetes 可扩展性阈值的更多信息,但遗憾的是没有提及 k8s 秘密性能。