我们的产品正在使用舵机图,我们需要找出如何隐藏舵机图中的密码或秘密。谁能帮助我们解决这个问题?
我想你需要做的是在舵机命令外创建一个秘密,比如。
kubectl create secret generic my-secret --from-literal=password=Y4nys7f11
然后用这个秘密的名字 values.yaml
并传入 templates/*
. 我认为没有更好的综合Helm方式。
你可以看到一个例子 此处.
Kubernetes秘密反正只是一个base64秘密,即使你使用通用标签创建它,他们显示为不透明的,但对于生产,他们仍然是一个责任。
你的Kubernetes集群主机在哪里?是管理的还是裸机集群?你是否想要一个云不可知的解决方案,因为kubernetes是云不可知的。如果不是,你可以选择各个云厂商提供的key-vault。但同样如果这个密钥丢失了,你就会冒着所有流转受阻的风险。
你可以做的是,由于你已经在使用舵机,你可以安装舵机的 helm-vault 插件。你可以参考一个描述性的博客和一个readme,我将粘贴在下面。博客 为更好地了解和 Github项目自述 的实施。
然而,你将需要一个vault集群作为先决条件。另外,如果你能通过一个consul实例来支持它,那将是相当不错的。但这才能保证生产需求。
如果你只是在尝试,在运行时创建一个秘密并加载到你的舵机部署中是几分钟的工作。说到这里你也可以使用kubernetes cron作业来刷新你的secret。
更新。 因为你在EKS上,没有vaultconsul的情况下,一个更简单的方法是通过AWS Key Vault服务来实现,但它又会有自己的proscons。这可以通过Zendesk开发的另一个 helm插件来实现。舵手的秘密.