Когато инсталирате диаграма с помощта на Helm, тя обикновено очаква всяко издаване да има свой собствен самостоятелен набор от Kubernetes обекти. В основния пример, който показвате, бих очаквал да видя обекти на Kubernetes Service, наречени нещо като
release-a-application-a
release-a-redis
release-b-application-b
release-b-redis
Има обща конвенция, че обектите се именуват, започвайки с {{ .Release.Name }}
, така че двете Redise са отделни.
Това всъщност е очаквана настройка. Типично правило за изграждане на микроуслуги е, че всяка услуга съдържа свое собствено изолирано хранилище и че услугите никога не споделят хранилище помежду си. Този модел Helm поддържа това и всъщност няма недостатък да имате тази настройка.
Ако наистина искате двете диаграми да споделят една инсталация на Redis, можете да напишете диаграма "чадър", която не прави нищо сама по себе си, но зависи от двете диаграми на приложението. Диаграмата ще има Chart.yaml
файл и (в Helm 2) requirements.yaml
файл, който препраща към двете други диаграми, но не и templates
собствена директория. Това би накарало Helm да заключи, че един Redis може да поддържа и двете приложения и ще получите нещо като
umbrella-application-a
umbrella-application-b
umbrella-redis
(Според моя опит обикновено не искате това – вие правите искате отделен Redis за приложение – и затова опитите за управление на множество инсталации с помощта на диаграма с чадър не работят особено добре.)