helm install / helm upgrade în Kubernetes (kubectl)

Noduri și Helm Helm 3.0+

Managerul de pachete pentru Kubernetes: instalează, configurează și actualizează aplicații complexe (charts).

Sintaxă comandă
helm upgrade --install RELEASE CHART [-n NS] [-f values.yaml] [--set K=V] [--atomic]

Ce face helm install / helm upgrade

Helm este „apt/brew-ul pentru Kubernetes”: în loc să scrii și să întreții de mână zeci de fișiere YAML pentru aplicații precum NGINX Ingress, Prometheus, Redis, PostgreSQL sau Argo CD, instalezi un Chart — un pachet versionat de șabloane YAML parametrizate printr-un singur fișier values.yaml.

Fiecare instalare a unui chart într-un cluster se numește Release și are propriul istoric de revizii. Comanda helm upgrade --install este forma idempotentă preferată în practică și în CI/CD: instalează release-ul dacă nu există încă sau îl actualizează dacă există deja.

Înainte de a instala ceva în cluster, poți rula helm template ca să vezi pe ecran exact manifestele YAML rezultate după înlocuirea variabilelor, iar dacă un upgrade eșuează, helm rollback te readuce la revizia anterioară.

Opțiuni și argumente

Opțiune / Parametru Descriere
repo add NUME URL && helm repo update Adaugă un depozit de chart-uri și îi actualizează indexul local.
search repo CUVÂNT [--versions] Caută chart-uri și versiunile lor disponibile.
show values CHART Afișează toate opțiunile configurabile din values.yaml ale chart-ului.
upgrade --install RELEASE CHART Instalează sau actualizează un release (forma idempotentă).
-f, --values=FIȘIER.yaml Fișier cu valorile tale personalizate care suprascriu valorile implicite ale chart-ului.
--set CHEIE=VALOARE Suprascrie punctual o valoare direct din linia de comandă.
--version=X.Y.Z Fixează versiunea chart-ului (recomandat în producție pentru reproductibilitate).
--create-namespace Creează automat namespace-ul dat cu -n dacă nu există.
--atomic / --wait Așteaptă ca toate pod-urile să devină Ready și, cu --atomic, face rollback automat dacă lansarea eșuează.
list -A / history / rollback / uninstall Listează release-urile, vede istoricul, revine la o revizie veche sau dezinstalează complet release-ul.

Exemple

Exemplul 1: Adăugarea unui depozit și instalarea ingress-nginx

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx --create-namespace \
  --version 4.11.3 --wait

Ieșire în terminal

"ingress-nginx" has been added to your repositories
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "ingress-nginx" chart repository
Release "ingress-nginx" does not exist. Installing it now.
NAME: ingress-nginx
LAST DEPLOYED: Mon Apr 20 10:15:42 2026
NAMESPACE: ingress-nginx
STATUS: deployed
REVISION: 1

Exemplul 2: Listarea release-urilor, inspectarea valorilor și rollback

helm list -A
helm get values ingress-nginx -n ingress-nginx
helm rollback ingress-nginx 1 -n ingress-nginx

Ieșire în terminal

NAME            NAMESPACE       REVISION  UPDATED                                 STATUS    CHART                   APP VERSION
ingress-nginx   ingress-nginx   2         2026-04-20 10:22:10.418204 +0300 EEST   deployed  ingress-nginx-4.11.3    1.11.3
USER-SUPPLIED VALUES:
null
Rollback was a success! Happy Helming!

Greșeli frecvente

  • Rularea lui helm upgrade fără -f values.yaml sau fără --reuse-values după ce la instalare ai folosit un fișier de valori: toate personalizările anterioare sunt resetate la valorile implicite ale chart-ului.
  • Editarea manuală cu kubectl edit a resurselor create de Helm: la următorul helm upgrade modificările manuale vor fi suprascrise.

Comenzi înrudite

  • kubectl apply: Creează sau actualizează declarativ resurse din fișiere YAML/JSON ori directoare Kustomize.
  • Obiectul Ingress: Expune servicii HTTP și HTTPS în afara clusterului, cu rutare după domeniu/cale și terminare TLS.
  • kubectl rollout: Monitorizează lansarea unei versiuni noi, revine la o revizie anterioară (undo) sau repornește treptat pod-urile.
  • Obiectul Namespace: Împarte un cluster fizic în sub-clustere logice izolate pe echipe, proiecte sau medii.