Skip to main content

Contexts | Kubernetes

  • Contexts | Kubernetes

O que é um Context no Kubernetes?

Um context no Kubernetes é uma configuração que define qual cluster, qual usuário e qual namespace você deseja usar por padrão ao executar comandos kubectl. Ele funciona como um "perfil" que facilita a troca entre múltiplos ambientes, como produção, homologação, desenvolvimento ou clusters locais como o minikube.

A definição de contextos fica armazenada no arquivo:

~/.kube/config

Componentes de um Context

Um contexto é formado por três partes principais:

1. Cluster

O endpoint da API que você deseja acessar. Exemplos: minikube, prod-cluster, eks-dev.

2. User

Credenciais associadas ao acesso ao cluster. Pode ser uma chave, token, role cloud provider etc.

3. Namespace

O namespace padrão que será usado ao executar comandos kubectl.

Um contexto pode ser representado assim:

contexts:
- name: minikube
context:
cluster: minikube
user: minikube
namespace: default

Comandos Essenciais

🔄 Listar contextos disponíveis

kubectl config get-contexts

Visualizar o contexto atual

kubectl config current-context

🔀 Alterar o contexto ativo

kubectl config use-context <nome-do-context>

Exemplo:

kubectl config use-context minikube

✏️ Renomear um contexto

kubectl config rename-context <contexto-antigo> <contexto-novo>

🆕 Criar um novo contexto manualmente

kubectl config set-context <nome> \
--cluster=<cluster> \
--user=<usuario> \
--namespace=<namespace>

🗑️ Remover um contexto

kubectl config delete-context <nome>

Exemplos Práticos

➜ Trocar rapidamente entre clusters

kubectl config use-context dev-cluster
kubectl config use-context prod-cluster

➜ Definir namespace padrão em um contexto existente

kubectl config set-context --current --namespace=observability

➜ Criar um contexto para testes

kubectl config set-context testing \
--cluster=minikube \
--user=minikube \
--namespace=testes

Por que usar Contexts?

Usar contextos evita a necessidade de repetir argumentos como --cluster, --namespace ou --user em todos os comandos. Isso traz:

  • ✔️ Agilidade na troca entre ambientes
  • ✔️ Menos erros humanos
  • ✔️ Organização ao trabalhar com múltiplos clusters
  • ✔️ Praticidade para scripts, CI/CD e automações

Boas Práticas

  • Nomeie contextos de forma clara, ex.: dev, stage, prod.
  • Evite usar prod como contexto padrão.
  • Use kubectl config view para inspecionar problemas no arquivo.
  • Para ambientes cloud, mantenha credenciais separadas por política de segurança.

Referência Rápida

kubectl config get-contexts
kubectl config use-context <ctx>
kubectl config current-context
kubectl config rename-context <old> <new>
kubectl config set-context <name> --cluster=A --user=B --namespace=C
kubectl config delete-context <ctx>