kubectl set image în Kubernetes (kubectl)

Actualizează imaginea unui container dintr-un Deployment, DaemonSet sau StatefulSet (și alte comenzi kubectl set).

Sintaxă comandă
kubectl set image RESURSĂ/NUME CONTAINER=IMAGINE:TAG [--dry-run=client -o yaml]

Ce face kubectl set image

Subcomanda kubectl set image schimbă imaginea unuia sau mai multor containere dintr-un Deployment, StatefulSet sau DaemonSet și declanșează automat un rolling update (pe care îl urmărești cu kubectl rollout status).

Familia kubectl set mai include și alte scurtături utile pentru modificări punctuale fără a deschide editorul: kubectl set env (adaugă sau șterge variabile de mediu) și kubectl set resources (modifică requests și limits de CPU/memorie).

Opțiuni și argumente

Opțiune / Parametru Descriere
image TIP/NUME CONTAINER=IMG:TAG Actualizează imaginea containerului numit CONTAINER (sau *=IMG:TAG pentru toate).
env TIP/NUME CHEIE=VAL [CHEIE-] Setează sau șterge (CHEIE-) o variabilă de mediu; cu --from=secret/NUME le importă dintr-un Secret/ConfigMap.
resources TIP/NUME --requests=cpu=...,memory=... --limits=... Actualizează cerințele și limitele de CPU/memorie ale containerelor.
serviceaccount TIP/NUME SA Asociază un alt ServiceAccount șablonului de pod.

Exemple

Exemplul 1: Actualizarea imaginii unui Deployment și urmărirea lansării

Primul api este numele Deployment-ului (deployment/api), iar al doilea (api=...) este numele containerului din spec.template.spec.containers[].name.

kubectl set image deployment/api api=ghcr.io/exemplu/api:1.4.3
kubectl rollout status deployment/api

Ieșire în terminal

deployment.apps/api image updated
deployment "api" successfully rolled out

Exemplul 2: Setarea unei variabile de mediu și a limitelor de resurse

kubectl set env deployment/api LOG_LEVEL=debug
kubectl set resources deployment/api -c=api --requests=cpu=200m,memory=256Mi --limits=cpu=1000m,memory=512Mi

Ieșire în terminal

deployment.apps/api env updated
deployment.apps/api resource requirements updated

Greșeli frecvente

  • Confundarea numelui Deployment-ului cu numele containerului: dacă în YAML containerul se numește app, iar Deployment-ul api, comanda corectă este kubectl set image deploy/api app=imagine:tag.

Comenzi înrudite

  • kubectl rollout: Monitorizează lansarea unei versiuni noi, revine la o revizie anterioară (undo) sau repornește treptat pod-urile.
  • Obiectul Deployment: Gestionează aplicații stateless replicabile: menține numărul de pod-uri, le înlocuiește când cad și face rolling updates.
  • kubectl apply: Creează sau actualizează declarativ resurse din fișiere YAML/JSON ori directoare Kustomize.
  • kubectl edit: Deschide definiția YAML a unei resurse din cluster în editorul de text și aplică modificările la salvare.