【发布时间】:2020-05-19 10:01:21
【问题描述】:
我们正在为我们的产品使用 helm 图表,我们需要找出如何在 helm 图表中隐藏密码或秘密。谁能帮助我们解决这个问题?
【问题讨论】:
标签: kubernetes-helm
我们正在为我们的产品使用 helm 图表,我们需要找出如何在 helm 图表中隐藏密码或秘密。谁能帮助我们解决这个问题?
【问题讨论】:
标签: kubernetes-helm
我认为您需要做的是在 Helm 命令之外创建一个秘密,例如:
kubectl create secret generic my-secret --from-literal=password=Y4nys7f11
然后在values.yaml 中使用这个秘密名称并将其传递给templates/*。我认为没有更好的集成 Helm 方式。
你可以看一个例子here。
【讨论】:
无论如何,Kubernetes 机密只是一个 base64 机密,即使您使用通用标签创建它,它们也会显示为不透明,但对于生产来说,它们仍然是一种负担。
您的 Kubernetes 集群托管在哪里?它是托管集群还是裸机集群?你想要一个与云无关的解决方案吗,因为 kubernetes 与云无关。如果没有,您可以使用各种云供应商提供的密钥库。但同样,如果该密钥丢失,您将冒着阻碍所有流程的风险。
你可以做的是因为你已经在使用 helm,你可以为 helm 安装 helm-vault 插件。您可以参考我将在下面粘贴的描述性博客和自述文件。 Blog 用于更好地理解,Github Project Readme 用于实现。
但是,您需要一个保管库集群作为先决条件。此外,如果您可以通过领事实例支持它,那将是非常棒的。但这将确保满足生产要求。
如果您只是在尝试,在运行时创建一个秘密并加载到您的 helm 部署中只需几分钟。说到这,您还可以使用 Kubernetes cron 作业来刷新您的秘密。
更新:因为您在 EKS 上,所以没有 vault/consul 的更简单的方法是通过 AWS Key Vault 服务,但它也有自己的优点/缺点。这可以通过 Zendesk 开发的另一个 helm 插件来实现,Helm Secrets。
【讨论】: