A sintaxe geral para a maioria dos comandos de gerenciamento do kubectl é: kubectl command type name flags |
Onde - command é uma operação que você gostaria de executar, como create
- type é o tipo de recurso do Kubernetes, como deployment
- name é o nome do recurso, como app_frontend
- flags são todas as flags opcionais que você gostaria de incluir
Por exemplo, o comando a seguir recupera informações sobre um Deployment chamado protheus-appserver: kubectl get deployment protheus-appserver |
Inspecionando Recursos no KubernetesO kubectl get busca um determinado recurso do Kubernetes e exibe algumas informações básicas associadas a ele: kubectl get deployment -o wide |
Como não fornecemos um nome de Deployment ou um Namespace, o kubectl busca todos os Deployments no Namespace atual. A flag -o fornece informações adicionais como CONTAINERS e IMAGES. Além do get, você pode usar o describe para buscar uma descrição detalhada do recurso e dos recursos associados: kubectl describe deploy protheus-appserver |
O conjunto de informações apresentadas variará dependendo do tipo de recurso. Você também pode usar este comando sem especificar um nome de recurso; nesse caso, as informações serão fornecidas para todos os recursos desse tipo no Namespace atual. Obtendo Acesso ao Shell de um ContainerPara obter acesso ao shell de um container em execução, use exec. Primeiro, encontre o Pod que contém o container em execução ao qual você deseja acessar: Vamos fazer um exec para o primeiro Pod. Como este Pod possui apenas um container, não precisamos usar a flag -c para especificar em qual container gostaríamos de fazer o exec. kubectl exec -i -t protheus-appserver-8859878f8-7gfw9 -- /bin/bash |
Agora temos acesso ao shell do container protheus-appserver. A flag -i passa o STDIN para o container e -t fornece um TTY interativo. O traço duplo -- atua como um separador para o comando kubectl e o comando que você deseja executar dentro do container. Neste caso, estamos executando o /bin/bash. Buscando LogsOutro comando útil é o logs, que imprime logs de Pods e containers, incluindo containers finalizados. Para transmitir logs para a saída do seu terminal, você pode usar a flag -f: kubectl logs -f protheus-appserver-8859878f8-7gfw9 |
Este comando continuará sendo executado no seu terminal até ser interrompido com um CTRL+C. Você pode omitir a flag -f se quiser imprimir a saída do log e sair imediatamente. Você também pode usar a flag -p para buscar logs de um container terminado. Quando esta opção é usada dentro de um Pod que tinha uma instância anterior do container em execução, logs imprimirá a saída do container finalizado. A flag -c lhe permite especificar o container do qual você deseja buscar logs, se o Pod tiver vários containers. Você pode usar a flag --all-containers=true para buscar logs de todos os containers no Pod.
Redirecionamento de Porta e Proxying Para obter acesso de rede a um Pod, você pode usar o port-forward: kubectl port-forward pod/protheus-appserver-8859878f8-7gfw9 8080:8080 |
Aqui redirecionamos a porta 8080 local (que antecede os dois pontos) para a porta 8080 do container do Pod (após os dois pontos). Você também pode usar deploy/protheus-appserver ou svc/protheus-appserver-services como tipo e nome do recurso para o qual redirecionar. Se você fizer isso, a porta local será redirecionada para o Pod selecionado pelo Deployment ou Serviço.
Existem muitos outros comandos e variações que você pode achar úteis como parte do seu trabalho com o kubectl. Para saber mais sobre todas as suas opções disponíveis, você pode executar: |