Ce face kubectl port-forward
Comanda kubectl port-forward deschide un tunel securizat (prin conexiunea HTTPS către API server) de la un port de pe localhost-ul tău către un port dintr-un pod. Astfel poți accesa din browser sau dintr-un client local o aplicație, o bază de date sau o interfață de administrare (Prometheus, Grafana, Argo CD) fără a o expune public printr-un Service LoadBalancer sau un Ingress.
Poți viza direct un pod (pod/redis-0), un Deployment (deploy/api — alege automat unul dintre pod-uri) sau un Service (svc/api — poți folosi numărul ori numele portului din Service).
Comanda rulează în prim-plan cât timp tunelul este activ și se oprește cu Ctrl+C.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
PORT_LOCAL:PORT_CLUSTER |
Ascultă pe PORT_LOCAL și trimite traficul către PORT_CLUSTER (de ex. 8080:80). |
:PORT_CLUSTER |
Dacă omiți portul local, kubectl alege automat un port liber aleatoriu. |
--address=127.0.0.1,0.0.0.0 |
Interfețele locale pe care ascultă (implicit doar 127.0.0.1 / ::1). |
-n, --namespace=NS |
Namespace-ul în care se află resursa. |
Exemple
Exemplul 1: Accesarea unui Service HTTP de pe localhost:8080
Cât timp comanda rulează, poți deschide http://localhost:8080 în browser sau cu curl.
kubectl port-forward svc/api 8080:80
Ieșire în terminal
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080
Handling connection for 8080
Exemplul 2: Conectarea cu un client local la PostgreSQL sau Redis din cluster
Mapăm portul local 15432 ca să nu intre în conflict cu un PostgreSQL instalat local pe 5432.
kubectl port-forward pod/postgres-0 15432:5432 -n shop
Ieșire în terminal
Forwarding from 127.0.0.1:15432 -> 5432
Forwarding from [::1]:15432 -> 5432
Greșeli frecvente
- Chiar dacă scrii
kubectl port-forward svc/api, tunelul se leagă la un singur pod din spatele Service-ului și nu face load-balancing între replici; dacă acel pod repornește, tunelul se întrerupe. - Folosirea lui
--address=0.0.0.0pe o rețea nesigură expune serviciul din cluster tuturor colegilor din LAN.
Comenzi înrudite
Obiectul Service: Oferă o adresă IP stabilă, un nume DNS intern și load-balancing către un grup de Pod-uri.Obiectul Ingress: Expune servicii HTTP și HTTPS în afara clusterului, cu rutare după domeniu/cale și terminare TLS.kubectl exec: Execută o comandă sau deschide un shell interactiv într-un container care rulează.kubectl logs: Afișează sau urmărește în timp real ieșirea standard (stdout/stderr) a containerelor.