kubernetes K8s:从env变量中的容器文件(挂载在特定路径下)读取值

kdfy810k  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(2)|浏览(127)

我想从Kubernetes环境变量的容器文件(挂载在特定路径下)中读取值。

Ex:
/etc/mysql/default/uri -> file contains the uri
/etc/mysql/default/username -> file contains the username
/etc/mysql/default/password -> file contains the password

字符串
我想读取K8s中evn变量中的这些值。
类似于下面的内容:

env:
 - name: MYSQL_URI
   value: "/etc/mysql/default/uri"
 - name: MYSQL_USERNAME
   value: "/etc/mysql/default/username"


这是正确的做法吗?如果不是,正确的方法应该是什么?

0dxa2lsx

0dxa2lsx1#

你不能这样做。
如果文件是硬编码在容器映像中的(这不是最佳实践,因为您需要重建映像以更改凭据+它们对于任何可以下载映像的人来说都是透明的),那么让您的容器进程直接从这些文件中读取值。Kubernetes完全没有参与这个过程。
否则,使用Kubernetes ConfigMap并将其作为env变量加载到容器中。

tgabmvqs

tgabmvqs2#

我不确定你对进程到底要做什么,但是你可以通过在kubernetes容器中传递一些命令来实现这一点,比如bash =>中的export命令

export MYSQL_URI=$(cat /etc/mysql/default/uri);

字符串
我根本没有试过,但它可能直接像这样工作=>

env:
  - name: MYSQL_URI
    value: "$(cat /etc/mysql/default/uri)"

相关问题