kubectl cp în Kubernetes (kubectl)

Depanare și acces kubectl 1.4+

Copiază fișiere și directoare între mașina locală și un container dintr-un pod.

Sintaxă comandă
kubectl cp SURSĂ DESTINAȚIE [-c CONTAINER] [--retries=N]

Ce face kubectl cp

Comanda kubectl cp copiază fișiere sau directoare de pe calculatorul tău într-un pod sau invers (de exemplu pentru a descărca un dump de memorie, un profil CPU sau un fișier generat în container). Sintaxa seamănă cu scp sau docker cp: calea din cluster are forma [NAMESPACE/]POD:CALE.

Cerință importantă: în culise, kubectl cp rulează tar în interiorul containerului. Dacă imaginea containerului nu are binarul tar instalat (cazul imaginilor distroless), comanda va eșua.

Opțiuni și argumente

Opțiune / Parametru Descriere
POD:CALE Calea din container; dacă începe fără /, este relativă la directorul de lucru al containerului.
-c, --container=NUME Specifică containerul dintr-un pod multi-container.
--retries=N Reîncearcă transferul în caz de întrerupere de rețea (util pentru fișiere mari).
--no-preserve Nu păstrează UID/GID și permisiunile originale ale fișierelor.

Exemple

Exemplul 1: Descărcarea unui fișier din pod și urcarea unui script local

kubectl cp shop/api-6f9b8d7c4-lm2vd:/tmp/heap.prof ./heap.prof
kubectl cp ./test-data.json shop/api-6f9b8d7c4-lm2vd:/tmp/test-data.json

Ieșire în terminal

tar: Removing leading `/' from member names

Greșeli frecvente

  • Mesajul tar: Removing leading '/' from member names nu este o eroare: vine de la tar din container și fișierul a fost copiat cu succes.
  • Pe Windows sau când folosești căi cu C:\..., două puncte (:) este interpretat ca separator POD:CALE; folosește căi relative (de ex. ./fisier).

Comenzi înrudite

  • kubectl exec: Execută o comandă sau deschide un shell interactiv într-un container care rulează.
  • kubectl debug: Atașează un container efemer de depanare unui pod existent, îi face o copie sau deschide o sesiune pe un nod.
  • kubectl logs: Afișează sau urmărește în timp real ieșirea standard (stdout/stderr) a containerelor.