$ oc exec <pod> [-c <container>] -- <command> [<arg_1> ... <arg_n>]
您可以使用CLI在AWS上的Red Hat OpenShift Service容器中执行远程命令。
CLI内置对远程容器命令执行的支持。
要在容器中运行命令
$ oc exec <pod> [-c <container>] -- <command> [<arg_1> ... <arg_n>]
例如
$ oc exec mypod date
Thu Apr 9 02:21:53 UTC 2015
出于安全考虑, |
客户端通过向Kubernetes API服务器发出请求来启动在容器中执行远程命令。
/proxy/nodes/<node_name>/exec/<namespace>/<pod>/<container>?command=<command>
在上面的URL中
<node_name>
是节点的FQDN。
<namespace>
是目标Pod的项目。
<pod>
是目标Pod的名称。
<container>
是目标容器的名称。
<command>
是要执行的所需命令。
例如
/proxy/nodes/node123.openshift.com/exec/myns/mypod/mycontainer?command=date
此外,客户端可以向请求添加参数以指示是否
客户端应向远程容器的命令发送输入(stdin)。
客户端的终端是TTY。
远程容器的命令应将stdout的输出发送到客户端。
远程容器的命令应将stderr的输出发送到客户端。
向API服务器发送exec
请求后,客户端会将连接升级到支持多路复用流的连接;当前实现使用**HTTP/2**。
客户端为stdin、stdout和stderr分别创建一个流。为了区分这些流,客户端将流上的streamType
标头设置为stdin
、stdout
或stderr
之一。
客户端在完成远程命令执行请求后,关闭所有流、升级的连接和底层连接。