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-ulapi, comanda corectă estekubectl 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.