如何在 kubernetes 上使用密码连接到 psql

str*_*per 7 postgresql psql kubernetes

我想kubectl exec在像 kubernetes 这样的命令上使用密码连接到 psql

kubectl exec -it postgres -- bash \`psql -h $IP -U admin --password password -p $PORT dbname\`
Run Code Online (Sandbox Code Playgroud)

我试图命令

kubectl exec -it $podid -- bash \`psql -h $IP -U admin --password -p $PORT postgresdb\`
Run Code Online (Sandbox Code Playgroud)

kubectl exec -it $podid -- bash -c "psql -- dbname=postgresql://postgres:password@$ip:$port/postgresdb -c 'INSERT INTO public."user" (user_id,user_pw,user_nm,email,phone,is_admin) VALUES ('admin','admin','admin','admin@admin.com',NULL,true);'" 
Run Code Online (Sandbox Code Playgroud)

但这些命令不起作用。

如何使用 kubernetes 命令和密码连接到 psql?

小智 9

接受的答案对我不起作用(命令 PGPASSWORD=<...> 未找到)。

这有效:

kubectl  exec -ti postgres -- env PGPASSWORD=$PASSWD psql psql -h <host> -U <username> <dbname>
Run Code Online (Sandbox Code Playgroud)


小智 6

尝试
kubectl exec -it <postgresspod-name> bash or sh
当你在容器内时你可以做
PGPASSWORD=<password> psql -h <host or service name or localhost> -U <username> <dbname>

另一种选择是 kubectl exec -it postgres -- bash \`PGPASSWORD=<password> psql -h <host or service name or localhost> -U <username> <dbname>\`