Lorsque vous installez un graphique à l'aide de Helm, il attend généralement chaque version d'avoir son propre ensemble autonome d'objets Kubernetes. Dans l'exemple de base que vous montrez, je m'attendrais à voir des objets de service Kubernetes nommés quelque chose comme
release-a-application-a
release-a-redis
release-b-application-b
release-b-redis
Il existe une convention générale selon laquelle les objets sont nommés en commençant par {{ .Release.Name }}
, donc les deux Redises sont séparés.
Il s'agit en fait d'une configuration attendue. Une règle typique de création de microservices est que chaque service contient son propre stockage isolé et que les services ne partagent jamais le stockage entre eux. Ce modèle Helm prend en charge cela, et il n'y a pas vraiment d'inconvénient à avoir cette configuration.
Si vous voulez vraiment que les deux graphiques partagent une seule installation Redis, vous pouvez écrire un graphique "parapluie" qui ne fait rien par lui-même mais dépend des deux graphiques d'application. Le graphique aurait un Chart.yaml
file et (dans Helm 2) un requirements.yaml
fichier qui référence les deux autres graphiques, mais pas un templates
répertoire qui lui est propre. Cela amènerait Helm à conclure qu'un seul Redis pourrait prendre en charge les deux applications, et vous vous retrouveriez avec quelque chose comme
umbrella-application-a
umbrella-application-b
umbrella-redis
(D'après mon expérience, vous ne le faites généralement pas le veux - tu fais voulez un Redis distinct par application - et donc essayer de gérer plusieurs installations à l'aide d'un graphique parapluie ne fonctionne pas particulièrement bien.)