Cheatsheet

← Voltar para página principal
☸️ Kubernetes Cheatsheet

Comandos essenciais para orquestração de containers e gerenciamento de clusters

☸️ O que é Kubernetes?

📖 Definição

Kubernetes é uma plataforma de orquestração de containers open-source que automatiza o deployment, scaling e management de aplicações containerizadas. Ele fornece um framework para executar sistemas distribuídos de forma resiliente, com escalabilidade e auto-recuperação.

💪 Por que aprender?

• Orquestração de containers
• Auto-scaling e load balancing
• Service discovery e storage orchestration
• Rollouts e rollbacks automatizados
• Configuração e secrets management

🚀 O que você pode fazer?

• Microserviços e APIs
• CI/CD pipelines
• Cloud Native applications
• High availability systems
• Multi-cloud deployments

💡 Onde você vai usar:
☸️ Clusters
Pods, Services, Deployments
🔧 DevOps
CI/CD, GitOps
☁️ Cloud
EKS, GKE, AKS
Scaling
Auto-scaling, Load Balancing
Filtro ativo:Todos
Total: 9 categoriasBásico: 2Intermediário: 2Avançado: 5

☸️ Cluster Management

Gerenciar informações básicas do cluster Kubernetes

📋Informações do Cluster

Básico
kubectl cluster-info

# Info do cluster

Básico
kubectl version

# Versões client/server

Básico
kubectl config view

# Configuração atual

Básico
kubectl config current-context

# Context atual

Básico
kubectl get nodes

# Lista nós do cluster

Básico
kubectl describe node NODE_NAME

# Detalhes do nó

📋Contextos e Namespaces

Básico
kubectl config get-contexts

# Lista contextos

Básico
kubectl config use-context CONTEXT_NAME

# Muda contexto

Básico
kubectl get namespaces

# Lista namespaces

Básico
kubectl create namespace NAME

# Cria namespace

Básico
kubectl -n NAMESPACE get pods

# Pods em namespace

☸️ Pods e Containers

Gerenciar pods e containers básicos

📋Gerenciar Pods

Básico
kubectl get pods

# Lista todos pods

Básico
kubectl get pods -o wide

# Com mais detalhes

Básico
kubectl get pods --all-namespaces

# Todos namespaces

Básico
kubectl describe pod POD_NAME

# Detalhes do pod

Básico
kubectl logs POD_NAME

# Logs do pod

Básico
kubectl logs -f POD_NAME

# Logs em tempo real

Básico
kubectl exec -it POD_NAME -- bash

# Acesso ao container

📋Gerenciar Containers

Básico
kubectl get containers

# Lista containers

Básico
kubectl top pods

# Uso de recursos

Básico
kubectl top pod POD_NAME --containers

# Por container

Básico
kubectl port-forward POD_NAME 8080:80

# Port forwarding

☸️ Deployments e Services

Gerenciar deployments e services para aplicações

📋Deployments

Intermediário
kubectl get deployments

# Lista deployments

Intermediário
kubectl describe deployment DEPLOY_NAME

# Detalhes do deployment

Intermediário
kubectl apply -f deployment.yaml

# Aplica manifesto

Intermediário
kubectl delete deployment DEPLOY_NAME

# Remove deployment

Intermediário
kubectl scale deployment DEPLOY_NAME --replicas=3

# Escala deployment

Intermediário
kubectl rollout status deployment DEPLOY_NAME

# Status do rollout

Intermediário
kubectl rollout undo deployment DEPLOY_NAME

# Reverte rollout

📋Services

Intermediário
kubectl get services

# Lista services

Intermediário
kubectl describe service SERVICE_NAME

# Detalhes do service

Intermediário
kubectl expose deployment DEPLOY_NAME --port=80 --type=LoadBalancer

# Expõe deployment

Intermediário
kubectl get endpoints

# Endpoints dos services

☸️ ConfigMaps e Secrets

Gerenciar configurações e segredos da aplicação

📋ConfigMaps

Intermediário
kubectl get configmaps

# Lista configmaps

Intermediário
kubectl describe configmap CONFIGMAP_NAME

# Detalhes do configmap

Intermediário
kubectl create configmap NAME --from-literal=key=value

# Cria configmap

Intermediário
kubectl create configmap NAME --from-file=config.txt

# Cria com arquivo

Intermediário
kubectl edit configmap CONFIGMAP_NAME

# Edita configmap

📋Secrets

Intermediário
kubectl get secrets

# Lista secrets

Intermediário
kubectl describe secret SECRET_NAME

# Detalhes do secret

Intermediário
kubectl create secret generic NAME --from-literal=password=secret123

# Cria secret

Intermediário
kubectl create secret tls NAME --cert=path/to/tls.crt --key=path/to/tls.key

# Cria TLS secret

Intermediário
echo -n 'mysecret' | base64

# Codifica secret

🎯 Helm - Package Manager

Gerenciar aplicações complexas com Helm

📋Instalação e Configuração

Avançado
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

# Instala Helm

Avançado
helm version

# Verifica instalação

Avançado
helm repo add stable https://charts.helm.sh/stable

# Adiciona repo

Avançado
helm repo update

# Atualiza repos

Avançado
helm repo list

# Lista repos

Avançado
helm search CHART_NAME

# Busca charts

📋Gerenciar Releases

Avançado
helm list

# Lista releases

Avançado
helm list --all-namespaces

# Todos namespaces

Avançado
helm status RELEASE_NAME

# Status do release

Avançado
helm history RELEASE_NAME

# Histórico do release

Avançado
helm rollback RELEASE_NAME REVISION

# Reverte release

📋Instalar Charts

Avançado
helm install RELEASE_NAME CHART_NAME

# Instala chart

Avançado
helm install RELEASE_NAME CHART_NAME --namespace NAMESPACE

# Instala com namespace

Avançado
helm install RELEASE_NAME CHART_NAME --set key=value

# Com valores

Avançado
helm install RELEASE_NAME CHART_NAME --values values.yaml

# Com arquivo de valores

Avançado
helm install RELEASE_NAME CHART_NAME --dry-run --debug

# Simulação

📋Upgrade e Uninstall

Avançado
helm upgrade RELEASE_NAME CHART_NAME

# Atualiza release

Avançado
helm upgrade RELEASE_NAME CHART_NAME --reuse-values

# Reusa valores

Avançado
helm uninstall RELEASE_NAME

# Remove release

Avançado
helm uninstall RELEASE_NAME --namespace NAMESPACE

# Remove com namespace

🔷 Istio - Service Mesh

Implementar service mesh com Istio

📋Instalação

Avançado
curl -L https://istio.io/downloadIstio | sh -

# Download Istio

Avançado
cd istio-1.x.x

# Entra no diretório

Avançado
export PATH=$PWD/bin:$PATH

# Adiciona ao PATH

Avançado
istioctl install --set profile=demo -y

# Instala demo

Avançado
istioctl install --set profile=default -y

# Instala padrão

Avançado
istioctl verify-install

# Verifica instalação

📋Configuração

Avançado
kubectl label namespace default istio-injection=enabled

# Habilita injection

Avançado
istioctl manifest generate > istio.yaml

# Gera manifesto

Avançado
kubectl apply -f istio.yaml

# Aplica manifesto

📋Virtual Services

Avançado
kubectl apply -f virtual-service.yaml

# Cria virtual service

Avançado
kubectl get virtualservices

# Lista virtual services

Avançado
kubectl describe virtualservice VSERVICE_NAME

# Detalhes do vservice

Avançado
kubectl delete virtualservice VSERVICE_NAME

# Remove virtual service

📋Destination Rules

Avançado
kubectl apply -f destination-rule.yaml

# Cria destination rule

Avançado
kubectl get destinationrules

# Lista destination rules

Avançado
kubectl describe destinationrule RULE_NAME

# Detalhes da rule

📋Gateway

Avançado
kubectl apply -f gateway.yaml

# Cria gateway

Avançado
kubectl get gateways

# Lista gateways

Avançado
kubectl describe gateway GATEWAY_NAME

# Detalhes do gateway

⚙️ Kustomize - Configuração Nativa

Gerenciar configurações com Kustomize

📋Instalação

Avançado
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash

# Instala Kustomize

Avançado
kustomize version

# Verifica instalação

Avançado
kustomize build .

# Build do kustomization

Avançado
kustomize build . | kubectl apply -f -

# Aplica direto

📋Estrutura de Diretórios

Avançado
base/

# Recursos base

Avançado
overlays/production/

# Customizações prod

Avançado
overlays/staging/

# Customizações staging

Avançado
kustomization.yaml

# Arquivo principal

📋Strategic Merge

Avançado
kustomize build overlays/production

# Build com overlay

Avançado
kustomize edit set image.nginx=nginx:1.21

# Edita imagem

Avançado
kustomize edit add namespace production

# Adiciona namespace

Avançado
kustomize edit add configmap APP_CFG --from-file=config.ini

# Adiciona configmap

📋Patches

Avançado
patchesStrategicMerge:

# Merge estratégico

Avançado
patchesJson6902:

# Patches JSON

Avançado
patches:

# Patches simples

Avançado
target:

# Alvo do patch

Avançado
path: patch.yaml

# Arquivo de patch

📊 Monitoramento e Observabilidade

Implementar monitoramento e observabilidade

📋Prometheus

Avançado
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

# Adiciona repo Prometheus

Avançado
helm install prometheus prometheus-community/kube-prometheus-stack

# Instala Prometheus

Avançado
kubectl port-forward svc/prometheus-server 9090:9090

# Acesso local

Avançado
kubectl get --raw http://prometheus-server:9090/api/v1/query?query=up

# Query API

📋Grafana

Avançado
helm repo add grafana https://grafana.github.io/helm-charts

# Adiciona repo Grafana

Avançado
helm install grafana grafana/grafana

# Instala Grafana

Avançado
kubectl port-forward svc/grafana 3000:3000

# Acesso local

Avançado
kubectl get secret grafana-admin-credentials -o jsonpath='{.data.admin-password}' | base64 -d

# Obtém senha

📋ELK Stack

Avançado
helm repo add elastic https://helm.elastic.co

# Adiciona repo Elastic

Avançado
helm install elasticsearch elastic/elasticsearch

# Instala Elasticsearch

Avançado
helm install kibana elastic/kibana

# Instala Kibana

Avançado
helm install logstash elastic/logstash

# Instala Logstash

📋Jaeger Tracing

Avançado
kubectl create namespace observability

# Cria namespace

Avançado
kubectl apply -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml

# Instala Jaeger

Avançado
kubectl port-forward svc/jaeger-query 16686:16686

# Acesso UI

Avançado
istioctl install --set values.tracing.enabled=true

# Habilita tracing

🔧 Troubleshooting e Debug

Diagnosticar e resolver problemas no cluster

📋Diagnóstico de Pods

Avançado
kubectl get pods -o wide

# Status detalhado

Avançado
kubectl describe pod POD_NAME

# Informações completas

Avançado
kubectl get events --sort-by=.metadata.creationTimestamp

# Eventos recentes

Avançado
kubectl get events --field-selector involvedObject.name=POD_NAME

# Eventos do pod

Avançado
kubectl logs POD_NAME --previous

# Logs anteriores

Avançado
kubectl logs POD_NAME --tail=100

# Últimas 100 linhas

Avançado
kubectl logs POD_NAME --since=1h

# Logs da última hora

Avançado
kubectl exec -it POD_NAME -- /bin/sh

# Shell no pod

📋Problemas de Rede

Avançado
kubectl exec -it POD_NAME -- nslookup SERVICE_NAME

# DNS resolution

Avançado
kubectl exec -it POD_NAME -- curl SERVICE_NAME

# Testa conexão

Avançado
kubectl exec -it POD_NAME -- telnet SERVICE_NAME 80

# Testa porta

Avançado
kubectl get endpoints

# Verifica endpoints

Avançado
kubectl get svc -o wide

# Detalhes dos services

Avançado
kubectl get networkpolicies

# Lista políticas

Avançado
kubectl describe networkpolicy POLICY_NAME

# Detalhes da política

Avançado
kubectl exec -it POD_NAME -- iptables -L

# Regras iptables

📋Performance e Recursos

Avançado
kubectl top nodes

# Uso por nó

Avançado
kubectl top pods --containers

# Uso por container

Avançado
kubectl describe node NODE_NAME | grep -A 5 "Allocated resources"

# Recursos alocados

Avançado
kubectl get pod POD_NAME -o jsonpath='{.spec.containers[*].resources}'

# Limits e requests

Avançado
kubectl exec -it POD_NAME -- top

# Processos no pod

Avançado
kubectl exec -it POD_NAME -- df -h

# Uso de disco

Avançado
kubectl exec -it POD_NAME -- free -h

# Uso de memória

Avançado
kubectl exec -it POD_NAME -- netstat -i

# Conexões de rede

🤝 Contribuindo

Encontrou um erro? Quer melhorar um cheatsheet? Tem uma sugestão? Adoraríamos suas contribuições! Abra uma issue ou submeta um PR.

Gostou do projeto? Apoie o desenvolvimento com um café e ajude a manter tudo open source ☕