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.