2 votes

Outil pour déployer des ressources dans un cluster kubernetes

Nous disposons d'un ensemble assez vaste de fichiers de configuration yaml que nous utilisons pour définir les déploiements, les ensembles étatiques, les espaces de noms, les services, etc. ressources qui doivent être créées dans l'API kubernetes sur un cluster.

Nous avons expérimenté quelques outils comme terraform et ansible pour déployer le calcul sous-jacent et le cluster k8s, et ils fonctionnent bien pour appliquer la gestion de la configuration à ce niveau.

Ce que je n'ai pas trouvé, c'est un bon moyen d'automatiser intelligemment le déploiement et la mise à jour de ces ressources. Nous utilisons le contrôle de la source pour gérer les changements apportés à ces définitions de ressources et nous introduisons ces changements dans les clusters de test et de production à l'aide de la fonction kubectl apply -f .

Il s'agit souvent d'un changement simple, comme la mise à jour de la balise image d'un pod dans un déploiement. Dans ce cas, un simple patch de l'image image sur le déploiement est tout ce qui est nécessaire.

Pour certaines des ressources canoniques, j'ai joué un peu avec fournisseur de terraforme kubernetes . C'est plutôt cool car il est conscient des propriétés et peut faire des choses comme décider entre un démontage/reconstruction d'une entité et un simple patch.

Il est cependant moins bon dans sa vitesse de développement. Il est difficile de faire quoi que ce soit au-delà de la version vanilla k8s. Cela rend l'outil inutile pour les ressources personnalisées comme celles utilisées avec les opérateurs. Il existe des fournisseurs similaires qui appliqueront vos définitions yaml de k8s en envoyant un message à kubectl mais ils ne sont pas conscients des propriétés.

Toute indication sur les solutions serait appréciée avant que je ne commence à appliquer un peu de bash-fu.

2voto

Morten Points 678

Cela ressemble à un cas d'utilisation assez standard pour barre . D'une part, c'est un gestionnaire de paquets utile pour Kubernetes, d'autre part, mon équipe a eu beaucoup de succès en l'utilisant pour gérer les objets de l'API Kubernetes dans notre cluster. Vous voudrez mettre vos manifestes dans un ou plusieurs "Charts" et helm utilisera le Chart pour installer et/ou mettre à jour tous vos Deployments, ConfigMaps, etc. pour vous. Vous pouvez même spécifier différents fichiers de valeurs par environnement. Nous avons un values.prod.yaml, values.staging.yaml, etc. qui contient toutes nos configurations spécifiques à l'environnement, ainsi nous pouvons réutiliser les mêmes fichiers manifestes dans tous les environnements.

0 votes

Intéressant, Eric. J'avais l'intention d'essayer helm, cela semble être un bon choix. Merci pour le su

1 votes

I

0 votes

@'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X