繁体   English   中英

无法访问 kube.netes pod 中的环境变量

[英]Not able to access env variables in kubernetes pod

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

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

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

当我手动进入容器并使用 env 变量运行 psql 命令时,它可以运行文件。但是当运行脚本时,它显示错误。

由于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
'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM