通过helm安装传递配置、证书和机密的最佳实践



有没有关于如何通过helm install传递配置、证书和一些秘密的建议?

目前,我有一个configuration.yaml文件,我在其中通过microk8s.helm install -f configuration.yaml --name=prod repo.k8s/product进行所有配置。在那里,用户可以配置所有内容,包括一些凭据。我将凭据存储在秘密存储中。我也可以在configuration.yaml中传递证书,并在那里复制它们的内容。它看起来不是很好看,但它会起作用的。

第二种方法是使用kubectl单独部署机密和证书,然后只引用helm图中的机密。这似乎是一种常用的方法:https://github.com/helm/charts/search?q=existingSecret&unscoped_q=存在机密

第三种方法是使用凭据的保管库。你有什么经验?你用它吗?这里有一个针对他们的教程:https://github.com/aws-samples/aws-workshop-for-kubernetes/tree/master/04-path-security-and-networking/401-configmaps-and-secrets

以下是Helm自己定义的官方最佳实践,它回答了您自己提出的越来越多的问题。

通常,最好尽可能解耦应用程序代码、配置和机密。这就是为什么Kubernetes为每个概念都提供了专用的资源类型。从那里继续,你应该确保你已经在休息时启用了加密etcd,并配置了基于角色的访问控制,以正确地确保任何东西都不能读取你的秘密资源数据,除非它具有适当的权限。有些人更进一步,提供去中心化的秘密存储,他们对API进行按需调用,而不是从API服务器中读取。例如Hashicorp Vault或AWS Secrets Manager。

最新更新