Ce face kubectl config
Comanda kubectl config citește și modifică fișierul kubeconfig (implicit ~/.kube/config), în care sunt definite clusterele la care te poți conecta, utilizatorii (credențialele) și contextele. Un context este o combinație „cluster + utilizator + namespace implicit” căreia îi dai un nume, de exemplu productie sau kind-dev.
Când lucrezi cu mai multe clustere (dezvoltare, staging, producție), schimbi între ele cu kubectl config use-context. Toate comenzile kubectl ulterioare vor merge către clusterul contextului curent, așa că este bine să verifici mereu unde ești cu kubectl config current-context înainte de operații riscante.
Poți folosi mai multe fișiere kubeconfig simultan prin variabila de mediu KUBECONFIG (căi separate prin : pe Linux/macOS), iar kubectl config view îți arată rezultatul combinat, cu secretele ascunse.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
get-contexts |
Listează toate contextele; cel curent este marcat cu * în coloana CURRENT. |
current-context |
Afișează numele contextului activ. |
use-context NUME |
Schimbă contextul activ (scrie current-context în kubeconfig). |
set-context --current --namespace=NS |
Setează namespace-ul implicit pentru contextul curent, ca să nu mai scrii -n NS la fiecare comandă. |
view [--minify] [--raw] |
Afișează configurația combinată; --minify doar pentru contextul curent, --raw include și certificatele/tokenurile. |
rename-context VECHI NOU |
Redenumește un context. |
delete-context NUME |
Șterge un context din kubeconfig (clusterul în sine nu este afectat). |
--kubeconfig=FIȘIER |
Opțiune globală: folosește alt fișier kubeconfig decât cel implicit. |
Exemple
Exemplul 1: Listarea și schimbarea contextelor
Vedem ce clustere avem configurate și trecem pe clusterul de staging.
kubectl config get-contexts
kubectl config use-context staging
kubectl config current-context
Ieșire în terminal
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kind-dev kind-dev kind-dev
productie prod-eks admin-prod shop
staging staging-gke dev-user default
Switched to context "staging".
staging
Exemplul 2: Setarea namespace-ului implicit
După această comandă, kubectl get pods va lista pod-urile din namespace-ul shop fără să mai fie nevoie de -n shop.
kubectl config set-context --current --namespace=shop
kubectl config view --minify -o jsonpath='{..namespace}'
Ieșire în terminal
Context "staging" modified.
shop
Exemplul 3: Combinarea a două fișiere kubeconfig
Variabila KUBECONFIG permite folosirea temporară a mai multor fișiere; cu --flatten le poți salva într-unul singur.
export KUBECONFIG=~/.kube/config:~/Downloads/client-cluster.yaml
kubectl config get-contexts -o name
kubectl config view --flatten > ~/.kube/config-combinat
Ieșire în terminal
kind-dev
productie
staging
client-prod
Greșeli frecvente
- Rularea unei comenzi distructive (
delete,drain) fără a verifica întâi contextul curent. Afișează contextul în promptul shell-ului sau folosește explicit--context=NUMEîn scripturi. - Confuzia dintre
set-contextșiuse-context:set-contextdoar modifică (sau creează) un context, nu îl activează. - Partajarea fișierului kubeconfig obținut cu
view --raw: acesta conține certificate și tokenuri de acces care trebuie tratate ca parole.
Comenzi înrudite
kubectl cluster-info: Afișează adresa API server-ului și a serviciilor principale din cluster.Obiectul Namespace: Împarte un cluster fizic în sub-clustere logice izolate pe echipe, proiecte sau medii.kubectl get: Listează una sau mai multe resurse, într-un tabel sau în format YAML/JSON.