Modelul Helm și cerințe
De ce avem nevoie de Helm
Manifestele Kubernetes sunt declarative, dar nu oferă singure un mecanism convenabil pentru:
- reutilizarea aceleiași aplicații în mai multe medii
- centralizarea valorilor care se schimbă
- instalarea mai multor instanțe ale aceleiași aplicații
- versionarea unei instalări și revenirea la o stare anterioară
- împachetarea și distribuirea unui set de resurse Kubernetes.
Helm adaugă aceste capabilități peste API-ul Kubernetes. El randează template-urile local și trimite manifestele rezultate către cluster.
Termenii importanți
| Termen | Semnificație în laborator |
|---|---|
| chart | pachetul charts/ticketing, cu template-uri, valori și metadate |
| values | configurația care este injectată în template-uri |
| release | o instalare a chart-ului; release-ul nostru se numește ticketing |
| revision | o versiune din istoricul unui release, creată la install, upgrade sau rollback |
| repository/registry | locul din care poate fi distribuit un chart împachetat |
Relația esențială este:
chart + values + numele release-ului → manifeste Kubernetes randate → resurse în cluster
Același chart poate produce resurse cu nume și configurații diferite dacă îi schimbăm release-ul, namespace-ul sau valorile.
Ce nu face Helm
Helm nu înlocuiește Kubernetes și nu rulează permanent un controller propriu în cluster. După ce manifestele au fost aplicate, reconcilierea este realizată tot de controllerele Kubernetes.
Helm nu este nici manager de secrete. Un Secret randat de chart face parte din starea release-ului. În laborator folosim o parolă fictivă, dar într-un mediu real am folosi un Secret creat separat sau un sistem dedicat de gestionare a secretelor.
Cerințe
Aveți nevoie de:
- Docker
kubectlkind- Helm 3
curlsau un client HTTP echivalent.
Verificați instrumentele:
docker version
kubectl version --client
kind version
helm version
Pentru instalarea Helm pe macOS poate fi folosit:
brew install helm
Pe celelalte platforme urmați instrucțiunile oficiale de instalare pentru Helm 3. Nu este necesar Tiller (acesta aparținea Helm 2).