在环境变量中找不到牧场主秘密

时间:2020-08-16 06:09:04

标签: docker kubernetes rancher

我对Rancher有点陌生。我将首先解释我的目标。我的应用程序(用js编写)包含一个我们为了连接服务器而通过的密码。当前,每次我们要运行该应用程序时,我们都会设置一个环境变量以包含此密码,并在运行时读取此信息(通过process.env.pass)。现在我们移至docker,我想使其更加复杂。在阅读了有关Docker的秘密之后,我发现在创建一个之后,我需要从/ run / secrets /中读取它。我们使用rancher的方式是构建docker映像,上传到Harbor并在Ranch UI中创建新的工作负载。

起初,我试图在这样的环境变量中设置机密:

enter image description here

但是由于某种原因,我无法在环境变量列表中找到它(这可能是什么原因?)。我打印了所有的环境console.log(process.env);,但它不存在(甚至没有其他名称)。即使在牧场主的外壳中,我也无法在env中看到它。

在那之后,我试图用这个秘密设置一个音量。现在,我可以看到目录/run/secrets/pass,但它与Docker机密不同。在Docker中,/run/secrets/pass是我应该阅读并获取机密的文件,但在Rancher中,它是包含pass的目录。同样由于某种原因,我无法读取该文件:

cat /run/secrets/pass/pass
cat: /run/secrets/pass/pass: Permission denied

总结:

  1. 为什么它没有在环境中显示秘密?
  2. 设置秘密的最佳方法是什么,这样在使用Rancher和不使用Rancher的情况下(仅使用docker)将易于阅读?我的意思是-最少的代码支持。我已经添加了支持,因此它将读取/run/secrets/的秘密(它将尝试读取名为pass的文件)​​。
  3. 为什么它不让我阅读/run/secrets/pass/pass

请注意,我试图在official rancher forum中发布此问题,但没有得到答案。任何帮助都值得欢迎,因为我坚持了一个多星期。

Rancher的版本为2.3.6。

0 个答案:

没有答案