在我的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
"""
printenv返回正确的env变量值。Echo返回空。而psql语句不占用主机。任何人都有任何的想法,我如何在我的psql连接语句中使用pod中的环境变量。
当我手动进入容器并运行带有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
'