Kubectx e Kubens, ferramentas para auxiliar na administração do Kubernetes
Sabemos que trabalhar com Kubectl no dia a dia se torna algo muito massante, pois é muito verboso.
No mundo real onde temos inúmeras namespaces e clusters Kubernetes, temos que ficar a todo momento trocando o contexto do cluster que desejamos conectar, e quando queremos obter informações de objetos referentes a algum namespaces em especifico temos que ficar adicionando no sufixo dos comandos Kubectl o namespace, algo como
, esse é um código que repetimos muito e que é muito verboso. Quando estamos lidando com algum incidente, por muitas vezes ficamos horas consultando diversos objetos da mesma namespace, tendo que adicionar esse comando a todo momento, e pensando em diminuir essa verbosidade é que a comunidade desenvolveu o Kubectx e Kubens.-n nomeDoNamespace
A ideia do Kubectx é facilitar a troca de contexto do Kubectl relacionado aos clusters Kubernetes, como demonstrado no gif a seguir.

Já o Kubens auxilia na troca de contexto em relação a namespace, fazendo com que não seja mais necessário concatenar o sufixo de contexto do namespace no final de cada comando Kubectl.

Kubectx
Lista de comandos disponíveis:
kubectx : lista de contextos
kubectx <NAME> : troca para o contexto de nome <NAME>
kubectx - : volta para o contexto que estava definido anteriormente
kubectx -c, --current : exibe o nome do contexto atual
kubectx <NEW_NAME>=<NAME> : altera o nome do contexto <NAME> para <NEW_NAME>
kubectx <NEW_NAME>=. : altera o nome do contexto atual para <NEW_NAME>
kubectx -d <NAME> : delete o contexto de nome <NAME>
kubectx -u, --unset : desconecta no contexto
Exemplos de uso:
$ kubectx minikube
#Troca para o contexto "minikube".
$ kubectx -
#Altera o contexto para "oregon".
$ kubectx -
#Altera o contexto para "minikube".
$ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
#Cria um contexto chamado "dublin"
Kubens
Lista de comandos disponíveis:
kubens : lista os namespaces
kubens <NAME> : troca o namespace para <NAME>
kubens - : altera para o namespace utilizado anteriormente
kubens -c, --current : existe o nome do namespace definido atualmente
Exemplos de uso:
$ kubens kube-system
#altera o contexto do namespace para "kube-system".
$ kubens -
#retornado para o namespace utilizado anteriormente "default"
Instalação
Atualmente essas são as opções de instalações:
-
kubectl plugins (macOS/Linux)
-
macOS
-
Homebrew (recomendado)
-
MacPorts
-
-
Linux
-
Debian
-
Arch Linux
-
Homebrew
-
Manual installation
-
Nesse post não entraremos em detalhes sobre a instalação manual.
Kubectl Plugins
Krew é um gerenciador de plugins para o Kubectl.
kubectl krew install ctx
kubectl krew install ns
Após as instalações serem efetuadas, as ferramentas devem ser acessadas por meio do Kubectl, conforme os exemplos a seguir.
kubectl ctx
# para o Kubectx
kubectl ns
# para o Kubens
macOS
Linux
Debian
sudo apt install kubectx
Arch Linux
sudo pacman -S kubectx
Homebrew
Como mencionado anteriormente Homebrew é um gerenciador de pacotes para macOS e Linux.
brew install kubectx
Esse post teve como base a documentação do Kubectx e Kubens.