Redis
 sql >> Database >  >> NoSQL >> Redis

2 grafici Helm con dipendenza Redis condivisa

Quando installi un grafico utilizzando Helm, generalmente si aspetta ogni versione avere il proprio insieme autonomo di oggetti Kubernetes. Nell'esempio di base che mostri, mi aspetto di vedere oggetti del servizio Kubernetes con un nome simile a

release-a-application-a
release-a-redis
release-b-application-b
release-b-redis

Esiste una convenzione generale per cui gli oggetti sono denominati a partire da {{ .Release.Name }} , quindi i due Redise sono separati.

Questa è in realtà una configurazione prevista. Una regola tipica per la creazione di microservizi è che ogni servizio contenga il proprio spazio di archiviazione isolato e che i servizi non condividano mai lo spazio di archiviazione tra loro. Questo modello Helm lo supporta e non c'è davvero uno svantaggio nell'avere questa configurazione.

Se vuoi davvero che i due grafici condividano un'unica installazione Redis, puoi scrivere un grafico "ombrello" che non fa nulla da solo ma dipende dai due grafici dell'applicazione. Il grafico dovrebbe avere un Chart.yaml file e (in Helm 2) un requirements.yaml file che fa riferimento agli altri due grafici, ma non a templates directory propria. Ciò indurrebbe Helm a concludere che un singolo Redis potrebbe supportare entrambe le applicazioni e ti ritroveresti con qualcosa come

umbrella-application-a
umbrella-application-b
umbrella-redis

(Secondo la mia esperienza, di solito non vuoi questo – tu lo fai desidera un Redis separato per applicazione, quindi provare a gestire più installazioni utilizzando un grafico a ombrello non funziona particolarmente bene.)