kubernetes 当您使用robot framework在pod中执行命令时,是否有办法在pod中运行命令?

cyvaqqii  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(2)|浏览(173)

我可以在一个pod中执行命令,并且在该pod中,我还希望同时在我刚刚执行命令的pod中运行stolonctl命令。下面是我希望实现的一个示例。我首先尝试使用第一个命令,然后尝试看看我编写的第二个命令是否会基于第一个命令工作,但它没有。
然后在bash中,我也想运行这个,我希望能够在robot中实现类似的功能,能够在pod中做类似ls的事情

controlplane $ kubectl run --image=nginx web --restart=Never
pod/web created
controlplane $ kubectl get po
NAME   READY   STATUS              RESTARTS   AGE
web    0/1     ContainerCreating   0          4s
controlplane $ kubectl exec -it web -- /bin/bash
root@web:/# ls
bin   dev                  docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc                   lib   media  opt  root  sbin  sys  usr
byqmnocz

byqmnocz1#

您不需要先在容器中打开bash,可以直接运行stolonctl命令:

$ kubectl exec -it pod -c container ${cluster_name} -- stolonctl --cluster-name [cluster_name] --store-backend [store_backend] --store-endpoints kubernetes status
l2osamch

l2osamch2#

您可以在不启动shell的情况下执行命令,如下所示:

kubectl exec  $pod -c $container -- \
    stolonctl --custer-name $clustername and-any-other-options

或者,如果出于某种原因,您需要您的shell(例如:在命令行中评估env变量,如果需要管道,&&||,...),则可以在/bin/sh中对此进行变形,例如:

kubectl exec  $pod -c $container -- /bin/sh -c \
    "stolonctl --custer-name $clustername and-any-other-options"

由于不熟悉机器人框架,我不确定这是否对您有帮助...我猜您必须使用Process library

相关问题