Pluginuri kubectl și krew în Kubernetes (kubectl)

Configurare și context kubectl 1.12+ (mecanism de pluginuri stabil din 1.14)

Extinde kubectl cu comenzi noi: orice executabil kubectl-<nume> din PATH devine kubectl <nume>; krew le instalează și actualizează.

Sintaxă comandă
kubectl plugin list
kubectl krew install|search|list|upgrade|uninstall <plugin>

Ce face Pluginuri kubectl și krew

Un plugin kubectl este doar un program sau script numit kubectl-<nume>, aflat într-un director din PATH. Când rulezi kubectl <nume>, kubectl îl găsește și îl execută cu argumentele tale. Cratimele din nume devin spații: kubectl-view-secret se apelează cu kubectl view-secret.

krew este managerul de pluginuri al comunității Kubernetes (proiect SIG CLI): caută, instalează și actualizează pluginuri dintr-un index comun. Se instalează după instrucțiunile de pe krew.sigs.k8s.io, apoi adaugi $HOME/.krew/bin în PATH. Pluginurile nu sunt verificate de proiectul Kubernetes: rulează cu drepturile tale, deci instalează doar ce cunoști.

Parametri

Parametru Descriere
kubectl plugin list Listează pluginurile găsite în PATH.
krew update Actualizează indexul de pluginuri.
krew search [text] Caută pluginuri.
krew install NUME... Instalează pluginuri.
krew list Listează pluginurile instalate cu krew.
krew upgrade Actualizează pluginurile instalate.
krew uninstall NUME Dezinstalează un plugin.

Exemple

Exemplul 1: Un plugin propriu în câteva rânduri

Scriptul listează Pod-urile care nu sunt în starea Running; după ce îl punem în PATH, îl apelăm ca kubectl probleme.

cat > ~/bin/kubectl-probleme <<'EOF'
#!/bin/sh
kubectl get pods -A --field-selector=status.phase!=Running,status.phase!=Succeeded "$@"
EOF
chmod +x ~/bin/kubectl-probleme
kubectl plugin list
kubectl probleme

Ieșire în terminal

The following compatible plugins are available:

/home/ana/bin/kubectl-probleme
NAMESPACE   NAME                    READY   STATUS    RESTARTS   AGE
magazin     raport-lunar-28sx9      0/1     Pending   0          3m

Exemplul 2: Instalarea pluginurilor ctx și ns cu krew

După instalare, comenzile apar ca kubectl ctx și kubectl ns.

export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
kubectl krew update
kubectl krew install ctx ns
kubectl plugin list

Ieșire în terminal

Updated the local copy of plugin index.
...
The following compatible plugins are available:

/home/ana/.krew/bin/kubectl-ctx
/home/ana/.krew/bin/kubectl-krew
/home/ana/.krew/bin/kubectl-ns

Greșeli frecvente

  • Numirea unui plugin la fel ca o comandă kubectl existentă (kubectl-get): comenzile incluse au prioritate, iar pluginul nu va rula niciodată.
  • Uitarea liniei cu PATH în ~/.bashrc sau ~/.zshrc: după repornirea terminalului, pluginurile instalate cu krew „dispar”.

Comenzi înrudite

  • kubectx și kubens: Unelte mici pentru schimbarea rapidă a contextului (clusterului) și a namespace-ului implicit din kubeconfig.
  • kubectl auth can-i: Verifică dacă tu (sau alt utilizator ori ServiceAccount) ai voie să faci o anumită acțiune în cluster, conform regulilor RBAC.