无法访问 kubernetes pod 中的环境变量

Not able to access env variables in kubernetes pod

在我的 pod 中有一些环境变量。我写了一个 bash 脚本来进入 pod 并使用 env 变量连接到数据库。但是我无法使用环境变量。

kubectl exec $POD_ID  -- /bin/bash -c """
     printenv DATABASE_HOST_NAME
     echo $DATABASE_HOST_NAME
     psql -h $DATABASE_HOST_NAME -U DATABASE_USER
"""

这里打印环境 returns 正确的环境变量值。 echo returns 为空。并且 psql 语句不占用主机。 任何人都知道如何在我的 psql 连接语句中使用 pod 中的环境变量。

当我手动进入容器并且 运行 带有 env 变量的 psql 命令有效时 file.But 当 运行 运行脚本时它显示错误。

由于DATABASE_HOST_NAME是在k8s pod中定义的,所以需要单引号来避免$DATABASE_HOST_NAME在宿主机上被展开

kubectl exec $POD_ID  -- /bin/bash -c '
     printenv DATABASE_HOST_NAME
     echo $DATABASE_HOST_NAME
     psql -h $DATABASE_HOST_NAME -U DATABASE_USER
'