sql >> Database >  >> NoSQL >> Redis

2 Helm-kaarten met gedeelde Redis-afhankelijkheid

Wanneer u een kaart installeert met Helm, verwacht deze over het algemeen elke release om zijn eigen op zichzelf staande set Kubernetes-objecten te hebben. In het basisvoorbeeld dat u laat zien, zou ik Kubernetes Service-objecten verwachten met de naam

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

Er is een algemene afspraak dat objecten een naam krijgen die begint met {{ .Release.Name }} , dus de twee Redises zijn gescheiden.

Dit is eigenlijk een verwachte opstelling. Een typische regel bij het bouwen van microservices is dat elke service zijn eigen geïsoleerde opslag heeft en dat services nooit opslag met elkaar delen. Dit Helm-patroon ondersteunt dat, en er is niet echt een nadeel aan het hebben van deze opstelling.

Als je echt wilt dat de twee kaarten één enkele Redis-installatie delen, kun je een "paraplu"-kaart schrijven die op zichzelf niets doet, maar afhankelijk is van de twee toepassingskaarten. De grafiek zou een Chart.yaml . hebben bestand en (in Helm 2) een requirements.yaml bestand dat verwijst naar de twee andere grafieken, maar geen templates eigen directory. Dat zou Helm ertoe brengen te concluderen dat een enkele Redis beide applicaties zou kunnen ondersteunen, en je zou eindigen met zoiets als

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

(In mijn ervaring doe je dat meestal niet wil dit – jij doe wil een aparte Redis per applicatie - en dus proberen meerdere installaties te beheren met behulp van een overkoepelende grafiek werkt niet bijzonder goed.)



  1. mongodb 3.x-stuurprogramma Android-compatibiliteit

  2. Resque, Resque Server, op RedisToGo met Heroku

  3. MongoDB $split

  4. mangoest verschil van findOneAndUpdate en update