Skip to content

Commit 1f9b9e0

Browse files
Synced pt-br_cheatsheet.md with English
1 parent ec66152 commit 1f9b9e0

File tree

1 file changed

+105
-17
lines changed

1 file changed

+105
-17
lines changed

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

Lines changed: 105 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,7 @@ card:
1212

1313
<!-- overview -->
1414

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-
15+
Esta página contém uma lista de comandos e sinalizadores `kubectl` comumente usados.
2016

2117
<!-- body -->
2218

@@ -45,6 +41,12 @@ source <(kubectl completion zsh) # configuração para usar autocomplete no ter
4541
echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc # adicionar auto completar permanentemente para o seu shell zsh
4642
```
4743

44+
### Uma nota sobre `--all-namespaces`
45+
46+
Acrescentar `--all-namespaces` acontece com bastante frequência, onde você deve estar ciente da abreviação de `--all-namespaces`:
47+
48+
```kubectl -A```
49+
4850
## Contexto e Configuração do Kubectl
4951

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

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

@@ -79,6 +86,10 @@ kubectl config set-context gce --user=cluster-admin --namespace=foo \
7986
&& kubectl config use-context gce
8087

8188
kubectl config unset users.foo # excluir usuário foo
89+
90+
# 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)
91+
alias kx='f() { [ "$1" ] && kubectl config use-context $1 || kubectl config current-context ; } ; f'
92+
alias kn='f() { [ "$1" ] && kubectl config set-context --current --namespace $1 || kubectl config view --minify | grep namespace | cut -d" " -f6 ; } ; f'
8293
```
8394

8495
## Aplicar
@@ -96,7 +107,14 @@ kubectl apply -f ./my1.yaml -f ./my2.yaml # criar a partir de vários arqui
96107
kubectl apply -f ./dir # criar recurso(s) em todos os arquivos de manifesto no diretório
97108
kubectl apply -f https://git.io/vPieo # criar recurso(s) a partir de URL
98109
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
110+
111+
# crie um Job que imprima "Hello World"
112+
kubectl create job hello --image=busybox:1.28 -- echo "Hello World"
113+
114+
# crie um CronJob que imprima "Hello World" a cada minuto
115+
kubectl create cronjob hello --image=busybox:1.28 --schedule="*/1 * * * *" -- echo "Hello World"
116+
117+
kubectl explain pods # obtenha a documentação de manifesto do pod
100118

101119
# Crie vários objetos YAML a partir de stdin
102120
cat <<EOF | kubectl apply -f -
@@ -167,6 +185,13 @@ kubectl get pv --sort-by=.spec.capacity.storage
167185
kubectl get pods --selector=app=cassandra -o \
168186
jsonpath='{.items[*].metadata.labels.version}'
169187

188+
# Recupere o valor de uma chave com pontos, por exemplo 'ca.crt'
189+
kubectl get configmap myconfig \
190+
-o jsonpath='{.data.ca\.crt}'
191+
192+
# Recupere um valor codificado em base64 com traços em vez de sublinhados
193+
kubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'
194+
170195
# Obter todos os nós workers (use um seletor para excluir resultados que possuem uma label
171196
# nomeado 'node-role.kubernetes.io/master')
172197
kubectl get node --selector='!node-role.kubernetes.io/master'
@@ -201,12 +226,24 @@ kubectl get events --sort-by=.metadata.creationTimestamp
201226

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

206245
## Atualizando Recursos
207246

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-
210247
```bash
211248
kubectl set image deployment/frontend www=image:v2 # Aplica o rollout nos containers "www" do deployment "frontend", atualizando a imagem
212249
kubectl rollout history deployment/frontend # Verifica o histórico do deployment, incluindo a revisão
@@ -215,13 +252,6 @@ kubectl rollout undo deployment/frontend --to-revision=2 # Rollback para
215252
kubectl rollout status -w deployment/frontend # Acompanhe o status de atualização do "frontend" até sua conclusão sem interrupção
216253
kubectl rollout restart deployment/frontend # Reinício contínuo do deployment "frontend"
217254

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-
225255
cat pod.json | kubectl replace -f - # Substitua um pod com base no JSON passado para std
226256

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

256286
# Adicionar um novo elemento a uma matriz posicional
257287
kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]'
288+
289+
# Update a deployment's replica count by patching its scale subresource
290+
kubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'
258291
```
259292

260293
## Editando Recursos
@@ -301,13 +334,46 @@ kubectl run -i --tty busybox --image=busybox -- sh # Executar pod como shell in
301334
kubectl run nginx --image=nginx --restart=Never -n
302335
mynamespace # Execute o pod nginx em um namespace específico
303336
kubectl run nginx --image=nginx --restart=Never # Execute o pod nginx e salve suas especificações em um arquivo chamado pod.yaml
337+
304338
--dry-run -o yaml > pod.yaml
305339

306340
kubectl attach my-pod -i # Anexar ao contêiner em execução
307341
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
308342
kubectl exec my-pod -- ls / # Executar comando no pod existente (1 contêiner)
343+
kubectl exec --stdin --tty my-pod -- /bin/sh # Acesso de shell interativo a um pod em execução (1 caixa de contêiner)
309344
kubectl exec my-pod -c my-container -- ls / # Executar comando no pod existente (pod com vários contêineres)
310345
kubectl top pod POD_NAME --containers # Mostrar métricas para um determinado pod e seus contêineres
346+
kubectl top pod POD_NAME --sort-by=cpu # Mostrar métricas para um determinado pod e classificá-lo por 'cpu' ou 'memória'
347+
```
348+
349+
## Copiar arquivos e diretórios de e para contêineres
350+
351+
```bash
352+
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
353+
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
354+
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
355+
kubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar # Copie /tmp/foo de um pod remoto para /tmp/bar localmente
356+
```
357+
{{< note >}}
358+
`kubectl cp` requer que o binário 'tar' esteja presente em sua imagem de container. Se 'tar' não estiver presente, `kubectl cp` falhará.
359+
Para casos de uso avançado, como links simbólicos, expansão curinga ou preservação do modo de arquivo, considere usar `kubectl exec`.
360+
{{< /note >}}
361+
362+
```bash
363+
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
364+
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
365+
```
366+
367+
## Interagindo com implantações e serviços
368+
```bash
369+
kubectl logs deploy/my-deployment # despejar logs de pod para uma implantação (caso de contêiner único)
370+
kubectl logs deploy/my-deployment -c my-container # despejar logs de pod para uma implantação (caso de vários contêineres)
371+
372+
kubectl port-forward svc/my-service 5000 # escute na porta local 5000 e encaminhe para a porta 5000 no back-end do serviço
373+
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>
374+
375+
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>
376+
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)
311377
```
312378

313379
## Interagindo com Nós e Cluster
@@ -321,13 +387,16 @@ kubectl cluster-info # Exibir e
321387
kubectl cluster-info dump # Despejar o estado atual do cluster no stdout
322388
kubectl cluster-info dump --output-directory=/path/to/cluster-state # Despejar o estado atual do cluster em /path/to/cluster-state
323389

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

328397
### Tipos de Recursos
329398

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):
399+
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/ trabalhando com objetos/namespaces) e [Kind](/docs/concepts/overview/working-with-objects/kubernetes-objects):
331400

332401
```bash
333402
kubectl api-resources
@@ -359,6 +428,24 @@ Formato de saída | Descrição
359428
`-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
360429
`-o=yaml` | Saída de um objeto de API formatado em YAML
361430

431+
Exemplos usando `-o=custom-columns`:
432+
433+
```bash
434+
# Todas as imagens em execução em um cluster
435+
kubectl get pods -A -o=custom-columns='DATA:spec.containers[*].image'
436+
437+
# Todas as imagens em execução no namespace: padrão, agrupadas por pod
438+
kubectl get pods --namespace default --output=custom-columns="NAME:.metadata.name,IMAGE:.spec.containers[*].image"
439+
440+
# Todas as imagens excluindo "registry.k8s.io/coredns:1.6.2"
441+
kubectl get pods -A -o=custom-columns='DATA:spec.containers[?(@.image!="registry.k8s.io/coredns:1.6.2")].image'
442+
443+
# Todos os campos sob metadados, independentemente do nome
444+
kubectl get pods -A -o=custom-columns='DATA:metadata.*'
445+
```
446+
447+
More examples in the kubectl [reference documentation](/docs/reference/kubectl/#custom-columns).
448+
362449
### Verbosidade da Saída do Kubectl e Debugging
363450

364451
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).
@@ -370,6 +457,7 @@ Verbosidade | Descrição
370457
`--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.
371458
`--v=3` | Informações estendidas sobre alterações.
372459
`--v=4` | Detalhamento no nível de debugging.
460+
`--v=5` | Verbosidade do nível de rastreamento.
373461
`--v=6` | Exibir os recursos solicitados.
374462
`--v=7` | Exibir cabeçalhos de solicitação HTTP.
375463
`--v=8` | Exibir conteúdo da solicitação HTTP.
@@ -380,7 +468,7 @@ Verbosidade | Descrição
380468
## {{% heading "whatsnext" %}}
381469

382470

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

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

0 commit comments

Comments
 (0)