对于我的项目,我必须使用一系列命令连接到 Google Cloud Shell 中的 postgres 数据库:
gcloud config set project <project-name>
gcloud auth activate-service-account <keyname>@<project-name>.iam.gserviceaccount.com --key-file=<filename>.json
gcloud container clusters get-credentials banting --region <region> --project <project>
kubectl get pods -n <node>
kubectl exec -it <pod-name> -n <node> bash
apt-get update
apt install postgresql postgresql-contrib
psql -h <hostname> -p <port> -d <database> -U <userId>
`
我是这方面的初学者,到目前为止只是运行通过复制粘贴提供给我的脚本。但为了让事情变得更简单,我在 Shell 编辑器中创建了一个 .bat 文件,其中包含上述所有命令,并尝试使用bash <filename>
但是一旦kubectl exec -it <pod-name> -n <node> bash
命令运行并像下面这样打开新目录,其余的命令就不会运行。
Defaulted container "<container>" out of: <node>, istio-proxy, istio-init (init)
root@<pod-name>:/#
那么如何让 shell 运行 .bat 文件中的其余脚本:
apt-get update
apt install postgresql postgresql-contrib
psql -h <hostname> -p <port> -d <database> -U <userId>
`