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~/.bashrcsau~/.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.