Když instalujete graf pomocí Helm, obecně očekává každé vydání mít vlastní samostatnou sadu objektů Kubernetes. V základním příkladu, který ukazujete, bych očekával, že uvidím objekty Kubernetes Service pojmenované podobně jako
release-a-application-a
release-a-redis
release-b-application-b
release-b-redis
Existuje obecná konvence, že názvy objektů začínají {{ .Release.Name }}
, takže dvě Redise jsou oddělené.
Toto je vlastně očekávané nastavení. Typickým pravidlem budování mikroslužeb je, že každá služba obsahuje své vlastní izolované úložiště a že služby mezi sebou nikdy úložiště nesdílejí. Tento vzor Helm to podporuje a toto nastavení ve skutečnosti není nevýhodou.
Pokud opravdu chcete, aby tyto dva grafy sdílely jednu instalaci Redis, můžete napsat „zastřešující“ graf, který sám o sobě nic nedělá, ale závisí na dvou grafech aplikace. Graf bude mít Chart.yaml
soubor a (v Helm 2) requirements.yaml
soubor, který odkazuje na dva další grafy, ale ne na templates
vlastní adresář. To by vedlo Helm k závěru, že jeden Redis by mohl podporovat obě aplikace, a vy byste skončili s něčím jako
umbrella-application-a
umbrella-application-b
umbrella-redis
(Podle mých zkušeností to obvykle neděláte to chcete – chcete chcete samostatný Redis pro každou aplikaci – a tak pokusy o správu více instalací pomocí zastřešující tabulky nefungují obzvlášť dobře.)