Comment entrer en enfer à cause de Helm, mais attraper une paille

- Les hipsters fatigués disent la vérité.

Nous tous (c'est-à-dire, j'aime) faire glisser tout ce qui est nouveau et brillant dans la production afin de remplacer enfin certains problèmes par d'autres. Cette histoire nous est dédiée (c'est-à-dire à moi).

Pour comprendre et pardonner le reste du texte, vous aurez besoin d'une connaissance superficielle de la façon de travailler avec Kubernetes au niveau de l'utilisateur et de quelques rumeurs sur Helm .

Abstrayons d'abord, puis laissons quelqu'un traiter de cela. Imaginez un instant que nous sommes une sorte de Columbus dans le monde des smoothies, des scooters électriques et des Kubernetes. Nos gens se pressent dans la vieille femme surpeuplée d'Europe dans l'un de ses petits États sans fin, déployant quotidiennement des déploiements avec kronjob pour faire le plein de quadrocoptères. Mais les astronomes ont déjà trouvé une explication à la courbure suspecte de l'horizon. Et là, il y a le sentiment que nous sommes la Van Choisie de notre temps. (Mais personne ne l'a demandé.) Et quelque part là-bas, au-delà de l'océan semi-circulaire - le plus court chemin vers l'Inde! Des espaces ouverts sans fin, à l'abri du fardeau de la routine et de nombreuses épices parfumées gratuites. Vous avez juste besoin d'amener nos gens là-bas et, enfin, de les libérer! Répandre les océans devant nous est trop, même pour une telle magnificence que nous sommes. Par conséquent, vous devez construire des navires, emballer nos déploiements, kronjob et autres démons, augmenter les services plutôt que les voiles et vous diriger directement vers la lumière. Pour diriger, vous avez besoin d'un casque, c'est-à-dire d'un casque. C'est un casque. Un casque serait certainement utile, si nous savions à l'avance ce qui nous attend. Mais il n'y a qu'un casque. La construction de navires n'est pas facile, nous avons donc besoin d'aide, pour ainsi dire, mais nos gens sont toujours occupés à quelque chose de très inutile. Par conséquent, il est nécessaire, pour ainsi dire, et comme toujours. Nous commençons lentement, construisant un petit bateau, ramant en Inde, voyant les vastes étendues de nos propres yeux, prenant une épice, nageant en arrière, montrant aux gens. Les gens aiment ça, ils bénissent nos efforts. Ensuite, nous préparons un excellent résultat, mettons de l'ordre dans les configurations, construisons déjà de nombreux navires. Les gens sont en forme, intéressés. Nous montrons, racontons, éclairons, promettons, promettons, promettons ... Plus il y a de navires - plus il y a d'intérêt. Quelqu'un rejoint, aide. Pour que tout cela ne reste pas inactif, nous nageons dans la mise en scène à proximité, il n'y a pas encore d'épices, il est impossible d'y vivre, mais les touristes aiment ça. Et maintenant, après des semaines / mois / meilleures années / manches, lui, CE JOUR LE PLUS, est arrivé! Il est temps de libérer la flottille et de conquérir la précieuse terra incognita. Avec une appréhension dans l'âme, nos gens naviguent vers l'Inde, et là, en Amérique, nous sommes devenus fous. Et tout semble très similaire, mais c'est une intuition ... Nos gens en ont bien sûr immédiatement un avant-goût (haha, ils ne se soucient pas de toute façon, en fait), ils commencent à développer le territoire, des maisons là-bas, du chou, toutes sortes de services sont déployés. Mais ici et là, quelque chose disparaît périodiquement, comme à travers la terre. Ce plancher disparaîtra, la noix de coco ne donnera pas naissance. Et nous marmonnons avec un bourdonnement croissant " attendez, attendez, je ne suis pas encore prêt, donnez-moi seulement un jour ..." Et donc nous louchons soigneusement, et là, devant, derrière chaque buisson, les Indiens apparaissent soudain avec des tomahawks et ressemblent à ça ... méchamment ou quelque chose ... Et un frisson traverse le ganglion intérieur. Et les gens sont: - «Qu'est-ce que c'est là? Où est mon étage? " Et nous sommes: - «Mon peuple! Ce n'est pas que je vous ai induit en erreur pendant 40 ans, et personne ne vous enterrera, bien sûr, mais en ce moment, de toute urgence, *****, NOUS AVONS BESOIN DE CONSTRUIRE UNE FRÉQUENCE !!!!!! ” Et ils sont: - "Ah, bien sûr, comme toujours."

C'est à peu près ce que j'ai ressenti lorsque j'ai transféré un certain nombre de services en production de Kubernetes pur vers Helm, puis je suis tombé dessus .

Eh bien, au final, la paille salvatrice promise. Tout d'abord, la version allégée, mais avec une explication des absurdités ci-dessus. Voici un scénario de démonstration:

  1. Disons que j'élargis le graphique du projet: 1.5. Pour la première fois avec Helm, et avant cela, c'était juste Kubernetes.
  2. Ensuite, je découvre qu'il y a un bug dans la version, mais pas dans la version 1.4. Et nous devrions reculer, mais pour elle et Helm, il n'y avait pas non plus de tableau. Par conséquent, je décide de le faire à l'ancienne: kubectl set image deployment/project project=registry.project.com/project:1.4 --record . Pour cela et pour un ensemble d'autres services qui ont été déployés ensemble.
  3. Ensuite, il s'avère que le bug, pour ainsi dire, n'était pas dans ce service, mais dans celui voisin, et tout va bien avec cela et vous devez retourner 1.5. Maintenant, si vous appelez helm upgrade --install , alors il y aura une grosse surprise ( plus de détails ): l'image sera toujours de 1.4, et les étiquettes - de 1.5. Et Helm montre que tout va bien, il y a en fait 1,5 déployé et même les pods ont été redémarrés (la construction CI est verte).

Comment éviter cela? Si vous apportez des modifications à une ressource K8 contrôlée par Helm avec des commandes kubectl pures au-dessus du graphique Helm déployé, vous devez également annuler ces modifications avec les commandes kubectl. Helm peut déployer un nouveau graphique. Mais il compare le nouveau graphique avec le précédent, mais pas avec l'état actuel des ressources. Et si vous avez modifié l'image, la future version de Chart contiendra probablement une autre image et tout ira bien. Mais si vous avez modifié une variable d'environnement, ou commencé des arguments, ou autre chose, la nouvelle version de Chart ne diffère probablement pas de la précédente. Et vos modifications manuelles resteront en place après la mise à jour.

Et pour commencer, une version lourde de la paille qui sauve pour ceux qui ne peuvent pas être d'accord avec une telle imprévisibilité de l'État.

Les nouvelles technologies sont à l'origine de nouvelles peines.

Source: https://habr.com/ru/post/fr426243/


All Articles