如何从节点获取变量值到 POD?

时间:2021-05-24 14:53:45

标签: kubernetes google-kubernetes-engine

我正在编写一个脚本,它获取一个 pod ip 并将其写入另一个 pod 中的 python 文件 这就是我获得 pod ip 的方式:

database=$(kubectl get svc database --namespace=namespace_name|sed -n -e '2p' |awk '{print $3}')

这是我尝试将其写入另一个 pod 中的文本文件的方式:

kubectl exec -it --namespace=namespace_name pod_name -- sed -i 's/ip_addr/$postgres/' conf.py

它被执行但python文件没有被编辑

1 个答案:

答案 0 :(得分:1)

在您的问题中,您正在设置数据库变量,但在 pod 中使用 postgres 进行替换。那永远行不通。

试试这个(注意变量扩展的双引号):

kubectl exec --namespace=namespace_name pod_name -- sed -i "s/ip_addr/$postgres/" conf.py

另一种选择:

在本地创建文件并替换所有值,然后使用

将文件复制到 pod
kubectl cp --namespace=namespace_name <local-path>/conf.py pod_name:<pod-path>/conf.py