Vamos criar dois cluster simples de nó único (control-plane) para um exercício prático.
Neste post estou considerando que você já está com o kind instalado, caso não esteja e queira acompanhar segue o link do post de instalação no linux.
# Criando os clusters
kind create cluster --name cluster-dev
kind create cluster --name cluster-prd
# Listando os clusters
kind get clusters
O que são contextos em clusters kubernetes
Tenha em mente, cada cluster é um contexto distinto do outro, e você pode ter a necessidade de ter que trabalhar, gerenciar mais de um cluster. A transição de um cluster para o outro, é chamada de troca de contexto, a ferramenta kubectl vai lhe auxiliar nessa tarefa.
O comando abaixo interage diretamente com o arquivo kubeconfig localizado em ~/.kube/config
. Você pode ver o seu conteúdo com o cat ~/.kube/config
.
Ele é um arquivo sensível, pois contem as chaves de acesso ao seu cluster, então muito cuidado com o seu aquivo kubeconfig de acesso a ambientes de produção.
# Lista todos os contextos
kubectl config get-contexts
# Lista o contexto corrente
kubectl config current-context
# Lista com mais detalhes
kubectl config view
kubectl config view --minify
Observe na sessão – context: o campo name:
- context:
cluster: kind-cluster-dev
user: kind-cluster-dev
name: kind-cluster-dev
- context:
cluster: kind-cluster-prd
user: kind-cluster-prd
name: kind-cluster-prd
Então os nomes dos nossos contextos são:
kind-cluster-dev
kind-cluster-prd
k cluster-info
k cluster-info --context kind-cluster-prd
Kubernetes control plane is running at https://127.0.0.1:33285
CoreDNS is running at https://127.0.0.1:33285/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
k cluster-info --context kind-cluster-prd
Alternando entre contextos de clusters kubernetes
kubectl config use-context kind-cluster-dev
kubectl config use-context kind-cluster-prd
Carregando um arquivo kubeconfig em um diretório
Do diretório corrente onde se encontra o arquivo, que pode ter qualquer nome.
Excute o comando abaixo:
# Analisando os contextos do arquivo
kubectl config --kubeconfig=arq-config view
# Alternando para o contexto desejado
kubectl config --kubeconfig=arq-config use-context nome-contexto
Removendo um context manualmente
kubectl config unset users.gke_project_zone_name
kubectl config unset contexts.aws_cluster1-kubernetes
kubectl config unset clusters.foobar-baz
kubectl config unset contexts.kind-cluster-prd
Limpando o lab
# Deletando os clusters
kind delete cluster --name cluster-dev
kind delete cluster --name cluster-prd