给力的k8s命令

  需要使用Robot Framework写测试用例。 使用python的sshClient在指定容器创建目录。

       本来用的方法

       podname = send('kubectl get pods -n test | grep rsync | awk '{print $1}')

       send('kubectl exec -it -n test' + podname + ' --mkdir -p /home/test/rsync')

        就是在第二个send方法有问题,拼接后打印的response怎么都是乱的,会加入一些其他的字符。试了很久,也查了很久,没有找到解决办法。

       第二个send不要拼接,把第一行查出来的结果写死到里面,返回的结果就是好的。但这肯定不行,podname 是变化的。

      使用

      kubectl  -n test  exec -it  `kubectl get pods -n test | grep rsync | awk '{print $1}'`  --mkdir -p /home/test/rsync

      没有了拼接,就是好用的。kubectl中的双横杠(--)代表着kubectl命令项的结束,在两个横杠之后的内容是指在pod内部里需要执行的命令。

      python sshClient的send问题始终没解决。但是平时总是使用单个操作的k8s命令,合成复杂的语句来使用,效果还是很好的。

       

原文地址:https://www.cnblogs.com/lnlvinso/p/12398380.html