TL;DR; Se você está cansado de todas as horas ficar escrevendo os verbos do kubectl, isto será um facilitador, e ajudará ser mais ágil com o kubectl.

Além de criar alias para o kubectl, e de quebra iremos adicionar alguns plugins para facilitar o seu dia.

KREW:

É um gerenciador de plugins para o kubectl.
Git: https://github.com/GoogleContainerTools/krew

INSTALANDO O KREW:


No terminal execute o comando abaixo:
(
set -x; cd “$(mktemp -d)” &&
curl -fsSLO “https://storage.googleapis.com/krew/v0.2.1/krew.{tar.gz,yaml}” &&
tar zxvf krew.tar.gz &&
./krew-“$(uname | tr ‘[:upper:]’ ‘[:lower:]’)_amd64” install \
–manifest=krew.yaml –archive=krew.tar.gz
)

ADICIONANDO A VARIÁVEL DE AMBIENTE DO KREW NO BASHRC:

echo ‘export PATH=”${KREW_ROOT:-$HOME/.krew}/bin:$PATH”‘ >> ~/.bashrc

PLUGINS:

  • access-matrix
  • bulk-action
  • ca-cert
  • change-ns                   
  • cssh
  • debug-shell                 
  • exec-as
  • get-all     
  • gke-credentials           
  • kubesec-scan             
  • match-name               
  • mtail       
  • node-admin                
  • open-svc
  • pod-logs
  • pod-shell
  • prompt   
  • rbac-lookup                
  • rbac-view
  • restart     
  • rm-standalone-pods  
  • sniff         
  • ssh-jump       
  • sudo
  • view-secret    
  • view-serviceaccount-kubeconfig
  • view-utilization
  • warp

INSTALANDO PLUGINS DO KREW:

kubectl krew install plugin

ALIAS PARA O KUBECTL:

Adicionar as linhas abaixo dentro do bashrc, que está localizado em “/home/seu-usuario/.bashrc”.

#alias kubectl
alias k=’kubectl’
alias kc=’kubectl create -f’
alias kg=’kubectl get’
alias kl=’kubectl logs ‘
alias klf=’kubectl logs -f’
alias kx=’kubectl exec -i -t’
alias kd=’kubectl describe’
alias krm=’kubectl delete’
alias ka=’kubectl apply -fi’
alias kp=’kubectl get po’
alias kpf=’kubectl port-forward’
alias ksvc=’kubectl get svc’
alias kns=’kubectl-change_ns’
alias kga=’kubectl-get_all’
alias kscan=’kubectl-kubesec_scan’
alias klogs=’kubectl-pod_logs’
alias ksniff=’kubectl-sniff’
alias ksudo=’kubectl-sudo’
alias kwarp=’kubectl-warp’
alias kkrew=’kubectl-krew’
alias ktail=’kubectl-mtail’
alias krst=’kubectl-restart’
alias kssh=’kubectl-ssh_jump’
alias kvs=’kubectl-view_secret’
alias kw=’watch -n1 “kubectl get pod | grep -i $1″‘

USANDO OS ATALHOS E PLUGINS NO KUBECTL:

CHANGE NAMESPACE:
Somente altera o namespace ao trocar cluster de kubernetes, mantendo como default, o namespace definido.

Define o namespace padrão para o kubectl:
kubectl-change_ns namespace
Alias:
kns namespace

Retorna para o namespace padrão para o kubectl:
kubectl-change_ns –
Alias:
kns –

PEGA TUDO:
Lista todos os recursos utilizados dentro de um namespace.
kubectl-get_all namespace
Alias:
kga namespace

LOG POR APP LABEL:
Mostra logs dos pods pelo label.
kubectl-mtail -n namespace label do pod
Alias:
ktail -n namespace label do pod

SENHA EM TEXTO PURO:
Mostra a secret em texto puro.
kubectl-view_secret namespace secretname keyvalue
Alias:
kvs namespace secretname keyvalue

BONUS: FACILITANDO SUA VIDA COM KUBECTL:

K:
k = kubectl
Ex.: k get pod

KC:
kc = kubectl create -f
Ex.: kc deployment.yaml

KG:
kg = kubectl get
Ex.: kg po

KL:
kl = kubectl logs
Ex.: kl pod-name

KLF:
Klf = kubectl logs -f
Ex.: klf pod-name

KX:
kx = kubectl exec -i -t
Ex.: kx pod-name bash

KD:
kd = kubectl describe
Ex.: kd deployment

KRM:
krm = kubectl delete
Ex.: krm deployment-name

KA:
ka = kubectl apply -fi
Ex.: ka ingress.yaml

KP:
kp = kubectl get po
Ex.: kp -n namespace

KPF:
kpf = kubectl port-forward
Ex.: kpf svc/svc-name 9090:porta pod

KSVC:
ksvc = kubectl get svc
Ex.: ksvc -n namespace

KNS:
kns = kubectl-change_ns
Ex.: kns namespace

KGA:
kga = kubectl-get_all
Ex.: kga namespace

KLOGS:
klogs = kubectl-pod_logs
Ex.: klogs pod-name

KTAIL:
ktail = kubectl-mtail
Ex.: ktail pod -abel

KVS:
kvs = kubectl-view_secret
Ex.: kvs secret-name user

KW:
kw = watch -n1 “kubectl get pod | grep -i $1”
Ex.: kw pod-name

KKREW:
kkrew = kubectl-krew
Ex.: kkrew install plugin

KRST:
krst = kubectl-restart
Ex.: krst pod-name

KSNIFF:
ksniff = kubectl-sniff
Ex.: ksniff pod-name

KSCAN:
kscan = kubectl-kubesec_scan
Ex.: kscan deployment deployment-name

KSUDO:
ksudo = kubectl-sudo
Ex.: ksudo get nodes

KWARP:
kwarp = kubectl-warp
Ex.: kwarp -it –image debian testing — /bin/bash
Kwarp -it –image node testing-node — npm run watch
Kwarp –image node testing-node –exclude=”node_modules/***” — npm install && npm run watch

KSSH:
kssh = kubectl-ssh_jump
Ex.: kssh node options

Estes atalhos facilitam muito no meu dia à dia, reduzindo a quantidade de verbos do comando kubectl a serem digitados no terminal.

Devolvendo conhecimento para a comunidade!

Espero ter ajudado!