Je déploie plusieurs sous-graphiques de barre dans Kubernetes Cluster via Helm et tiller. Comment puis-je m'assurer qu'un graphique particulier installe complètement ses conteneurs avant de commencer à installer d'autres graphiques et leurs conteneurs?
J'ai regardé dans requirements.yaml et hooks, aucun d'eux ne peut être la solution que je recherche.
ParentDir/
Chart.yaml
requirements.yaml
values.yaml
charts/
|
|
—- App1
Chart.yaml
values.yaml
templates/
—- App2
Chart.yaml
values.yaml
templates/
.
.
.
—- AppN
Chart.yaml
values.yaml
templates/
J'ai plusieurs sous-graphiques et je veux m'assurer que les conteneurs d'App1 sont prêts et prêts avant que Helm n'installe d'autres graphiques et ses conteneurs.
Vous devriez regarder dans helmfile et diviser votre pile en un helmfile par application. Étant donné que les fichiers helm à l'intérieur d'un dossier sont appliqués dans un ordre alphabétique, vous pouvez garantir l'ordre via les conventions de dénomination des fichiers.
Structure du fichier:
helmfile.d/
00-app-1.yaml
01-app-2.yaml
02-app-n.yaml
Exécutez-le avec cette commande: helmfile -f path/to/directory
Je suis tombé sur le même problème ces derniers temps. J'avais un RabbitMQ, en tant que package Helm, et deux packages Helm supplémentaires que j'ai construits localement.
Je voulais rassembler les trois dans un seul package Helm, mais je n'ai trouvé aucun moyen de commander l'installation des graphiques Helm, car par exemple, les deux autres packages ont besoin des informations d'identification RabbitMQ.
J'ai trouvé que l'utilisation de crochets apporte plus de complexité que nécessaire à la solution et j'ai préféré simplement les installer séparément, dans l'ordre que je veux, tandis que je peux effectuer des modifications manuelles entre les étapes.
Voici un article qui traite de ce sujet et pourrait vous intéresser.
Maintenant, il pourrait y avoir un moyen de bien ordonner les dépendances si vous êtes prêt à essayer Helmsman . Je ne peux pas porter de jugement à ce sujet, car je viens de le découvrir, mais à partir de son README sous Fonctionnalités:
Définissez l'ordre de gestion des versions: vous pouvez définir les priorités auxquelles les versions sont gérées par le barreur (utile pour les dépendances).
Ici est la documentation pertinente.
je ne pense pas qu'il y ait quoi que ce soit du côté du graphique de barre, mais vous pouvez probablement résoudre ce problème en utilisant les conteneurs init.
si dans vos graphiques il y a une base de données et utilisée par l'application et se planter, vous pouvez utiliser le conteneur init pour vérifier pour terminer le cycle de vie du pod.
Pour en savoir plus, vous pouvez vous référer à ceci: https://github.com/helm/helm/issues/171