我正在尝试将文件夹复制到所有kubernete pod。下面是PS1的片段,我必须自动完成复制到一个K8吊舱的过程。
$MasterPod = $(kubectl -n $namespace get pods --selector=jmeter_mode=master --no-headers=true --output=name).Replace("pod/", "")
Write-Output "Copy over Fragments Folder to master"
kubectl cp $FragFolder $namespace/${MasterPod}:"/TestFiles"
我想对我所有的从属吊舱做同样的事情(我可以在下面列出(
$SlavePodAll = $(kubectl -n jmeter get pods --selector=jmeter_mode=slave --no-headers=true --output=name).Replace("pod/", "")
kubectl cp $FragFolder $namespace/${SlavePodAll}:"/TestFiles"
显然,最后一行不起作用,因为它有所有pod的列表。
有没有什么方法可以实现这一点,我可以用一个合适的行替换$namespace/${SlavePodAll}?
由于使用--output name
,因此可以执行xargs-bash脚本。
kubectl -n jmeter get pods --selector=jmeter_mode=slave --no-headers=true --output=name
| xargs -n1 -I{ins} kubectl cp $FragFolder $namespace/{ins}:"/TestFiles"
-n1
每行执行命令-I{ins}
使用xargs的输入作为变量{ins}
,您可以在命令中使用该变量