Je suis nouveau dans l'utilisation de Helm et je ne sais pas quelle est la meilleure approche lorsque vous avez deux déploiements. J'ai créé un graphique pour mon application. Il contient deux déploiements:
Dois-je les conserver dans le même graphique ou dois-je créer un sous-graphique pour app-mysql.yaml?
3 Réponses :
Vous pouvez utiliser un seul graphique avec les deux déploiements ou un graphique principal avec deux sous-graphiques, un pour app-nginx-phpfpm.yaml
et un pour app-mysql.yaml
. Si l'ensemble de votre application ne se développe pas autant, vous pouvez utiliser un seul graphique. Cependant, si vous prévoyez de continuer à ajouter des composants à votre application (plus de déploiements, etc.), il est recommandé d'utiliser des sous-graphiques. Plus d'informations ici .
Vous pouvez avoir les deux, selon la manière dont vous souhaitez structurer vos déploiements.
Vous devez garder à l'esprit les points suivants
{{.Release.Name}}
changerait déjà pour chaque "application"). Vous pouvez avoir un diagramme principal que vous utilisez pour tester tous les sous-diagrammes, et empaqueter les sous-diagrammes indépendamment tout en conservant tout sur le même référentiel. p >
Par exemple, je garde généralement des éléments comme:
. / helm / charts / whatever-master / values.yaml . / helm / charts / whatever-master / requirements.yaml . / helm / charts / whatever-subchart1 / values.yaml . / helm / charts / whatever-subchart2 / values.yaml
ou
. / helm / charts / whatever / charts / subchart1 . / helm / charts / whatever / charts / subchart2 . / helm / charts / whatever / values.yaml
Et j'utilise les exigences. yaml sur le diagramme principal pour extraire du file://../whatever-subchartx
.
De cette façon, je peux avoir n'importe quel-stress-test
et any-subcomponent-unit-test
tout en étant flexible pour déployer séparément des composants qui ont des cycles de publication différents si vous le souhaitez.
Cela dépendra également en fin de compte de votre stratégie de mise à niveau . Les mises à niveau de Canary vous obligeront probablement à gérer les microservices avec état d'une manière plus spécifique que ce que vous pouvez avoir avec un seul graphique, alors planifiez en conséquence.
Les graphiques peuvent dépendre d'autres graphiques; référence - https://helm.sh/docs/glossary/#chart-dependency- sous-graphiques .
Si vous avez une application parent, dites: - salutations-app et 2 applications enfants, dites: - Bonjour le monde - hiworld
Vous pouvez créer un graphique pour le parent "greetings-app", puis dans le répertoire "charts /" faire déplacer ou créer les graphiques de "helloworld" et "hiworld" lorsque vous installez le chart "greetings-app" - vous installerez automatiquement les graphiques dépendants avec lui. Vous devrez créer "requirements.yaml" dans le parent (greetings-app) listant les dépendances
dependencies: - name: helloworld-app repository: https://raw.githubusercontent.com/.../myhelmcharts/master/ version: 0.1.0 tags: - helloworld - name: hiworld-app repository: https://raw.githubusercontent.com/.../myhelmcharts/master/ version: 0.1.0 tags: - hiworld
Dossier des graphiques illustratifs La structure serait: -
Une autre méthode consiste à empaqueter les applications enfants et à les héberger sur un serveur http (GitHub), puis à créer les exigences.yaml listant les dépendances
dependencies: - name: helloworld - name: hiworld
Le plus tard est probablement la méthode préférée - à mon avis, c'est la dépendance douce, mais l'application est gérée séparément.