Sari la conținutul principal

Introducere

Helm introduce conceptul de chart: un pachet ce conține toate fișierele necesare pentru a instala o aplicație pe un cluster Kubernetes (deployment-uri, servicii, config map-uri, secrete, templating în YAML, etc.). Folosind șabloane și un fișier de valori parametrizabile, un chart permite personalizarea ușoară a configurației aplicației pentru medii diferite, fără a duplica fișiere YAML. Atunci când instalăm un chart pe un cluster, Helm creează un release, care este practic o instanță în rulare a chart-ului, pe care îl putem ulterior actualiza (upgrade) sau elimina (uninstall) cu ușurință.

Scopul acestui laborator este să ne familiarizăm cu întregul flux de utilizare Helm într-un mediu local. Vom folosi un cluster Kubernetes local creat cu Kind (Kubernetes IN Docker), interacționând exclusiv prin comenzile standard kubectl și helm. Vom parcurge pașii de bază: crearea unui chart Helm simplu, instalarea lui pe cluster, personalizarea prin modificarea valorilor și upgrade-ul release-ului, precum și dezinstalarea resurselor. De asemenea, vom exersa folosirea unui repository Helm public pentru a instala un chart existent. Pe parcurs, vom discuta și despre potențiale probleme și greșeli comune (de exemplu, accesul la aplicație într-un mediu local fără LoadBalancer, prin kubectl port-forward, sau reutilizarea corectă a numelor release-urilor).

Cerințe

Pentru a urma acest laborator, trebuie să aveți instalate și configurate următoarele instrumente pe stația locală:

  • Docker – Kind rulează clusterul Kubernetes în containere Docker, deci Docker trebuie să fie instalat și în execuție.
  • kubectl – utilitarul CLI pentru Kubernetes, configurat în $PATH.
  • Helm – utilitarul CLI Helm (versiunea 3+), instalat local.
  • Kind – utilitarul CLI Kind pentru crearea clusterelor Kubernetes locale (se poate instala de pe pagina oficială sau cu un manager de pachete, de exemplu brew install kind pe MacOS, choco install kind pe Windows, ori script curl pe Linux).

Dacă ați folosit anterior Minikube, puteți opri eventualul cluster Minikube rulând minikube stop, pentru a evita conflictele de context Kubernetes. În continuare, vom crea un nou cluster local cu Kind și vom folosi acest mediu pe tot parcursul laboratorului.