无法访问 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
'
在我的 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
'