我正在编写一个脚本,它获取一个 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文件没有被编辑
答案 0 :(得分:1)
在您的问题中,您正在设置数据库变量,但在 pod 中使用 postgres 进行替换。那永远行不通。
试试这个(注意变量扩展的双引号):
kubectl exec --namespace=namespace_name pod_name -- sed -i "s/ip_addr/$postgres/" conf.py
另一种选择:
在本地创建文件并替换所有值,然后使用
将文件复制到 podkubectl cp --namespace=namespace_name <local-path>/conf.py pod_name:<pod-path>/conf.py