Início
Você pode usar a CLI para executar comandos remotos em um container. Isso permite que você execute comandos do Linux no container.
![]() |
Por questões de segurança, o comando oc exec não funciona quando estiver acessando containers privilegiados. Veja o tópico de operações CLI para mais informações. |
Uso básico
O suporte de comandos remotos em um container é feito na CLI:
$ oc exec <pod> [-c <container>] <command> [<arg_1> ... <arg_n>]
Exemplo:
$ oc exec mypod date
Thu Apr 9 02:21:53 UTC 2015
Protocolo
O cliente roda um comando remoto em um container ao fazer uma requisição ao servidor API Kubernetes:
/proxy/minions/<node_name>/exec/<namespace>/<pod>/<container>?command=<command>
Na URL acima:
- <node_name> é o FQDN do node.
- <namespace> é o namespace do pod destino.
- <pod> é o nome do pod destino.
- <container> é o nome do container destino.
- <command> é o comando a ser executado.
Exemplo:
/proxy/minions/node1.getupcloud.com/exec/myns/mypod/mycontainer?command=date
Opcionalmente, você também pode adicionar parâmetros a requisição para indicar se:
- O cliente deve enviar a entrada (stdin) para o comando do container remoto.
- O terminal do cliente é um TTY.
- O comando remoto deve enviar a saída (stdout) do comando para o cliente.
- O comando remoto deve enviar a saída de erro (stderr) do comando para o cliente.
Depois de enviar uma requisição exec ao servidor API, o cliente faz um upgrade na conexão para suportar fluxo multiplexado; a implementação atual usa SPDY.
O cliente cria um fluxo para cada stdin, stdout e stderr. Para distinguir entre os fluxos, o cliente define o cabeçalho streamType do fluxo para stdin, stdout ou stderr.
O cliente fecha o fluxo de conexão, a conexão que foi feita upgrade, e a conexão subjacente quando o comando remoto for finalizado.
![]() |
Administrador podem ver o guia de Arquitetura para mais informações. |
Comentários
0 comentário
Por favor, entre para comentar.