Update and standardize pt-br cheatsheet
parent
74d09c9068
commit
d5af3a2434
|
@ -8,12 +8,10 @@ card:
|
|||
|
||||
<!-- overview -->
|
||||
|
||||
Esta página contém uma lista de comandos e sinalizadores `kubectl` comumente usados.
|
||||
Esta página contém uma lista de comandos `kubectl` e flags frequentemente usados.
|
||||
|
||||
<!-- body -->
|
||||
|
||||
# kubectl - Cheat Sheet
|
||||
|
||||
## Kubectl Autocomplete
|
||||
|
||||
### BASH
|
||||
|
@ -27,7 +25,7 @@ Você também pode usar uma abreviação para o atalho para `kubectl` que també
|
|||
|
||||
```bash
|
||||
alias k=kubectl
|
||||
complete -F __start_kubectl k
|
||||
complete -o default -F __start_kubectl k
|
||||
```
|
||||
|
||||
### ZSH
|
||||
|
@ -45,12 +43,12 @@ Acrescentar `--all-namespaces` acontece com bastante frequência, onde você dev
|
|||
|
||||
## Contexto e Configuração do Kubectl
|
||||
|
||||
Defina com qual cluster Kubernetes o `kubectl` se comunica e modifique os detalhes da configuração.
|
||||
Define com qual cluster Kubernetes o `kubectl` se comunica e modifiqua os detalhes da configuração.
|
||||
Veja a documentação [Autenticando entre clusters com o kubeconfig](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) para
|
||||
informações detalhadas do arquivo de configuração.
|
||||
|
||||
```bash
|
||||
kubectl config view # Mostrar configurações do kubeconfig mergeadas.
|
||||
kubectl config view # Mostra configurações do kubeconfig mergeadas
|
||||
|
||||
# use vários arquivos kubeconfig ao mesmo tempo e visualize a configuração mergeada
|
||||
KUBECONFIG=~/.kube/config:~/.kube/kubconfig2
|
||||
|
@ -60,59 +58,60 @@ kubectl config view
|
|||
# obtenha a senha para o usuário e2e
|
||||
kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'
|
||||
|
||||
kubectl config view -o jsonpath='{.users[].name}' # exibir o primeiro usuário
|
||||
kubectl config view -o jsonpath='{.users[*].name}' # obtenha uma lista de usuários
|
||||
kubectl config get-contexts # exibir lista de contextos
|
||||
kubectl config current-context # exibir o contexto atual
|
||||
kubectl config use-context my-cluster-name # defina o contexto padrão como my-cluster-name
|
||||
kubectl config view -o jsonpath='{.users[].name}' # exibe o primeiro usuário
|
||||
kubectl config view -o jsonpath='{.users[*].name}' # obtem uma lista de usuários
|
||||
kubectl config get-contexts # exibe lista de contextos
|
||||
kubectl config current-context # exibe o contexto atual
|
||||
kubectl config use-context my-cluster-name # define o contexto padrão como my-cluster-name
|
||||
|
||||
kubectl config set-cluster my-cluster-name # defina uma entrada de cluster no kubeconfig
|
||||
kubectl config set-cluster my-cluster-name # define uma entrada de cluster no kubeconfig
|
||||
|
||||
# configurar a URL para um servidor proxy a ser usado para solicitações feitas por este cliente no kubeconfig
|
||||
# configura a URL para um servidor proxy a ser usado para solicitações feitas por este cliente no kubeconfig
|
||||
kubectl config set-cluster my-cluster-name --proxy-url=my-proxy-url
|
||||
|
||||
# adicione um novo cluster ao seu kubeconfig que suporte autenticação básica
|
||||
# adiciona um novo cluster ao seu kubeconfig que suporte autenticação básica
|
||||
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
|
||||
|
||||
# salve o namespace permanentemente para todos os comandos subsequentes do kubectl nesse contexto.
|
||||
# salva o namespace permanentemente para todos os comandos subsequentes do kubectl nesse contexto
|
||||
kubectl config set-context --current --namespace=ggckad-s2
|
||||
|
||||
# defina um contexto utilizando um nome de usuário e o namespace.
|
||||
# define um contexto utilizando um nome de usuário e o namespace
|
||||
kubectl config set-context gce --user=cluster-admin --namespace=foo \
|
||||
&& kubectl config use-context gce
|
||||
|
||||
kubectl config unset users.foo # excluir usuário foo
|
||||
kubectl config unset users.foo # exclue usuário foo
|
||||
|
||||
# alias curto para definir/mostrar contexto/namespace (funciona apenas para bash e shells compatíveis com bash, contexto atual a ser definido antes de usar kn para definir namespace)
|
||||
alias kx='f() { [ "$1" ] && kubectl config use-context $1 || kubectl config current-context ; } ; f'
|
||||
alias kn='f() { [ "$1" ] && kubectl config set-context --current --namespace $1 || kubectl config view --minify | grep namespace | cut -d" " -f6 ; } ; f'
|
||||
```
|
||||
|
||||
## Aplicar
|
||||
## Kubectl apply
|
||||
|
||||
`apply` gerencia aplicações através de arquivos que definem os recursos do Kubernetes. Ele cria e atualiza recursos em um cluster através da execução `kubectl apply`.
|
||||
Esta é a maneira recomendada de gerenciar aplicações Kubernetes em ambiente de produção. Veja a [documentação do Kubectl](https://kubectl.docs.kubernetes.io).
|
||||
Esta é a maneira recomendada para gerenciar aplicações Kubernetes em ambiente de produção. Veja a [documentação do Kubectl](https://kubectl.docs.kubernetes.io).
|
||||
|
||||
## Criando objetos
|
||||
|
||||
Manifestos Kubernetes podem ser definidos em YAML ou JSON. A extensão de arquivo `.yaml`,
|
||||
`.yml`, e `.json` pode ser usado.
|
||||
Manifestos Kubernetes podem ser definidos em YAML ou JSON. As extensões de arquivo `.yaml`,
|
||||
`.yml`, e `.json` podem ser usadas.
|
||||
|
||||
```bash
|
||||
kubectl apply -f ./my-manifest.yaml # criar recurso(s)
|
||||
kubectl apply -f ./my1.yaml -f ./my2.yaml # criar a partir de vários arquivos
|
||||
kubectl apply -f ./dir # criar recurso(s) em todos os arquivos de manifesto no diretório
|
||||
kubectl apply -f https://git.io/vPieo # criar recurso(s) a partir de URL
|
||||
kubectl create deployment nginx --image=nginx # iniciar uma única instância do nginx
|
||||
kubectl apply -f ./my-manifest.yaml # cria recurso(s)
|
||||
kubectl apply -f ./my1.yaml -f ./my2.yaml # cria a partir de vários arquivos
|
||||
kubectl apply -f ./dir # cria recurso(s) em todos os arquivos de manifesto no diretório
|
||||
kubectl apply -f https://git.io/vPieo # cria recurso(s) a partir de URL
|
||||
kubectl create deployment nginx --image=nginx # inicia uma única instância do nginx
|
||||
|
||||
# crie um Job que imprime "Hello World"
|
||||
# cria um Job que exibe "Hello World"
|
||||
kubectl create job hello --image=busybox:1.28 -- echo "Hello World"
|
||||
|
||||
# crie um CronJob que imprime "Hello World" a cada minuto
|
||||
# cria um CronJob que exibe "Hello World" a cada minuto
|
||||
kubectl create cronjob hello --image=busybox:1.28 --schedule="*/1 * * * *" -- echo "Hello World"
|
||||
|
||||
kubectl explain pods # obtenha a documentação de manifesto do pod
|
||||
kubectl explain pods # obtem a documentação de manifesto do pod
|
||||
|
||||
# Crie vários objetos YAML a partir de stdin
|
||||
# Cria vários objetos YAML a partir de stdin
|
||||
cat <<EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
|
@ -139,7 +138,7 @@ spec:
|
|||
- "1000"
|
||||
EOF
|
||||
|
||||
# Crie um segredo com várias chaves
|
||||
# Cria um segredo com várias chaves
|
||||
cat <<EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
|
@ -153,199 +152,203 @@ EOF
|
|||
|
||||
```
|
||||
|
||||
## Visualizando e Localizando Recursos
|
||||
## Visualizando e localizando recursos
|
||||
|
||||
```bash
|
||||
# Obter comandos com saída simples
|
||||
kubectl get services # Listar todos os serviços do namespace
|
||||
kubectl get pods --all-namespaces # Listar todos os pods em todos namespaces
|
||||
kubectl get pods -o wide # Listar todos os pods no namespace atual, com mais detalhes
|
||||
kubectl get deployment my-dep # Listar um deployment específico
|
||||
kubectl get pods # Listar todos os pods no namespace
|
||||
kubectl get pod my-pod -o yaml # Obter o YAML de um pod
|
||||
# Comandos get com saída simples
|
||||
kubectl get services # Lista todos os serviços do namespace
|
||||
kubectl get pods --all-namespaces # Lista todos os pods em todos namespaces
|
||||
kubectl get pods -o wide # Lista todos os pods no namespace atual, com mais detalhes
|
||||
kubectl get deployment my-dep # Lista um deployment específico
|
||||
kubectl get pods # Lista todos os pods no namespace
|
||||
kubectl get pod my-pod -o yaml # Obtem o YAML de um pod
|
||||
|
||||
# Descrever comandos com saída detalhada
|
||||
# Comandos describe com saída detalhada
|
||||
kubectl describe nodes my-node
|
||||
kubectl describe pods my-pod
|
||||
|
||||
# Listar serviços classificados por nome
|
||||
# Lista serviços classificados por nome
|
||||
kubectl get services --sort-by=.metadata.name
|
||||
|
||||
# Listar pods classificados por contagem de reinicializações
|
||||
# Lista pods classificados por contagem de reinicializações
|
||||
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'
|
||||
|
||||
# Listar PersistentVolumes classificado por capacidade
|
||||
# Lista PersistentVolumes classificados por capacidade
|
||||
kubectl get pv --sort-by=.spec.capacity.storage
|
||||
|
||||
# Obtenha a versão da label de todos os pods com a label app=cassandra
|
||||
# Obtem a versão da label de todos os pods com a label app=cassandra
|
||||
kubectl get pods --selector=app=cassandra -o \
|
||||
jsonpath='{.items[*].metadata.labels.version}'
|
||||
|
||||
# Recupere o valor de uma chave com pontos, por exemplo 'ca.crt'
|
||||
# Recupera o valor de uma chave com pontos, por exemplo 'ca.crt'
|
||||
kubectl get configmap myconfig \
|
||||
-o jsonpath='{.data.ca\.crt}'
|
||||
|
||||
# Recupere um valor codificado em base64 com traços em vez de sublinhados
|
||||
# Recupera um valor codificado em base64 com traços em vez de sublinhados
|
||||
kubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'
|
||||
|
||||
# Obter todos os nós workers (use um seletor para excluir resultados que possuem uma label
|
||||
# Obtem todos os nós workers (use um seletor para excluir resultados que possuem uma label
|
||||
# nomeado 'node-role.kubernetes.io/control-plane')
|
||||
kubectl get node --selector='!node-role.kubernetes.io/control-plane'
|
||||
|
||||
# Obter todos os pods em execução no namespace
|
||||
# Obtem todos os pods em execução no namespace
|
||||
kubectl get pods --field-selector=status.phase=Running
|
||||
|
||||
# Obter ExternalIPs de todos os nós
|
||||
# Obtem ExternalIPs de todos os nós
|
||||
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'
|
||||
|
||||
# Listar nomes de pods pertencentes a um RC particular
|
||||
# Lista nomes de pods pertencentes a um RC particular
|
||||
# O comando "jq" é útil para transformações que são muito complexas para jsonpath, pode ser encontrado em https://stedolan.github.io/jq/
|
||||
sel=${$(kubectl get rc my-rc --output=json | jq -j '.spec.selector | to_entries | .[] | "\(.key)=\(.value),"')%?}
|
||||
echo $(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})
|
||||
|
||||
# Mostrar marcadores para todos os pods(ou qualquer outro objeto Kubernetes que suporte rotulagem)
|
||||
# Exibe marcadores para todos os pods (ou qualquer outro objeto Kubernetes que suporte rotulagem)
|
||||
kubectl get pods --show-labels
|
||||
|
||||
# Verifique quais nós estão prontos
|
||||
# Verifica quais nós estão prontos
|
||||
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' \
|
||||
&& kubectl get nodes -o jsonpath="$JSONPATH" | grep "Ready=True"
|
||||
|
||||
# Listar todos os segredos atualmente em uso por um pod
|
||||
# Lista todos os segredos atualmente em uso por um pod
|
||||
kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq
|
||||
|
||||
# Listar todos os containerIDs de initContainer de todos os pods
|
||||
# Lista todos os containerIDs de initContainer de todos os pods
|
||||
# Útil ao limpar contêineres parados, evitando a remoção de initContainers.
|
||||
kubectl get pods --all-namespaces -o jsonpath='{range .items[*].status.initContainerStatuses[*]}{.containerID}{"\n"}{end}' | cut -d/ -f3
|
||||
|
||||
# Listar eventos classificados por timestamp
|
||||
# Lista eventos classificados por timestamp
|
||||
kubectl get events --sort-by=.metadata.creationTimestamp
|
||||
|
||||
# Lista todos eventos do tipo Warning
|
||||
kubectl events --types=Warning
|
||||
|
||||
# Compara o estado atual do cluster com o estado em que o cluster estaria se o manifesto fosse aplicado.
|
||||
kubectl diff -f ./my-manifest.yaml
|
||||
|
||||
# Produzir uma árvore delimitada por ponto de todas as chaves retornadas para nós
|
||||
# Produz uma árvore delimitada por ponto de todas as chaves retornadas para nós
|
||||
# Útil ao localizar uma chave em uma estrutura JSON aninhada complexa
|
||||
kubectl get nodes -o json | jq -c 'paths|join(".")'
|
||||
|
||||
# Produzir uma árvore delimitada por ponto de todas as chaves retornadas para pods, etc.
|
||||
# Produz uma árvore delimitada por ponto de todas as chaves retornadas para pods, etc.
|
||||
kubectl get pods -o json | jq -c 'paths|join(".")'
|
||||
|
||||
# Produza ENV para todos os pods, supondo que você tenha um contêiner padrão para os pods, namespace padrão e o comando `env` é compatível.
|
||||
# Produz ENV para todos os pods, supondo que você tenha um contêiner padrão para os pods, namespace padrão e o comando `env` é compatível.
|
||||
# Útil ao executar qualquer comando suportado em todos os pods, não apenas `env`
|
||||
for pod in $(kubectl get po --output=jsonpath={.items..metadata.name}); do echo $pod && kubectl exec -it $pod -- env; done
|
||||
|
||||
# Obtenha o sub-recurso de status de uma implantação
|
||||
# Obtem o status de um sub-recurso de uma implantação
|
||||
kubectl get deployment nginx-deployment --subresource=status
|
||||
```
|
||||
|
||||
## Atualizando Recursos
|
||||
## Atualizando recursos
|
||||
|
||||
```bash
|
||||
kubectl set image deployment/frontend www=image:v2 # Aplica o rollout nos containers "www" do deployment "frontend", atualizando a imagem
|
||||
kubectl rollout history deployment/frontend # Verifica o histórico do deployment, incluindo a revisão
|
||||
kubectl rollout undo deployment/frontend # Rollback para o deployment anterior
|
||||
kubectl rollout undo deployment/frontend --to-revision=2 # Rollback para uma revisão específica
|
||||
kubectl rollout status -w deployment/frontend # Acompanhe o status de atualização do "frontend" até sua conclusão sem interrupção
|
||||
kubectl rollout restart deployment/frontend # Reinício contínuo do deployment "frontend"
|
||||
kubectl rollout status -w deployment/frontend # Acompanha o status de atualização do "frontend" até sua conclusão sem interrupção
|
||||
kubectl rollout restart deployment/frontend # Reinicia contínuo do deployment "frontend"
|
||||
|
||||
cat pod.json | kubectl replace -f - # Substitua um pod com base no JSON passado para std
|
||||
cat pod.json | kubectl replace -f - # Substitue um pod com base no JSON passado para stdin
|
||||
|
||||
# Força a substituição, exclui e recria o recurso. Causará uma interrupção do serviço.
|
||||
kubectl replace --force -f ./pod.json
|
||||
|
||||
# Crie um serviço para um nginx replicado, que serve na porta 80 e se conecta aos contêineres na porta 8000
|
||||
# Cria um serviço para um nginx replicado, que serve na porta 80 e se conecta aos contêineres na porta 8000
|
||||
kubectl expose rc nginx --port=80 --target-port=8000
|
||||
|
||||
# Atualizar a versão da imagem (tag) de um pod de contêiner único para a v4
|
||||
# Atualiza a versão da imagem (tag) de um pod de contêiner único para a v4
|
||||
kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -
|
||||
|
||||
kubectl label pods my-pod new-label=awesome # Adicionar uma label
|
||||
kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq # Adicionar uma anotação
|
||||
kubectl autoscale deployment foo --min=2 --max=10 # Escalar automaticamente um deployment "foo"
|
||||
kubectl label pods my-pod new-label=awesome # Adiciona uma label
|
||||
kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq # Adiciona uma anotação
|
||||
kubectl autoscale deployment foo --min=2 --max=10 # Escala automaticamente um deployment "foo"
|
||||
```
|
||||
|
||||
## Recursos de Correção
|
||||
## Recursos de correção
|
||||
|
||||
```bash
|
||||
# Atualizar parcialmente um nó
|
||||
# Atualiza parcialmente um nó
|
||||
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'
|
||||
|
||||
# Atualizar a imagem de um contêiner; spec.containers[*].name é obrigatório porque é uma chave de mesclagem
|
||||
# Atualiza a imagem de um contêiner; spec.containers[*].name é obrigatório porque é uma chave de mesclagem
|
||||
kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'
|
||||
|
||||
# Atualizar a imagem de um contêiner usando um patch json com matrizes posicionais
|
||||
# Atualiza a imagem de um contêiner usando um patch json com matrizes posicionais
|
||||
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'
|
||||
|
||||
# Desative um livenessProbe de deployment usando um patch json com matrizes posicionais
|
||||
# Desativa um livenessProbe de deployment usando um patch json com matrizes posicionais
|
||||
kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]'
|
||||
|
||||
# Adicionar um novo elemento a uma matriz posicional
|
||||
# Adiciona um novo elemento a uma matriz posicional
|
||||
kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]'
|
||||
|
||||
# Atualize a contagem de réplicas de uma implantação corrigindo seu sub-recurso de escala
|
||||
# Atualiza a contagem de réplicas de uma implantação corrigindo seu sub-recurso de escala
|
||||
kubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'
|
||||
```
|
||||
|
||||
## Editando Recursos
|
||||
Edite qualquer recurso da API no seu editor preferido.
|
||||
## Editando recursos
|
||||
|
||||
Edita qualquer recurso da API no seu editor preferido.
|
||||
|
||||
```bash
|
||||
kubectl edit svc/docker-registry # Edite o serviço chamado docker-registry
|
||||
KUBE_EDITOR="nano" kubectl edit svc/docker-registry # Use um editor alternativo
|
||||
kubectl edit svc/docker-registry # Edita o serviço chamado docker-registry
|
||||
KUBE_EDITOR="nano" kubectl edit svc/docker-registry # Usa um editor alternativo
|
||||
```
|
||||
|
||||
## Escalando Recursos
|
||||
## Escalando recursos
|
||||
|
||||
```bash
|
||||
kubectl scale --replicas=3 rs/foo # Escale um replicaset chamado 'foo' para 3
|
||||
kubectl scale --replicas=3 -f foo.yaml # Escale um recurso especificado em "foo.yaml" para 3
|
||||
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # Se o tamanho atual do deployment chamado mysql for dois, assim escale para 3
|
||||
kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Escalar vários replicaset
|
||||
kubectl scale --replicas=3 rs/foo # Escala um replicaset chamado 'foo' para 3
|
||||
kubectl scale --replicas=3 -f foo.yaml # Escala um recurso especificado em "foo.yaml" para 3
|
||||
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # Se o tamanho atual do deployment chamado mysql for 2, escala para 3
|
||||
kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Escala vários controladores de replicaset
|
||||
```
|
||||
|
||||
## Deleting resources
|
||||
## Deletando resources
|
||||
|
||||
```bash
|
||||
kubectl delete -f ./pod.json # Exclua um pod usando o tipo e o nome especificados em pod.json
|
||||
kubectl delete pod,service baz foo # Excluir pods e serviços com os mesmos nomes "baz" e "foo"
|
||||
kubectl delete pods,services -l name=myLabel # Excluir pods e serviços com o nome da label = myLabel
|
||||
kubectl -n my-ns delete pod,svc --all # Exclua todos os pods e serviços no namespace my-ns,
|
||||
# Excluir todos os pods que correspondem ao awk pattern1 ou pattern2
|
||||
kubectl delete -f ./pod.json # Exclue um pod usando o tipo e o nome especificados em pod.json
|
||||
kubectl delete pod,service baz foo # Exclue pods e serviços com os mesmos nomes "baz" e "foo"
|
||||
kubectl delete pods,services -l name=myLabel # Exclue pods e serviços com o nome da label = myLabel
|
||||
kubectl -n my-ns delete pod,svc --all # Exclue todos os pods e serviços no namespace my-ns,
|
||||
# Exclue todos os pods que correspondem ao awk pattern1 ou pattern2
|
||||
kubectl get pods -n mynamespace --no-headers=true | awk '/pattern1|pattern2/{print $1}' | xargs kubectl delete -n mynamespace pod
|
||||
```
|
||||
|
||||
## Interagindo com Pods em execução
|
||||
|
||||
```bash
|
||||
kubectl logs my-pod # despejar logs de pod (stdout)
|
||||
kubectl logs -l name=myLabel # despejar logs de pod, com a label de name=myLabel (stdout)
|
||||
kubectl logs my-pod --previous # despejar logs de pod (stdout) para a instância anterior de um contêiner
|
||||
kubectl logs my-pod -c my-container # despejar logs de um específico contêiner em um pod (stdout, no caso de vários contêineres)
|
||||
kubectl logs -l name=myLabel -c my-container # despejar logs de pod, com nome da label = myLabel (stdout)
|
||||
kubectl logs my-pod -c my-container --previous # despejar logs de um contêiner específico em um pod (stdout, no caso de vários contêineres) para uma instanciação anterior de um contêiner
|
||||
kubectl logs my-pod # despeja logs de pod (stdout)
|
||||
kubectl logs -l name=myLabel # despeja logs de pod, com a label de name=myLabel (stdout)
|
||||
kubectl logs my-pod --previous # despeja logs de pod (stdout) para a instância anterior de um contêiner
|
||||
kubectl logs my-pod -c my-container # despeja logs de um específico contêiner em um pod (stdout, no caso de vários contêineres)
|
||||
kubectl logs -l name=myLabel -c my-container # despeja logs de pod, com nome da label = myLabel (stdout)
|
||||
kubectl logs my-pod -c my-container --previous # despeja logs de um contêiner específico em um pod (stdout, no caso de vários contêineres) para uma instanciação anterior de um contêiner
|
||||
kubectl logs -f my-pod # Fluxo de logs de pod (stdout)
|
||||
kubectl logs -f my-pod -c my-container # Fluxo de logs para um específico contêiner em um pod (stdout, caixa com vários contêineres)
|
||||
kubectl logs -f -l name=myLabel --all-containers # transmitir todos os logs de pods com a label name=myLabel (stdout)
|
||||
kubectl run -i --tty busybox --image=busybox:1.28 -- sh # Executar pod como shell interativo
|
||||
kubectl run nginx --image=nginx -n mynamespace # Inicie uma única instância do pod nginx no namespace de mynamespace
|
||||
kubectl logs -f -l name=myLabel --all-containers # transmite todos os logs de pods com a label name=myLabel (stdout)
|
||||
kubectl run -i --tty busybox --image=busybox:1.28 -- sh # Executa pod como shell interativo
|
||||
kubectl run nginx --image=nginx -n mynamespace # Inicia uma única instância do pod nginx no namespace de mynamespace
|
||||
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
|
||||
# Gere a especificação para executar o pod nginx e grave-a em um arquivo chamado pod.yaml
|
||||
kubectl attach my-pod -i # Anexar ao contêiner em execução
|
||||
# Gera a especificação para executar o pod nginx e grave-a em um arquivo chamado pod.yaml
|
||||
kubectl attach my-pod -i # Anexa ao contêiner em execução
|
||||
kubectl port-forward my-pod 5000:6000 # Ouça na porta 5000 na máquina local e encaminhe para a porta 6000 no my-pod
|
||||
kubectl exec my-pod -- ls / # Executar comando no pod existente (1 contêiner)
|
||||
kubectl exec my-pod -- ls / # Executa comando no pod existente (1 contêiner)
|
||||
kubectl exec --stdin --tty my-pod -- /bin/sh # Acesso de shell interativo a um pod em execução (apenas 1 contêiner)
|
||||
kubectl exec my-pod -c my-container -- ls / # Executar comando no pod existente (pod com vários contêineres)
|
||||
kubectl top pod POD_NAME --containers # Mostrar métricas para um determinado pod e seus contêineres
|
||||
kubectl top pod POD_NAME --sort-by=cpu # Mostrar métricas para um determinado pod e classificá-lo por 'cpu' ou 'memória'
|
||||
kubectl exec my-pod -c my-container -- ls / # Executa comando no pod existente (pod com vários contêineres)
|
||||
kubectl top pod POD_NAME --containers # Mostra métricas para um determinado pod e seus contêineres
|
||||
kubectl top pod POD_NAME --sort-by=cpu # Mostra métricas para um determinado pod e classificá-lo por 'cpu' ou 'memória'
|
||||
```
|
||||
|
||||
## Copiar arquivos e diretórios de e para contêineres
|
||||
## Copiando arquivos e diretórios de e para contêineres
|
||||
|
||||
```bash
|
||||
kubectl cp /tmp/foo_dir my-pod:/tmp/bar_dir # Copie o diretório local /tmp/foo_dir para /tmp/bar_dir em um pod remoto no namespace atual
|
||||
kubectl cp /tmp/foo my-pod:/tmp/bar -c my-container # Copie o arquivo local /tmp/foo para /tmp/bar em um pod remoto em um contêiner específico
|
||||
kubectl cp /tmp/foo my-namespace/my-pod:/tmp/bar # Copie o arquivo local /tmp/foo para /tmp/bar em um pod remoto no namespace my-namespace
|
||||
kubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar # Copie /tmp/foo de um pod remoto para /tmp/bar localmente
|
||||
kubectl cp /tmp/foo_dir my-pod:/tmp/bar_dir # Copia o diretório local /tmp/foo_dir para /tmp/bar_dir em um pod remoto no namespace atual
|
||||
kubectl cp /tmp/foo my-pod:/tmp/bar -c my-container # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto em um contêiner específico
|
||||
kubectl cp /tmp/foo my-namespace/my-pod:/tmp/bar # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto no namespace my-namespace
|
||||
kubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar # Copia /tmp/foo de um pod remoto para /tmp/bar localmente
|
||||
```
|
||||
{{< note >}}
|
||||
`kubectl cp` requer que o binário 'tar' esteja presente em sua imagem de contêiner. Se 'tar' não estiver presente, `kubectl cp` falhará.
|
||||
|
@ -353,32 +356,33 @@ Para casos de uso avançado, como links simbólicos, expansão curinga ou preser
|
|||
{{< /note >}}
|
||||
|
||||
```bash
|
||||
tar cf - /tmp/foo | kubectl exec -i -n my-namespace my-pod -- tar xf - -C /tmp/bar # Copie o arquivo local /tmp/foo para /tmp/bar em um pod remoto no namespace my-namespace
|
||||
kubectl exec -n my-namespace my-pod -- tar cf - /tmp/foo | tar xf - -C /tmp/bar # Copie /tmp/foo de um pod remoto para /tmp/bar localmente
|
||||
tar cf - /tmp/foo | kubectl exec -i -n my-namespace my-pod -- tar xf - -C /tmp/bar # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto no namespace my-namespace
|
||||
kubectl exec -n my-namespace my-pod -- tar cf - /tmp/foo | tar xf - -C /tmp/bar # Copia /tmp/foo de um pod remoto para /tmp/bar localmente
|
||||
```
|
||||
|
||||
## Interagindo com implantações e serviços
|
||||
|
||||
```bash
|
||||
kubectl logs deploy/my-deployment # despejar logs de pod para uma implantação (caso de contêiner único)
|
||||
kubectl logs deploy/my-deployment -c my-container # despejar logs de pod para uma implantação (caso de vários contêineres)
|
||||
kubectl logs deploy/my-deployment # despeja logs de pod para uma implantação (caso de contêiner único)
|
||||
kubectl logs deploy/my-deployment -c my-container # despeja logs de pod para uma implantação (caso de vários contêineres)
|
||||
|
||||
kubectl port-forward svc/my-service 5000 # escute na porta local 5000 e encaminhe para a porta 5000 no back-end do serviço
|
||||
kubectl port-forward svc/my-service 5000:my-service-port # escute na porta local 5000 e encaminhe para a porta de destino do serviço com o nome <my-service-port>
|
||||
kubectl port-forward svc/my-service 5000 # escuta na porta local 5000 e encaminhe para a porta 5000 no back-end do serviço
|
||||
kubectl port-forward svc/my-service 5000:my-service-port # escuta na porta local 5000 e encaminhe para a porta de destino do serviço com o nome <my-service-port>
|
||||
|
||||
kubectl port-forward deploy/my-deployment 5000:6000 # escute na porta local 5000 e encaminhe para a porta 6000 em um pod criado por <my-deployment>
|
||||
kubectl exec deploy/my-deployment -- ls # execute o comando no primeiro pod e primeiro contêiner na implantação (casos de um ou vários contêineres)
|
||||
kubectl port-forward deploy/my-deployment 5000:6000 # escuta na porta local 5000 e encaminhe para a porta 6000 em um pod criado por <my-deployment>
|
||||
kubectl exec deploy/my-deployment -- ls # executa o comando no primeiro pod e primeiro contêiner na implantação (casos de um ou vários contêineres)
|
||||
```
|
||||
|
||||
## Interagindo com Nós e Cluster
|
||||
|
||||
```bash
|
||||
kubectl cordon my-node # Marcar o nó my-node como não agendável
|
||||
kubectl drain my-node # Drene o nó my-node na preparação para manutenção
|
||||
kubectl uncordon my-node # Marcar nó my-node como agendável
|
||||
kubectl top node my-node # Mostrar métricas para um determinado nó
|
||||
kubectl cluster-info # Exibir endereços da master e serviços
|
||||
kubectl cluster-info dump # Despejar o estado atual do cluster no stdout
|
||||
kubectl cluster-info dump --output-directory=/path/to/cluster-state # Despejar o estado atual do cluster em /path/to/cluster-state
|
||||
kubectl cordon my-node # Marca o nó my-node como não agendável
|
||||
kubectl drain my-node # Drena o nó my-node na preparação para manutenção
|
||||
kubectl uncordon my-node # Marca nó my-node como agendável
|
||||
kubectl top node my-node # Mostra métricas para um determinado nó
|
||||
kubectl cluster-info # Exibe endereços da master e serviços
|
||||
kubectl cluster-info dump # Despeja o estado atual do cluster no stdout
|
||||
kubectl cluster-info dump --output-directory=/path/to/cluster-state # Despeja o estado atual do cluster em /path/to/cluster-state
|
||||
|
||||
# Veja os taints existentes nos nós atuais.
|
||||
kubectl get nodes -o='custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect'
|
||||
|
@ -389,7 +393,7 @@ kubectl taint nodes foo dedicated=special-user:NoSchedule
|
|||
|
||||
### Tipos de Recursos
|
||||
|
||||
Liste todos os tipos de recursos suportados junto com seus nomes abreviados, [grupo de API](/docs/concepts/overview/kubernetes-api/#api-groups-and-versioning), sejam eles [namespaced](/docs/concepts/overview/working-with-objects/namespaces) e [Kind](/docs/concepts/overview/working-with-objects/kubernetes-objects):
|
||||
Lista todos os tipos de recursos suportados junto com seus nomes abreviados, [grupo de API](/docs/concepts/overview/kubernetes-api/#api-groups-and-versioning), sejam eles [namespaced](/docs/concepts/overview/working-with-objects/namespaces) e [Kind](/docs/concepts/overview/working-with-objects/kubernetes-objects):
|
||||
|
||||
```bash
|
||||
kubectl api-resources
|
||||
|
@ -406,18 +410,18 @@ kubectl api-resources --verbs=list,get # Todos os recursos que suportam os
|
|||
kubectl api-resources --api-group=extensions # Todos os recursos no grupo de API "extensions"
|
||||
```
|
||||
|
||||
### Formatação de Saída
|
||||
### Formatação de saída
|
||||
|
||||
Para enviar detalhes para a janela do terminal em um formato específico, adicione a flag `-o` (ou `--output`) para um comando `kubectl` suportado.
|
||||
|
||||
Formato de saída | Descrição
|
||||
--------------| -----------
|
||||
`-o=custom-columns=<spec>` | Imprimir uma tabela usando uma lista separada por vírgula de colunas personalizadas
|
||||
`-o=custom-columns-file=<filename>` | Imprima uma tabela usando o modelo de colunas personalizadas no arquivo `<nome do arquivo>`
|
||||
`-o=custom-columns=<spec>` | Exibe uma tabela usando uma lista separada por vírgula de colunas personalizadas
|
||||
`-o=custom-columns-file=<filename>` | Exibe uma tabela usando o modelo de colunas personalizadas no arquivo `<nome do arquivo>`
|
||||
`-o=json` | Saída de um objeto de API formatado em JSON
|
||||
`-o=jsonpath=<template>` | Imprima os campos definidos em uma expressão [jsonpath](/docs/reference/kubectl/jsonpath)
|
||||
`-o=jsonpath-file=<filename>` | Imprima os campos definidos pela expressão [jsonpath](/docs/reference/kubectl/jsonpath) no arquivo `<nome do arquivo>`
|
||||
`-o=name` | Imprima apenas o nome do recurso e nada mais
|
||||
`-o=jsonpath=<template>` | Exibe os campos definidos em uma expressão [jsonpath](/docs/reference/kubectl/jsonpath)
|
||||
`-o=jsonpath-file=<filename>` | Exibe os campos definidos pela expressão [jsonpath](/docs/reference/kubectl/jsonpath) no arquivo `<nome do arquivo>`
|
||||
`-o=name` | Exibe apenas o nome do recurso e nada mais
|
||||
`-o=wide` | Saída no formato de texto sem formatação com qualquer informação adicional e, para pods, o nome do nó está incluído
|
||||
`-o=yaml` | Saída de um objeto de API formatado em YAML
|
||||
|
||||
|
@ -439,7 +443,7 @@ kubectl get pods -A -o=custom-columns='DATA:metadata.*'
|
|||
|
||||
Mais exemplos no kubectl [documentação de referência](/docs/reference/kubectl/#custom-columns).
|
||||
|
||||
### Verbosidade da Saída do Kubectl e Debugging
|
||||
### Verbosidade de saída do Kubectl e depuração
|
||||
|
||||
A verbosidade do Kubectl é controlado com as flags `-v` ou` --v` seguidos por um número inteiro representando o nível do log. As convenções gerais de log do Kubernetes e os níveis de log associados são descritos [aqui](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md).
|
||||
|
||||
|
@ -451,22 +455,17 @@ Verbosidade | Descrição
|
|||
`--v=3` | Informações estendidas sobre alterações.
|
||||
`--v=4` | Detalhamento no nível de debugging.
|
||||
`--v=5` | Verbosidade do nível de rastreamento.
|
||||
`--v=6` | Exibir os recursos solicitados.
|
||||
`--v=7` | Exibir cabeçalhos de solicitação HTTP.
|
||||
`--v=8` | Exibir conteúdo da solicitação HTTP.
|
||||
`--v=9` | Exiba o conteúdo da solicitação HTTP sem o truncamento do conteúdo.
|
||||
|
||||
|
||||
`--v=6` | Exibe os recursos solicitados.
|
||||
`--v=7` | Exibe cabeçalhos de solicitação HTTP.
|
||||
`--v=8` | Exibe conteúdo da solicitação HTTP.
|
||||
`--v=9` | Exibe o conteúdo da solicitação HTTP sem o truncamento do conteúdo.
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
* Leia a [visão geral do kubectl](/docs/reference/kubectl/) e aprenda sobre [JsonPath](/docs/reference/kubectl/jsonpath).
|
||||
|
||||
* Veja as opções do [kubectl](/docs/reference/kubectl/kubectl/).
|
||||
|
||||
* Veja as [Convenções de uso do kubectl](/docs/reference/kubectl/conventions/) para entender como usá-lo em scripts reutilizáveis.
|
||||
* Leia as [Convenções de uso do kubectl](/docs/reference/kubectl/conventions/) para entender como usá-lo em scripts reutilizáveis.
|
||||
|
||||
* Ver mais comunidade [kubectl cheatsheets](https://github.com/dennyzhang/cheatsheet-kubernetes-A4).
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue