Skip to content

Commit 74d09c9

Browse files
authored
Merge pull request #39479 from akash-kumar-saw/akash-kumar-saw/sync_pt-br_cheatsheet.md
[pt-br] Update reference/kubectl/cheatsheet.md
2 parents 590366e + 0d87a3a commit 74d09c9

File tree

1 file changed

+113
-32
lines changed

1 file changed

+113
-32
lines changed

content/pt-br/docs/reference/kubectl/cheatsheet.md

Lines changed: 113 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
---
22
title: kubectl Cheat Sheet
3-
reviewers:
4-
- erictune
5-
- krousey
6-
- clove
73
content_type: concept
84
card:
95
name: reference
@@ -12,11 +8,7 @@ card:
128

139
<!-- overview -->
1410

15-
Veja também: [Visão geral do Kubectl](/docs/reference/kubectl/overview/) e [JsonPath Guide](/docs/reference/kubectl/jsonpath).
16-
17-
Esta página é uma visão geral do comando `kubectl`.
18-
19-
11+
Esta página contém uma lista de comandos e sinalizadores `kubectl` comumente usados.
2012

2113
<!-- body -->
2214

@@ -42,9 +34,15 @@ complete -F __start_kubectl k
4234

4335
```bash
4436
source <(kubectl completion zsh) # configuração para usar autocomplete no terminal zsh no shell atual
45-
echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc # adicionar auto completar permanentemente para o seu shell zsh
37+
echo '[[ $commands[kubectl] ]] && source <(kubectl completion zsh)' >> ~/.zshrc # adicionar auto completar permanentemente para o seu shell zsh
4638
```
4739

40+
### Uma nota sobre `--all-namespaces`
41+
42+
Acrescentar `--all-namespaces` acontece com bastante frequência, onde você deve estar ciente da abreviação de `--all-namespaces`:
43+
44+
```kubectl -A```
45+
4846
## Contexto e Configuração do Kubectl
4947

5048
Defina com qual cluster Kubernetes o `kubectl` se comunica e modifique os detalhes da configuração.
@@ -68,6 +66,11 @@ kubectl config get-contexts # exibir lista de contextos
6866
kubectl config current-context # exibir o contexto atual
6967
kubectl config use-context my-cluster-name # defina o contexto padrão como my-cluster-name
7068

69+
kubectl config set-cluster my-cluster-name # defina uma entrada de cluster no kubeconfig
70+
71+
# configurar a URL para um servidor proxy a ser usado para solicitações feitas por este cliente no kubeconfig
72+
kubectl config set-cluster my-cluster-name --proxy-url=my-proxy-url
73+
7174
# adicione um novo cluster ao seu kubeconfig que suporte autenticação básica
7275
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
7376

@@ -79,6 +82,10 @@ kubectl config set-context gce --user=cluster-admin --namespace=foo \
7982
&& kubectl config use-context gce
8083

8184
kubectl config unset users.foo # excluir usuário foo
85+
86+
# 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)
87+
alias kx='f() { [ "$1" ] && kubectl config use-context $1 || kubectl config current-context ; } ; f'
88+
alias kn='f() { [ "$1" ] && kubectl config set-context --current --namespace $1 || kubectl config view --minify | grep namespace | cut -d" " -f6 ; } ; f'
8289
```
8390

8491
## Aplicar
@@ -96,7 +103,14 @@ kubectl apply -f ./my1.yaml -f ./my2.yaml # criar a partir de vários arqui
96103
kubectl apply -f ./dir # criar recurso(s) em todos os arquivos de manifesto no diretório
97104
kubectl apply -f https://git.io/vPieo # criar recurso(s) a partir de URL
98105
kubectl create deployment nginx --image=nginx # iniciar uma única instância do nginx
99-
kubectl explain pods,svc # obtenha a documentação de manifesto do pod
106+
107+
# crie um Job que imprime "Hello World"
108+
kubectl create job hello --image=busybox:1.28 -- echo "Hello World"
109+
110+
# crie um CronJob que imprime "Hello World" a cada minuto
111+
kubectl create cronjob hello --image=busybox:1.28 --schedule="*/1 * * * *" -- echo "Hello World"
112+
113+
kubectl explain pods # obtenha a documentação de manifesto do pod
100114

101115
# Crie vários objetos YAML a partir de stdin
102116
cat <<EOF | kubectl apply -f -
@@ -167,9 +181,16 @@ kubectl get pv --sort-by=.spec.capacity.storage
167181
kubectl get pods --selector=app=cassandra -o \
168182
jsonpath='{.items[*].metadata.labels.version}'
169183

184+
# Recupere o valor de uma chave com pontos, por exemplo 'ca.crt'
185+
kubectl get configmap myconfig \
186+
-o jsonpath='{.data.ca\.crt}'
187+
188+
# Recupere um valor codificado em base64 com traços em vez de sublinhados
189+
kubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'
190+
170191
# Obter todos os nós workers (use um seletor para excluir resultados que possuem uma label
171-
# nomeado 'node-role.kubernetes.io/master')
172-
kubectl get node --selector='!node-role.kubernetes.io/master'
192+
# nomeado 'node-role.kubernetes.io/control-plane')
193+
kubectl get node --selector='!node-role.kubernetes.io/control-plane'
173194

174195
# Obter todos os pods em execução no namespace
175196
kubectl get pods --field-selector=status.phase=Running
@@ -201,12 +222,24 @@ kubectl get events --sort-by=.metadata.creationTimestamp
201222

202223
# Compara o estado atual do cluster com o estado em que o cluster estaria se o manifesto fosse aplicado.
203224
kubectl diff -f ./my-manifest.yaml
225+
226+
# Produzir uma árvore delimitada por ponto de todas as chaves retornadas para nós
227+
# Útil ao localizar uma chave em uma estrutura JSON aninhada complexa
228+
kubectl get nodes -o json | jq -c 'paths|join(".")'
229+
230+
# Produzir uma árvore delimitada por ponto de todas as chaves retornadas para pods, etc.
231+
kubectl get pods -o json | jq -c 'paths|join(".")'
232+
233+
# 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.
234+
# Útil ao executar qualquer comando suportado em todos os pods, não apenas `env`
235+
for pod in $(kubectl get po --output=jsonpath={.items..metadata.name}); do echo $pod && kubectl exec -it $pod -- env; done
236+
237+
# Obtenha o sub-recurso de status de uma implantação
238+
kubectl get deployment nginx-deployment --subresource=status
204239
```
205240

206241
## Atualizando Recursos
207242

208-
A partir da versão 1.11 `rolling-update` foi descontinuado (veja [CHANGELOG-1.11.md](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.11.md)), utilize o comando `rollout` no lugar deste.
209-
210243
```bash
211244
kubectl set image deployment/frontend www=image:v2 # Aplica o rollout nos containers "www" do deployment "frontend", atualizando a imagem
212245
kubectl rollout history deployment/frontend # Verifica o histórico do deployment, incluindo a revisão
@@ -215,13 +248,6 @@ kubectl rollout undo deployment/frontend --to-revision=2 # Rollback para
215248
kubectl rollout status -w deployment/frontend # Acompanhe o status de atualização do "frontend" até sua conclusão sem interrupção
216249
kubectl rollout restart deployment/frontend # Reinício contínuo do deployment "frontend"
217250

218-
219-
# versão inicial descontinuada 1.11
220-
kubectl rolling-update frontend-v1 -f frontend-v2.json # (descontinuada) Atualização contínua dos pods de frontend-v1
221-
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 # (descontinuada) Altera o nome do recurso e atualiza a imagem
222-
kubectl rolling-update frontend --image=image:v2 # (descontinuada) Atualize a imagem dos pods do frontend
223-
kubectl rolling-update frontend-v1 frontend-v2 --rollback # (descontinuada) Interromper o lançamento existente em andamento
224-
225251
cat pod.json | kubectl replace -f - # Substitua um pod com base no JSON passado para std
226252

227253
# Força a substituição, exclui e recria o recurso. Causará uma interrupção do serviço.
@@ -255,6 +281,9 @@ kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "
255281

256282
# Adicionar um novo elemento a uma matriz posicional
257283
kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]'
284+
285+
# Atualize a contagem de réplicas de uma implantação corrigindo seu sub-recurso de escala
286+
kubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'
258287
```
259288

260289
## Editando Recursos
@@ -274,7 +303,7 @@ kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # Se o tamanho
274303
kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Escalar vários replicaset
275304
```
276305

277-
## Exclusão de Recursos
306+
## Deleting resources
278307

279308
```bash
280309
kubectl delete -f ./pod.json # Exclua um pod usando o tipo e o nome especificados em pod.json
@@ -297,17 +326,47 @@ kubectl logs my-pod -c my-container --previous # despejar logs de um contê
297326
kubectl logs -f my-pod # Fluxo de logs de pod (stdout)
298327
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)
299328
kubectl logs -f -l name=myLabel --all-containers # transmitir todos os logs de pods com a label name=myLabel (stdout)
300-
kubectl run -i --tty busybox --image=busybox -- sh # Executar pod como shell interativo
301-
kubectl run nginx --image=nginx --restart=Never -n
302-
mynamespace # Execute o pod nginx em um namespace específico
303-
kubectl run nginx --image=nginx --restart=Never # Execute o pod nginx e salve suas especificações em um arquivo chamado pod.yaml
304-
--dry-run -o yaml > pod.yaml
305-
329+
kubectl run -i --tty busybox --image=busybox:1.28 -- sh # Executar pod como shell interativo
330+
kubectl run nginx --image=nginx -n mynamespace # Inicie uma única instância do pod nginx no namespace de mynamespace
331+
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
332+
# Gere a especificação para executar o pod nginx e grave-a em um arquivo chamado pod.yaml
306333
kubectl attach my-pod -i # Anexar ao contêiner em execução
307334
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
308335
kubectl exec my-pod -- ls / # Executar comando no pod existente (1 contêiner)
336+
kubectl exec --stdin --tty my-pod -- /bin/sh # Acesso de shell interativo a um pod em execução (apenas 1 contêiner)
309337
kubectl exec my-pod -c my-container -- ls / # Executar comando no pod existente (pod com vários contêineres)
310338
kubectl top pod POD_NAME --containers # Mostrar métricas para um determinado pod e seus contêineres
339+
kubectl top pod POD_NAME --sort-by=cpu # Mostrar métricas para um determinado pod e classificá-lo por 'cpu' ou 'memória'
340+
```
341+
342+
## Copiar arquivos e diretórios de e para contêineres
343+
344+
```bash
345+
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
346+
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
347+
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
348+
kubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar # Copie /tmp/foo de um pod remoto para /tmp/bar localmente
349+
```
350+
{{< note >}}
351+
`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á.
352+
Para casos de uso avançado, como links simbólicos, expansão curinga ou preservação do modo de arquivo, considere usar `kubectl exec`.
353+
{{< /note >}}
354+
355+
```bash
356+
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
357+
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
358+
```
359+
360+
## Interagindo com implantações e serviços
361+
```bash
362+
kubectl logs deploy/my-deployment # despejar logs de pod para uma implantação (caso de contêiner único)
363+
kubectl logs deploy/my-deployment -c my-container # despejar logs de pod para uma implantação (caso de vários contêineres)
364+
365+
kubectl port-forward svc/my-service 5000 # escute na porta local 5000 e encaminhe para a porta 5000 no back-end do serviço
366+
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>
367+
368+
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>
369+
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)
311370
```
312371

313372
## Interagindo com Nós e Cluster
@@ -321,13 +380,16 @@ kubectl cluster-info # Exibir e
321380
kubectl cluster-info dump # Despejar o estado atual do cluster no stdout
322381
kubectl cluster-info dump --output-directory=/path/to/cluster-state # Despejar o estado atual do cluster em /path/to/cluster-state
323382

383+
# Veja os taints existentes nos nós atuais.
384+
kubectl get nodes -o='custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect'
385+
324386
# Se uma `taint` com essa chave e efeito já existir, seu valor será substituído conforme especificado.
325387
kubectl taint nodes foo dedicated=special-user:NoSchedule
326388
```
327389

328390
### Tipos de Recursos
329391

330-
Listar todos os tipos de recursos suportados, juntamente com seus nomes abreviados, [Grupo de API](/docs/concepts/overview/kubernetes-api/#api-groups), se eles são por [namespaces](/docs/concepts/overview/working-with-objects/namespaces), e [objetos](/docs/concepts/overview/working-with-objects/kubernetes-objects):
392+
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):
331393

332394
```bash
333395
kubectl api-resources
@@ -359,9 +421,27 @@ Formato de saída | Descrição
359421
`-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
360422
`-o=yaml` | Saída de um objeto de API formatado em YAML
361423

424+
Exemplos usando `-o=custom-columns`:
425+
426+
```bash
427+
# Todas as imagens em execução em um cluster
428+
kubectl get pods -A -o=custom-columns='DATA:spec.containers[*].image'
429+
430+
# Todas as imagens em execução no namespace: padrão, agrupadas por pod
431+
kubectl get pods --namespace default --output=custom-columns="NAME:.metadata.name,IMAGE:.spec.containers[*].image"
432+
433+
# Todas as imagens excluindo "registry.k8s.io/coredns:1.6.2"
434+
kubectl get pods -A -o=custom-columns='DATA:spec.containers[?(@.image!="registry.k8s.io/coredns:1.6.2")].image'
435+
436+
# Todos os campos sob metadados, independentemente do nome
437+
kubectl get pods -A -o=custom-columns='DATA:metadata.*'
438+
```
439+
440+
Mais exemplos no kubectl [documentação de referência](/docs/reference/kubectl/#custom-columns).
441+
362442
### Verbosidade da Saída do Kubectl e Debugging
363443

364-
A verbosidade do Kubectl é controlado com os sinalizadores `-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).
444+
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).
365445

366446
Verbosidade | Descrição
367447
--------------| -----------
@@ -370,6 +450,7 @@ Verbosidade | Descrição
370450
`--v=2` | Informações úteis sobre o estado estacionário sobre o serviço e mensagens importantes de log que podem se correlacionar com alterações significativas no sistema. Este é o nível de log padrão recomendado para a maioria dos sistemas.
371451
`--v=3` | Informações estendidas sobre alterações.
372452
`--v=4` | Detalhamento no nível de debugging.
453+
`--v=5` | Verbosidade do nível de rastreamento.
373454
`--v=6` | Exibir os recursos solicitados.
374455
`--v=7` | Exibir cabeçalhos de solicitação HTTP.
375456
`--v=8` | Exibir conteúdo da solicitação HTTP.
@@ -380,7 +461,7 @@ Verbosidade | Descrição
380461
## {{% heading "whatsnext" %}}
381462

382463

383-
* Saiba mais em [Visão geral do kubectl](/docs/reference/kubectl/overview/).
464+
* Leia a [visão geral do kubectl](/docs/reference/kubectl/) e aprenda sobre [JsonPath](/docs/reference/kubectl/jsonpath).
384465

385466
* Veja as opções do [kubectl](/docs/reference/kubectl/kubectl/).
386467

0 commit comments

Comments
 (0)