Ce face kubectl proxy
kubectl proxy deschide pe calculatorul tău un server HTTP (implicit 127.0.0.1:8001) care trimite cererile către API-ul clusterului, folosind credențialele din kubeconfig. Poți apela astfel API-ul cu curl http://localhost:8001/api/v1/..., fără să gestionezi tokenuri sau certificate.
Prin același proxy ajungi și la Service-urile din cluster, pe calea /api/v1/namespaces/<ns>/services/<nume>:<port>/proxy/. Spre deosebire de kubectl port-forward, care deschide un tunel TCP spre un Pod sau Service, kubectl proxy lucrează doar cu HTTP și trece prin API server.
Parametri
| Parametru | Descriere |
|---|---|
-p, --port |
Portul local (implicit 8001; 0 alege un port liber). |
--address |
Adresa pe care ascultă (implicit 127.0.0.1). |
--accept-hosts |
Expresie regulată cu gazdele acceptate. |
--api-prefix |
Prefixul căilor (implicit /). |
-w, --www |
Servește și fișiere statice dintr-un director. |
Exemple
Exemplul 1: Interogarea API-ului cu curl
Proxy-ul rulează în fundal; apoi listăm numele Pod-urilor din magazin.
kubectl proxy &
curl -s http://localhost:8001/api/v1/namespaces/magazin/pods | jq -r '.items[].metadata.name'
Ieșire în terminal
Starting to serve on 127.0.0.1:8001
magazin-api-7d9f8c6b5d-4hq9z
magazin-api-7d9f8c6b5d-r7nfd
postgres-0
Exemplul 2: Accesarea unui Service intern prin proxy
Verificăm endpoint-ul de sănătate al API-ului, care nu este expus în afara clusterului.
curl -s http://localhost:8001/api/v1/namespaces/magazin/services/magazin-api:3000/proxy/sanatate
Ieșire în terminal
{"status":"ok","oras":"Iasi","versiune":"1.4.1"}
Greșeli frecvente
- Pornirea proxy-ului cu
--address=0.0.0.0: oricine din rețea poate apela API-ul clusterului cu drepturile tale, fără autentificare. - Așteptarea ca aplicațiile web complexe să meargă prin calea de proxy a Service-ului: linkurile absolute din pagini (
/css/stil.css) nu au prefixul proxy-ului. Pentru aplicații web foloseștekubectl port-forward.
Comenzi înrudite
kubectl attach: Se conectează la procesul principal al unui container care rulează, pentru a-i vedea ieșirea și, cu -i, a-i trimite intrare.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.