Kubernetes prendra le contrĂŽle du monde. Quand et comment?

En prĂ©vision de DevOpsConf, Vitaliy Khabarov a interviewĂ© Dmitry Stolyarov ( distol ), directeur technique et co-fondateur de Flant. Vitaly a demandĂ© Ă  Dmitry ce que faisait Flant, Kubernetes, le dĂ©veloppement de l'Ă©cosystĂšme, le soutien. Nous avons discutĂ© de la raison pour laquelle Kubernetes est nĂ©cessaire et s'il est nĂ©cessaire. Et aussi sur les microservices, Amazon AWS, l'approche «I'm Lucky» dans DevOps, l'avenir de Kubernetes lui-mĂȘme, pourquoi, quand et comment il prendra le contrĂŽle du monde, les perspectives de DevOps et ce que les ingĂ©nieurs devraient prĂ©parer dans un avenir brillant et proche avec la simplification et les rĂ©seaux de neurones.

Écoutez l' interview originale sous forme de podcast sur DevOps Deflop, un podcast en russe sur DevOps, et ci-dessous est une version texte.



Ci-aprÚs, Vitaliy Khabarov est interrogé par un ingénieur d'Express42.

À propos de Flant


- Dima, salut. Vous ĂȘtes le directeur technique de Flant et Ă©galement son fondateur. Dites-moi, je vous prie, que fait l'entreprise et y ĂȘtes-vous?

Dmitry Stolyarov Dmitry : De l'extĂ©rieur, on dirait que nous sommes les gars qui partent, mettent Kubernetes sur tout le monde et font quelque chose avec lui. Mais ce n'est pas le cas. Nous avons commencĂ© comme une entreprise qui s'occupe de Linux, mais pendant trĂšs longtemps, notre activitĂ© principale Ă©tait de servir des projets de production et de charge clĂ© en main. Habituellement, nous construisons toute l'infrastructure Ă  partir de zĂ©ro, puis nous en sommes responsables pendant longtemps. Par consĂ©quent, le principal travail que Flant effectue, pour lequel il reçoit de l'argent, est de prendre la responsabilitĂ© et la mise en Ɠuvre clĂ© en main de la production .


En tant que directeur technique et l'un des fondateurs de l'entreprise, je travaille sans relùche pour réfléchir à des moyens d'augmenter la disponibilité de la production, de simplifier son fonctionnement, de faciliter la vie des administrateurs et de rendre la vie plus agréable pour les développeurs.

À propos de Kubernetes


- La derniĂšre fois de "Flanta", je vois beaucoup de rapports et d' articles sur Kubernetes. Comment ĂȘtes-vous venu vers lui?

Dmitry : J'en ai déjà parlé plusieurs fois, mais je ne regrette pas du tout de le répéter. Je pense qu'il est correct de répéter ce sujet, car il y a confusion entre cause et effet.

Nous avions vraiment besoin d'un outil. Nous avons Ă©tĂ© confrontĂ©s Ă  de nombreux problĂšmes, avons luttĂ©, les avons surmontĂ©s avec diffĂ©rentes bĂ©quilles et avons ressenti le besoin d'un instrument. PassĂ© en revue de nombreuses options diffĂ©rentes, construit leurs vĂ©los, acquis de l'expĂ©rience. Progressivement, nous sommes arrivĂ©s au point oĂč nous avons commencĂ© Ă  utiliser Docker presque dĂšs son apparition - vers 2013. Au moment de son apparition, nous avions dĂ©jĂ  beaucoup d'expĂ©rience avec les conteneurs, nous avions dĂ©jĂ  Ă©crit un analogue de «Docker» - certaines de nos bĂ©quilles en Python. Avec l'avĂšnement de Docker, les bĂ©quilles peuvent ĂȘtre jetĂ©es et utilisĂ©es par une solution fiable et prise en charge par la communautĂ©.

Avec Kubernetes, l'histoire est similaire. Au moment oĂč il a commencĂ© Ă  prendre de l'ampleur - pour nous, c'est la version 1.2 - nous avions dĂ©jĂ  un tas de bĂ©quilles sur Shell et Chef, que nous avons en quelque sorte essayĂ© d'orchestrer Docker. Nous avons sĂ©rieusement envisagĂ© Rancher et diverses autres solutions, mais Kubernetes est alors apparu, dans lequel tout est mis en Ɠuvre exactement comme nous le ferions ou mĂȘme mieux. Il n'y a rien Ă  redire.

Oui, il y a une sorte d'imperfection, il y a une sorte d'imperfection - il y a beaucoup d'imperfections, et 1.2 est généralement horrible, mais ... Kubernetes est comme un bùtiment en construction - vous regardez le projet et comprenez qu'il sera cool. Si le bùtiment a maintenant une fondation et deux étages, alors vous comprenez qu'il vaut mieux ne pas encore peupler, mais il n'y a pas de tels problÚmes avec le logiciel - vous pouvez déjà l'utiliser.

Nous n'avons pas eu le moment oĂč nous pensions utiliser Kubernetes ou non. Nous l'attendions bien avant qu'il n'apparaisse, et nous avons essayĂ© de faire nous-mĂȘmes des analogues.

PrĂšs de Kubernetes


- Participez-vous directement au dĂ©veloppement de Kubernetes lui-mĂȘme?

Dmitry : MĂ©diocre. Nous sommes plus susceptibles de participer au dĂ©veloppement de l'Ă©cosystĂšme. Nous envoyons un certain nombre de demandes de pull: Ă  PromĂ©thĂ©e, Ă  toutes sortes d'opĂ©rateurs, Ă  Helm Ă  l'Ă©cosystĂšme. Malheureusement, je ne suis pas en mesure de suivre tout ce que nous faisons et je peux me tromper, mais il n'y a pas un seul pool de notre cƓur.

- Développez-vous beaucoup de vos outils autour de Kubernetes?

Dmitry : La stratĂ©gie est la suivante: nous allons tirer et tirer dans tout ce qui existe dĂ©jĂ . Si les demandes de tirage ne sont pas acceptĂ©es lĂ -bas, nous les fourchons simplement pour nous-mĂȘmes et vivons jusqu'Ă  ce qu'elles soient acceptĂ©es avec nos versions. Puis, quand il atteint l'amont, nous revenons Ă  la version amont.

Par exemple, nous avons probablement dĂ©jĂ  un opĂ©rateur Prometheus avec lequel nous sommes passĂ©s 5 fois en amont et en aval de notre assemblage. Nous avons besoin d'une fonctionnalitĂ©, nous avons envoyĂ© une demande de tirage, nous devons la dĂ©ployer demain et nous ne voulons pas attendre qu'elle soit publiĂ©e en amont. En consĂ©quence, nous collectons pour nous-mĂȘmes, roulons notre assemblage avec notre fonctionnalitĂ©, dont nous avons besoin pour une raison quelconque, Ă  tous nos clusters. Ensuite, par exemple, ils nous enveloppent en amont avec les mots: «Les gars, faisons-le pour un cas plus gĂ©nĂ©ral», nous, ou quelqu'un d'autre, finirons cela, et finalement fusionnerons Ă  nouveau.

Tout ce qui existe, nous essayons de le dĂ©velopper . De nombreux Ă©lĂ©ments qui ne sont pas encore lĂ  n'ont pas encore Ă©tĂ© inventĂ©s ou ont Ă©tĂ© inventĂ©s, mais n'ont pas encore Ă©tĂ© mis en Ɠuvre - nous le faisons. Et pas parce que nous aimons le processus lui-mĂȘme ou la construction de vĂ©los en tant qu'industrie, mais simplement parce que nous avons besoin de cet outil. Ils posent souvent la question, pourquoi avons-nous fait telle ou telle chose? La rĂ©ponse est simple - parce que nous devions aller plus loin, rĂ©soudre un problĂšme pratique et nous l'avons rĂ©solu avec cet outil.

Le chemin est toujours le suivant: nous regardons trĂšs attentivement et, si nous ne trouvons aucune solution, comment faire un trolleybus Ă  partir d'une miche de pain, alors nous faisons notre propre pain et notre propre trolleybus.

Outils Flant


«Je sais que Flant a maintenant des opĂ©rateurs d'addon, des opĂ©rateurs de shell, des outils dapp / werf. Si je comprends bien, c'est le mĂȘme outil dans diffĂ©rentes incarnations. Je comprends Ă©galement qu'il existe de nombreux autres outils dans Flant. En est-il ainsi?

Dmitry : Nous avons encore beaucoup de choses sur GitHub. D'aprÚs ce dont je me souviens maintenant, nous avons une carte de statut - un panneau pour Grafana qui est allé à tout le monde. Il est mentionné dans presque tous les deux articles sur la surveillance de Kubernetes sur le support. Il est impossible de décrire briÚvement ce qu'est une carte d'état - vous avez besoin d'un article séparé, mais c'est une chose trÚs utile pour surveiller l'état au fil du temps, car dans Kubernetes, nous devons souvent afficher l'état au fil du temps. Nous avons également LogHouse - c'est un ClickHouse et une piÚce à base de magie noire pour collecter des journaux dans Kubernetes.

De nombreux utilitaires! Et il y en aura encore plus, car un certain nombre de solutions internes seront publiées cette année. Parmi les trÚs grands opérateurs basés sur des addons, il y a un tas d'addons à Kubernetes, mais comment installer le gestionnaire de sert - un outil de gestion de certificat, comment installer Prometheus avec un tas d'esquives - ce sont vingt binaires différents qui exportent des données et collectent quelque chose, pour cela Prométhée est des graphiques et des alertes impressionnants. Tout cela n'est qu'un tas d'addons à Kubernetes qui sont placés dans un cluster, et cela passe de simple à cool, sophistiqué, automatique, dans lequel de nombreux problÚmes ont déjà été résolus. Oui, nous faisons beaucoup.

Développement de l'écosystÚme


- Il me semble que c'est une trĂšs grande contribution au dĂ©veloppement de cet outil et de ses modes d'utilisation. Pouvez-vous approximativement savoir qui d'autre apporterait la mĂȘme contribution au dĂ©veloppement de l'Ă©cosystĂšme?

Dmitry : En Russie, aucune de ces sociĂ©tĂ©s qui opĂšrent sur notre marchĂ© n'est proche . Bien sĂ»r, il s'agit d'une dĂ©claration trĂšs mĂ©diatisĂ©e, car il existe de grands acteurs comme Mail with Yandex - ils font aussi quelque chose avec Kubernetes, mais mĂȘme ils n'ont pas Ă©galĂ© la contribution des entreprises dans le monde, qui font beaucoup plus que nous. Il est difficile de comparer Flant avec un effectif de 80 personnes et Red Hat, dans lequel il n'y a que 300 ingĂ©nieurs Kubernetes, si je ne me trompe pas. C'est difficile Ă  comparer. Nous avons 6 personnes au dĂ©partement RnD, dont moi, qui scions tous nos outils. 6 personnes contre 300 ingĂ©nieurs Red Hat - c'est en quelque sorte difficile Ă  comparer.

- NĂ©anmoins, quand mĂȘme ces 6 personnes peuvent faire quelque chose de vraiment utile et aliĂ©nĂ©, quand elles sont confrontĂ©es Ă  une tĂąche pratique et donnent une dĂ©cision Ă  la communautĂ© - un cas intĂ©ressant. Je comprends que dans les grandes entreprises technologiques, oĂč elles ont leur propre dĂ©veloppement et leur Ă©quipe d'assistance Kubernetes, en principe, les mĂȘmes outils peuvent ĂȘtre dĂ©veloppĂ©s. C'est un exemple pour eux qui peut ĂȘtre dĂ©veloppĂ© et donnĂ© Ă  la communautĂ©, pour donner une impulsion Ă  toute la communautĂ© qui utilise Kubernetes.

Dmitry : Il s'agit probablement d'une puce intégratrice, sa caractéristique. Nous avons de nombreux projets et nous voyons de nombreuses situations différentes. Pour nous, le principal moyen de créer de la valeur ajoutée est d'analyser ces cas, de trouver les plus courants et de les rendre aussi bon marché que possible pour nous. Nous le faisons activement. C'est difficile pour moi de parler de la Russie et du monde, mais nous avons environ 40 ingénieurs DevOps chez Kubernetes. Je ne pense pas qu'en Russie, il existe de nombreuses entreprises avec un nombre comparable de spécialistes qui comprennent Kubernetes, le cas échéant.

Je comprends tout sur le titre du poste d'ingĂ©nieur DevOps, tout le monde comprend tout et a l'habitude d'appeler des ingĂ©nieurs DevOps ingĂ©nieurs DevOps, nous n'en discuterons pas. Tous ces 40 merveilleux ingĂ©nieurs DevOps font face Ă  des problĂšmes chaque jour et les rĂ©solvent, nous analysons simplement cette expĂ©rience et essayons de rĂ©sumer. Nous comprenons que s'il reste avec nous, alors dans un an ou deux, l'outil sera inutile, car quelque part dans la communautĂ©, un outil prĂȘt Ă  l'emploi apparaĂźtra. Cela n'a aucun sens d'accumuler cette expĂ©rience Ă  l'intĂ©rieur - c'est juste un drain de temps et d'Ă©nergie en dev / null. Et donc nous ne sommes pas du tout dĂ©solĂ©s. C'est avec grand plaisir que nous publions tout et comprenons qu'il est nĂ©cessaire de le publier, de le dĂ©velopper, de le promouvoir, de le promouvoir afin que les gens utilisent et ajoutent leur expĂ©rience - alors tout grandit et vit. Puis, aprĂšs deux ans, l'outil ne passe pas Ă  la poubelle. Ce n'est pas dommage de continuer Ă  verser de l'Ă©nergie, car il est clair que quelqu'un utilise votre outil, et aprĂšs deux ans tout le monde l'utilise.

Cela fait partie de notre grande stratĂ©gie avec dapp / werf . Je ne me souviens pas quand nous avons commencĂ© Ă  le faire, semble-t-il, il y a environ 3 ans. Au dĂ©part, c'Ă©tait gĂ©nĂ©ralement sur la coquille. C'Ă©tait une super preuve de concept, nous avons rĂ©solu certaines de nos tĂąches privĂ©es - il s'est avĂ©rĂ©! Mais il y a des problĂšmes avec le shell, il est impossible de le construire davantage, la programmation sur le shell est autre chose. Nous avions l'habitude d'Ă©crire en Ruby, respectivement, en Ruby, nous avons refait quelque chose, dĂ©veloppĂ©, dĂ©veloppĂ©, dĂ©veloppĂ© et reposĂ© sur le fait que la communautĂ©, une foule qui ne dit pas "nous voulons ou ne voulons pas", tourne le nez de Ruby, ce n'est pas drĂŽle. Nous avons rĂ©alisĂ© que nous devrions Ă©crire tout cela sur Go, juste pour correspondre au premier paragraphe de la liste de contrĂŽle: DevOps-tool devrait ĂȘtre un binaire statique . On Go ou pas Go n'est pas si important, mais un binaire statique Ă©crit en Go est mieux.

A déployé des efforts, réécrit dapp sur Go et l'a nommé werf. Dapp n'est plus pris en charge, ne se développe pas, il fonctionne dans une derniÚre version, mais il existe un chemin de mise à niveau absolu vers le haut, et vous pouvez le suivre.

Pourquoi Dapp a-t-il été créé?


- Pouvez-vous nous expliquer briÚvement pourquoi dapp a été créé, quels problÚmes cela résout-il?

Dmitry : La premiĂšre raison de l'assemblage. Au dĂ©part, nous avons eu de gros problĂšmes de construction lorsque Docker ne savait pas comment effectuer plusieurs Ă©tapes, et nous l'avons fait nous-mĂȘmes. Ensuite, nous avons eu un tas de questions avec l'image de nettoyage. Quiconque fait du CI / CD, tĂŽt ou tard, est confrontĂ© au problĂšme qu'il y a un tas d'images collectĂ©es, vous devez en quelque sorte nettoyer ce qui n'est pas nĂ©cessaire et laisser ce qui est nĂ©cessaire.

La deuxiÚme raison réside dans le déploiement. Oui, il y a Helm, mais cela ne résout qu'une partie des problÚmes. Ironiquement, il est écrit que "Helm - le gestionnaire de paquets pour Kubernetes". A savoir que "le". Il y a aussi les mots «Gestionnaire de packages» - quelle est l'attente habituelle du Gestionnaire de packages? Nous disons: "Gestionnaire de paquets - livrez le colis!" et attendez-lui à ce qu'il nous dise: "Le colis a été livré."

Il est intéressant que nous disions: "Helm, mettez le paquet", et quand il répond qu'il l'a installé, il s'avÚre qu'il vient de commencer l'installation - Kubernetes a souligné: "Exécutez cette chose!", Que cela ait commencé ou non, que cela fonctionne ou non Helm ne résout pas du tout ce problÚme.

Il s'avÚre que Helm n'est qu'un préprocesseur de texte qui charge des données dans Kubernetes.

Mais nous voulons savoir dans le cadre de tout déploiement - l'application a-t-elle été déployée ou non? Le déploiement vers le prod signifie que l'application y est allée, une nouvelle version s'est déployée, et au moins elle ne s'est pas plantée et répond correctement. Helm ne résout pas ce problÚme. Pour le résoudre, vous devez dépenser beaucoup d'énergie, car vous devez donner à Kubernetes la commande de déployer et de surveiller ce qui s'y passe - s'il s'est retourné, s'il s'est déroulé. Et il y a aussi un tas de tùches liées au déploiement, au nettoyage et à l'assemblage.

Plans


Cette année, nous irons au développement local. Nous voulons arriver à ce qui était auparavant dans Vagrant - nous avons tapé «vagrant up» et nous avons déployé des machines virtuelles. Nous voulons arriver à un tel état qu'il existe un projet dans Git, nous y écrivons «werf up» et il génÚre une copie locale de ce projet, déployée dans un mini-Kub local, avec tous les répertoires pratiques pour le développement connectés. Selon le langage de développement, cela se fait de différentes maniÚres, mais néanmoins pour qu'il soit commode d'effectuer le développement local sous les fichiers montés.

La prochaine Ă©tape pour nous est d' investir massivement dans la commoditĂ© pour les dĂ©veloppeurs . Afin de dĂ©ployer rapidement un projet localement, avec un seul outil, pour terminer, poussez dans Git, et il sera Ă©galement dĂ©ployĂ© sur scĂšne ou tests, selon les pipelines, puis accĂ©dez au prod avec le mĂȘme outil. Cette unitĂ©, l'unification, la reproductibilitĂ© de l'infrastructure de l'environnement local Ă  la vente est un moment trĂšs important pour nous. Mais ce n'est pas encore dans werf - il suffit de planifier pour le faire.

Mais le chemin vers dapp / werf a toujours Ă©tĂ© le mĂȘme qu'avec Kubernetes au dĂ©but. Nous avons rencontrĂ© des problĂšmes, les avons rĂ©solus par des solutions de contournement - nous avons trouvĂ© une sorte de solution pour nous-mĂȘmes sur le shell, sur n'importe quoi. Ensuite, ces solutions de contournement ont tentĂ© en quelque sorte de redresser, de gĂ©nĂ©raliser et de consolider les fichiers binaires dans ce cas, que nous partageons simplement.

Il y a une autre vision de toute cette histoire, avec des analogies.

Kubernetes est un chĂąssis de voiture avec un moteur. Il n'y a pas de portes, de fenĂȘtres, de radio, d'arbres de NoĂ«l - rien du tout. Seul le cadre et le moteur. Et il y a Helm - c'est le volant. Cool - il y a un volant, mais il faut toujours un axe de direction, une crĂ©maillĂšre de direction, une boĂźte de vitesses et des roues, mais sans eux rien.

Dans le cas de werf, c'est un autre composant de Kubernetes. Ce n'est que maintenant dans notre version alpha de werf, par exemple, que Helm se compile en werf, car nous sommes fatiguĂ©s de le faire nous-mĂȘmes. Il y a de nombreuses raisons de le faire, en dĂ©tail sur la raison pour laquelle nous avons compilĂ© Helm dans son ensemble avec tiller inside werf, je le dirai juste dans le rapport sur RIT ++ .

Maintenant, werf est un composant plus intĂ©grĂ©. Nous obtenons un volant prĂȘt Ă  l'emploi, un axe de direction - je ne suis pas trĂšs bon dans les voitures, mais c'est un gros bloc qui rĂ©sout dĂ©jĂ  un Ă©ventail assez large de tĂąches. Nous n'avons pas besoin de grimper le catalogue nous-mĂȘmes, de ramasser une partie Ă  l'autre, de rĂ©flĂ©chir Ă  la façon de les fixer les uns aux autres. Nous obtenons une moissonneuse-batteuse prĂȘte Ă  l'emploi qui rĂ©sout immĂ©diatement un large Ă©ventail de tĂąches. Mais Ă  l'intĂ©rieur, il est composĂ© de tous les mĂȘmes composants open source, il utilise Ă©galement Docker pour l'assemblage, Helm pour une partie de la fonctionnalitĂ© et il existe plusieurs autres bibliothĂšques. Il s'agit d'un outil intĂ©grĂ© pour sortir rapidement et commodĂ©ment des CI / CD sympas de la boĂźte.

Kubernetes est-il difficile Ă  entretenir?


- Vous parlez de l'expérience que vous avez commencé à utiliser Kubernetes, c'est un cadre, un moteur pour vous, et que vous pouvez y accrocher beaucoup de choses différentes: corps, volant, attachez les pédales, les siÚges. La question est: dans quelle mesure le support Kubernetes est-il difficile pour vous? Vous avez une riche expérience, combien de temps et de ressources vous faut-il pour prendre en charge Kubernetes séparément de tout le reste?

Dmitry : C'est une question trĂšs difficile et pour y rĂ©pondre, vous devez comprendre ce qu'est le support et ce que nous attendons de Kubernetes. Peut-ĂȘtre rĂ©vĂ©lerez-vous?

- Pour autant que je sache et comme je le vois, maintenant de nombreuses équipes veulent essayer Kubernetes. Tout le monde attelé à lui, mis à genoux. J'ai le sentiment que les gens ne comprennent pas toujours la complexité de ce systÚme.

Dmitry : C'est ça.

- Est-il difficile de prendre et de livrer Kubernetes sans rien pour le préparer à la production?

Dmitry : Pensez-vous combien il est difficile de transplanter un cƓur? Je comprends, la question est compromettante. Porter avec un scalpel et ne pas se tromper n'est pas si difficile. Si l'on vous dit oĂč couper et oĂč coudre, la procĂ©dure elle-mĂȘme est simple. Il est difficile de garantir de temps en temps que tout se passera bien.

Mettez Kubernetes et faites-le fonctionner simplement: chick! - livré, il existe un tas de méthodes d'installation. Mais que se passe-t-il lorsque des problÚmes surviennent?

Des questions se posent toujours - que n'avons-nous pas encore pris en compte? Qu'avons-nous pas encore fait? Quels paramĂštres du noyau Linux avez-vous mal spĂ©cifiĂ©s? Seigneur, les avons-nous mĂȘme signalĂ©s?! Quels composants Kubernetes avons-nous livrĂ©s et lesquels ne le sont pas? Des milliers de questions se posent et pour y rĂ©pondre, vous devez cuisiner pendant 15 Ă  20 ans dans cette industrie.

J'ai un nouvel exemple sur ce sujet qui peut rĂ©vĂ©ler la signification du problĂšme «Est-il difficile de maintenir Kubernetes?». Il y a quelque temps, nous nous sommes sĂ©rieusement demandĂ© si nous devions essayer de mettre en Ɠuvre Cilium en tant que rĂ©seau dans Kubernetes.

Permettez-moi d'expliquer ce qu'est Cilium. Kubernetes a de nombreuses implémentations différentes du sous-systÚme réseau, et l'une d'entre elles est trÚs cool - c'est Cilium. Quelle est sa signification? Il y a quelque temps, dans le noyau, il est devenu possible d'écrire des points d'ancrage pour le noyau qui envahissent le sous-systÚme réseau et divers autres sous-systÚmes et vous permettent de contourner de gros morceaux dans le noyau.

Historiquement, le noyau Linux a une routage ip, un superfiltre, des ponts et de nombreux anciens composants différents qui ont 15, 20, 30 ans. En général, ils fonctionnent, tout est cool, mais maintenant ils ont fait un conteneur de conteneurs, et cela ressemble à une tour de 15 briques les unes sur les autres, et vous vous tenez dessus sur une jambe - une sensation étrange. Ce systÚme s'est développé historiquement avec de nombreuses nuances, comme une annexe dans le corps. Dans certaines situations, il y a des problÚmes de performances, par exemple.

Il y a un BPF merveilleux et la possibilitĂ© d'Ă©crire des crochets pour le noyau - les gars ont Ă©crit leurs crochets pour le noyau. Le paquet arrive au noyau Linux, ils le sortent directement Ă  l'entrĂ©e, le traitent eux-mĂȘmes sans ponts, sans TCP, sans la pile IP - en bref, contournant tout ce qui est Ă©crit dans le noyau Linux, et le recrachent immĂ©diatement dans le conteneur.

Que s'est-il passé? Performance trÚs cool, fonctionnalités intéressantes - tout simplement génial! Mais nous regardons cela et voyons que sur chaque machine il y a un programme qui se connecte à l'API Kubernetes et, selon les données reçues de cette API, génÚre du code C et compile les binaires qu'il charge dans le noyau afin que ces crochets fonctionnent dans l'espace du noyau .

Que se passe-t-il en cas de problĂšme? Nous ne le savons pas. Pour comprendre cela, vous devez lire tout ce code, comprendre toute la logique, et cela est stupĂ©fait, combien difficile. Mais, d'un autre cĂŽtĂ©, il y a ces ponts, filtres de rĂ©seau, rout ip - je n'ai pas lu leurs sources, et 40 ingĂ©nieurs qui travaillent aussi dans notre entreprise. Peut-ĂȘtre que certaines piĂšces comprennent les unitĂ©s.

Et quelle est la différence? Il s'avÚre qu'il existe une déroute ip, le noyau Linux et un nouvel outil - quelle est la différence, nous ne comprenons ni l'un ni l'autre. Mais nous avons peur d'utiliser le nouveau - pourquoi? Parce que si l'outil a 30 ans, alors plus de 30 ans tous les bugs ont été trouvés, tous les rùteaux sont venus et vous n'avez pas besoin de tout savoir - cela fonctionne comme une boßte noire, et ça marche toujours. Tout le monde sait quel tournevis de diagnostic coller à quel endroit, quel tcpdump à quel moment commencer. Tout le monde connaßt bien les utilitaires de diagnostic et comprend comment cet ensemble de composants fonctionne dans le noyau Linux - pas comment il fonctionne, mais comment l'utiliser.

Et Cilium incroyablement cool n'a pas 30 ans, il n'est pas encore mature. Avec Kubernetes le mĂȘme problĂšme, copiez. Que Cilium est parfaitement rĂ©glĂ©, que Kubernetes est parfaitement rĂ©glĂ©, mais quand quelque chose ne va pas dans la prod, ĂȘtes-vous capable de comprendre rapidement ce qui ne va pas dans une situation critique?

Quand on dit que c'est difficile de maintenir Kubernetes, non, c'est trĂšs simple, et oui, c'est incroyablement difficile. Kubernetes , .

« »


— , ? , Kubernetes, - .

: , , . , Kubernetes, . , ? , , , . , — , . Kubernetes.

Ubuntu 16.04. , , , LTS. systemd, , C-. Kubernetes , C-, , - — , , — systemd. , . highload. , , Cron Job, , Ubuntu 16.04 . load average - , C-. , , Ubuntu 16 Kubernetes.

, - systemd - , Linux 4.16 — C- . . , , 15 , C-, , — .

. , - — , . — Kubernetes, — . . , - - , , , . , Kubernetes — ?

, , , . , .

, , , , . .

IT, , « ». , , . , . .

— : , , «», , Red Hat, , Kubernetes, .

: . Kubernetes — .

?


— , Kubernetes ?

: , , -. : «Kubernetes, Kubernetes», . , , , 70% Kubernetes. .

— ? «» , Kubernetes — -.

, Kubernetes .

game-changer . — , Ansible, Chef, , Terraform. . Kubernetes — changer , .

, - , - , . , , Kubernetes : , infrastructure as code , , yml — . , .

— , Kubernetes, . ?

: . , dns-, FreeBSD 4.10 20 . . , 20 - . , - , , , , Kubernetes. .

, CI/CD — , Continuous Delivery, , , , — Kubernetes.


— . Kubernetes, — . — - , , , Kubernetes , . — Kubernetes - , Kubernetes?

: . «: ». , . , . , , . «». , , - , — , , . Ce n'est pas le cas.

, , 300 , , , , , - — 10, 30 . , . , 3 60 , .

, — . , . , , .

, , , , Kubernetes , , , , , , Kubernetes, . — , , , . . — , , — .

— , Kubernetes , , , . . — , , , 10 — , . . , .

Kubernetes . : Kubernetes, , 4-5 , — . , . Qu'est ce que c'est Ubuntu Curios? Linux, . , . Kubernetes , , , , .

, , — «», 150 DevOps easy service. — . , DevOps, , . , . , , . , . , Kubernetes.

, 10 , . .

Amazon Google


— Amazon Google?

: , , . . , . , Amazon AWS: Load Balancer , «, , Load Balancer!» .

, , . 40 , , , 60 — . - , , .

, — , hosted- - . , , . Amazon Google . — . . clouds, , — Ager, , , OpenStack : Headster, Overage — , . , .

, — , , , hosted- .

Kubernetes?


— - Kubernetes? Kubernetes, «», Kubernetes?

: , Kubernetes : «, , Kubernetes, !». : «, Kubernetes, , ». , CI/CD , . , , .

, , , — ! — Kubernetes . . , , — Kubernetes , ! — ! — , ! — 100% uptime, 50 , . , !

, : «, ». , . , . CI/CD, . , .

, Kubernetes — Kubernetes .

, Kubernetes. , , , . , . Kubernetes — , , « », « », - .

. : , , — . . , , , , . , .

, - Kubernetes — .

Kubernetes , , , . — . - , — . - , , , , . . , DevOps , - , - . - .

. : «, !» — , : « , ». . , , - , , .

: Kubernetes. .

, :

  • ;
  • , , - ;
  • , , , .

: / . , - IT-, , - — soft for easing the world, , . Kubernetes , .

À propos de sans serveur


- Si vous regardez un peu plus loin dans l'avenir, puis essayez de rĂ©soudre le problĂšme du manque de maux de tĂȘte avec l'infrastructure, avec la vitesse de dĂ©ploiement et la vitesse de changement d'application, de nouvelles solutions apparaissent, par exemple, sans serveur. Sentez-vous un potentiel dans cette direction et, disons-le, un danger pour Kubernetes et des solutions similaires?

Dmitry : Ici, nous devons Ă  nouveau faire une remarque, que je ne suis pas un visionnaire qui regarde vers l'avenir et dit - ce sera comme ça! MĂȘme si je viens de faire la mĂȘme chose. Je regarde mes pieds et j'y vois un tas de problĂšmes, par exemple, comment fonctionnent les transistors dans un ordinateur. C'est drĂŽle, hein? Nous rencontrons quelques bugs dans le CPU.

Rendre sans serveur suffisamment fiable, bon marchĂ©, efficace et pratique, en rĂ©solvant tous les problĂšmes d'Ă©cosystĂšme Ensuite, je suis d'accord avec Elon Mask que nous avons besoin d'une deuxiĂšme planĂšte pour faire de la tolĂ©rance aux fautes pour l'humanitĂ©. Bien que je ne sache pas ce qu'il dit, je comprends que je ne suis pas prĂȘt Ă  voler vers Mars moi-mĂȘme et ce ne sera pas demain.

Avec sans serveur, il est clair que c'est la chose idĂ©ologiquement correcte, comme tolĂ©rance aux fautes pour l'humanitĂ© - deux planĂštes valent mieux qu'une. Mais comment faire maintenant? Envoyer une expĂ©dition n'est pas un problĂšme si nous nous concentrons sur cet effort. Envoyer plusieurs expĂ©ditions et y peupler plusieurs milliers de personnes est, je pense, aussi rĂ©aliste. Mais c’est complĂštement pour faire de la tolĂ©rance aux fautes que la moitiĂ© de l’humanitĂ© y vit, il me semble dĂ©sormais impossible, non envisagĂ©.

Avec un Ă  un sans serveur: la chose est cool, mais c'est loin des problĂšmes de 2019. Plus prĂšs de 2030 - vivons pour le voir. Je ne doute pas que nous survivrons, nous survivrons certainement (rĂ©pĂ©tez avant le coucher), mais maintenant nous devons rĂ©soudre d'autres problĂšmes. C'est comme croire en un fabuleux poney Rainbow. Oui, quelques pour cent des cas sont rĂ©solus et parfaitement rĂ©solus, mais subjectivement sans serveur est un arc-en-ciel ... Pour moi, ce sujet est trop loin et trop incomprĂ©hensible. Je ne suis pas prĂȘt Ă  parler. En 2019, sans serveur, vous n'Ă©crirez pas une seule application.

Comment Kubernetes se développera


"Alors que nous nous dirigeons vers cet avenir potentiellement magnifique et lointain, que pensez-vous qui développera Kubernetes et l'écosystÚme qui l'entoure?"

Dmitry : J'y ai beaucoup rĂ©flĂ©chi et j'ai une rĂ©ponse claire. Le premier est d'État - encore apatride est plus facile Ă  faire. Kubernetes a d'abord investi davantage, tout a commencĂ© avec. Les apatrides fonctionnent presque parfaitement Ă  Kubernetes, il n'y a rien Ă  redire. Par Ă©tat, il y a encore beaucoup de problĂšmes, ou plutĂŽt de nuances. Tout fonctionne dĂ©jĂ  bien pour nous lĂ -bas, mais nous le sommes. Pour que cela fonctionne pour tout le monde, vous avez besoin d'au moins quelques annĂ©es de plus. Ce n'est pas un indicateur calculĂ©, mais mon sentiment de la tĂȘte.

En bref, Statefull doit - et va - se développer beaucoup, car toutes nos applications ont un statut, il n'y a pas d'applications sans état. C'est une illusion, vous avez toujours besoin d'une sorte de base de données et d'autre chose. Statefull est la rectification de tout ce qui est possible, la correction de tous les bugs, l'amélioration de tous les problÚmes auxquels nous sommes actuellement confrontés - appelons cela l'adoption.

Le niveau de l'inconnu, le niveau des problĂšmes non rĂ©solus, le niveau de probabilitĂ© de rencontrer quelque chose, chutera fortement. Ceci est une histoire importante. Et les opĂ©rateurs - tout ce qui concerne la codification de la logique d'administration, la logique de contrĂŽle, pour obtenir un service facile: MySQL easy service, RabbitMQ easy service, Memcache easy service - en gĂ©nĂ©ral, tous ces composants dont nous avons besoin pour ĂȘtre sĂ»rs de fonctionner prĂȘts Ă  l'emploi. Cela rĂ©sout simplement la douleur que nous voulons une base de donnĂ©es, mais que nous ne voulons pas l’administrer ou que nous voulons Kubernetes, mais que nous ne voulons pas l’administrer.

Cette histoire avec le développement des opérateurs sous une forme ou une autre sera importante dans les prochaines années.

Je pense que la facilité d'utilisation devrait considérablement augmenter - la box deviendra de plus en plus noire, de plus en plus fiable, avec des torsions de plus en plus simples.

J’ai une fois Ă©coutĂ© l’ancienne interview d’Isaac Asimov des annĂ©es 80 sur YouTube dans Saturday Night Live, une Ă©mission de type Urgant qui est juste intĂ©ressante. On lui a posĂ© des questions sur l'avenir des ordinateurs. Il a dit que l'avenir est simple, comme ce fut le cas avec la radio. La radio Ă©tait Ă  l'origine une chose compliquĂ©e. Pour attraper la vague, il a fallu 15 minutes pour faire tourner les tourbillons, faire tourner les brochettes et savoir gĂ©nĂ©ralement comment tout fonctionne, pour comprendre la physique de la transmission des ondes radio. En consĂ©quence, une torsion est restĂ©e Ă  la radio.

Maintenant en 2019, quelle radio? Dans la voiture, la radio retrouve toutes les ondes, le nom des stations. La physique du processus n'a pas changé depuis 100 ans, la facilité d'utilisation a changé. Maintenant, et pas seulement maintenant, déjà en 1980, quand il y a eu une interview avec Azimov, tout le monde a utilisé la radio et personne n'a réfléchi à la façon dont elle était arrangée. Cela a toujours fonctionné - c'est une donnée.

Azimov a ensuite déclaré que ce serait similaire avec les ordinateurs - la facilité d'utilisation augmenterait . Si, en 1980, vous devez suivre une formation spécialisée pour appuyer sur les boutons d'un ordinateur, ce ne sera plus le cas à l'avenir.

J'ai le sentiment qu'avec Kubernetes et l'infrastructure, la facilitĂ© d'utilisation augmentera Ă©galement considĂ©rablement. À mon avis, cela est Ă©vident - cela se trouve Ă  la surface.

Que faire des ingénieurs?


- Et qu'adviendra-t-il des ingénieurs, administrateurs systÚme qui prennent en charge Kubernetes?

Dmitry : Et qu'est-il arrivĂ© au comptable aprĂšs l'apparition de 1C? À peu prĂšs la mĂȘme chose. Avant cela, ils ont rĂ©flĂ©chi sur un morceau de papier - maintenant dans le programme. La productivitĂ© du travail a augmentĂ© de plusieurs ordres de grandeur, et le travail lui-mĂȘme n'en a pas disparu. Auparavant, 10 ingĂ©nieurs devaient visser l'ampoule, mais maintenant, un suffira.

Il me semble que le nombre de logiciels et le nombre de tùches augmentent à une vitesse supérieure à celle des nouveaux DevOps et l'efficacité augmente. Il y a une pénurie spécifique sur le marché et elle durera longtemps. Plus tard, tout ira dans une certaine norme, à laquelle l'efficacité du travail augmentera, il deviendra plus sans serveur, ils attacheront un neurone à Kubernetes, qui sélectionnera toutes les ressources comme il se doit, et en général, il fera tout comme il le devrait - la personne s'éloigne et ne dérange pas.

Mais de toute façon, quelqu'un devra prendre des décisions. Il est clair que le niveau de qualification et de spécialisation de cette personne est plus élevé. Maintenant, dans le département de comptabilité, vous n'avez pas besoin de 10 employés qui tiennent des livres pour que leur main ne se fatigue pas. Ce n'est tout simplement pas nécessaire. De nombreux documents sont automatiquement numérisés et reconnus par le systÚme de gestion électronique des documents. Un chef comptable intelligent suffit, déjà avec des compétences beaucoup plus grandes, avec une bonne compréhension.

En gĂ©nĂ©ral, une telle voie dans tous les secteurs. C'est la mĂȘme chose avec les voitures: auparavant, un mĂ©canicien automobile et trois conducteurs Ă©taient attachĂ©s Ă  la voiture. Maintenant, conduire une voiture est le processus le plus simple auquel nous participons tous chaque jour. Personne ne pense qu'une voiture est quelque chose de compliquĂ©.

Le DevOps ou l'ingénierie des systÚmes n'ira nulle part - l'efficacité de haut niveau et opérationnelle augmentera.

- J'ai également entendu une idée intéressante selon laquelle le travail va en fait augmenter.

Dmitry : Bien sûr, à cent pour cent! Parce que la quantité de logiciels que nous écrivons est en constante augmentation. Le nombre de problÚmes que nous résolvons avec les logiciels est en constante augmentation. La quantité de travail augmente. Maintenant, le marché DevOps est terriblement surchauffé. Cela ressort clairement des attentes salariales. Dans le bon sens, sans entrer dans les détails, il devrait y avoir des juniors qui veulent X, des intermédiaires qui veulent 1,5X et des seniors qui veulent 2X. Et maintenant, si vous regardez le marché des salaires DevOps de Moscou, le junior veut de X à 3X et le senior veut de X à 3X.

Personne ne sait combien cela coĂ»te. Votre niveau de salaire est mesurĂ© par votre confiance - une folie complĂšte, pour ĂȘtre honnĂȘte, un marchĂ© terriblement surchauffĂ©.

Bien sûr, cette situation va changer trÚs bientÎt - une certaine saturation devrait arriver. Avec le développement de logiciels, ce n'est pas le cas - malgré le fait que tout le monde a besoin de développeurs et que tout le monde a besoin de bons développeurs, le marché comprend combien cela coûte - l'industrie s'est installée. Ce n'est pas le cas avec DevOps.

- D'aprĂšs ce que j'ai entendu, j'ai conclu que l'administrateur systĂšme actuel ne devrait pas ĂȘtre trĂšs inquiet, mais il est temps de tĂ©lĂ©charger des compĂ©tences et de se prĂ©parer au fait que demain il y aura plus de travail, mais il sera plus hautement qualifiĂ©.

Dmitry : Absolument. En général, nous vivons en 2019 et la rÚgle de vie est la suivante: l' apprentissage à vie - nous apprenons toute notre vie . Il me semble que maintenant tout le monde le sait et le ressent, mais en savoir un peu est nécessaire. Chaque jour, nous devons changer. Si nous ne le faisons pas, tÎt ou tard, nous serons déposés en marge de la profession.

PrĂ©parez-vous pour des virages serrĂ©s Ă  180 degrĂ©s. Je n'exclus pas une situation oĂč quelque chose change radicalement, ils proposent quelque chose de nouveau - cela arrive. Hop! - et maintenant nous agissons diffĂ©remment. Il est important de s'y prĂ©parer et de ne pas cuire Ă  la vapeur. Il peut arriver que demain tout ce que je fais soit inutile - rien, j'ai Ă©tudiĂ© toute ma vie et je suis prĂȘt Ă  apprendre autre chose. Ce n'est pas un problĂšme. Vous ne devez pas avoir peur de la sĂ©curitĂ© d'emploi, mais vous devez ĂȘtre prĂȘt Ă  apprendre constamment quelque chose de nouveau.

Souhaits et une minute de publicité


- Aurez-vous un souhait?

Dmitry : Oui, j'ai quelques souhaits.

Le premier et mercantile - abonnez-vous à YouTube . Chers lecteurs, allez sur YouTube et abonnez-vous à notre chaßne. Dans environ un mois, nous commencerons une expansion active dans le service vidéo. Nous aurons un tas de contenu éducatif sur Kubernetes, ouvert et différent: des choses pratiques, jusqu'aux laboratoires, aux choses théoriques fondamentales et comment appliquer Kubernetes au niveau des principes et des modÚles.

Le deuxiĂšme souhait mercantile - aller Ă  GitHub et mettre des Ă©toiles, parce que nous les mangeons. Si vous ne nous donnez pas d'Ă©toiles, nous n'aurons rien Ă  manger. C'est comme du mana dans un jeu vidĂ©o. Nous faisons quelque chose, faisons, essayons, quelqu'un dit que ce sont des vĂ©los terribles, quelqu'un que tout va gĂ©nĂ©ralement mal, et nous continuons et agissons de façon absolument honnĂȘte. Nous voyons le problĂšme, le rĂ©solvons et partageons notre expĂ©rience. Par consĂ©quent, donnez-nous un astĂ©risque, il ne diminuera pas de vous, mais il viendra Ă  nous, parce que nous les mangeons.

Le troisiĂšme dĂ©sir, important et non plus mercantile - arrĂȘtez de croire aux contes de fĂ©es . Vous ĂȘtes des professionnels. DevOps est une profession trĂšs sĂ©rieuse et responsable. ArrĂȘtez de jouer sur le lieu de travail. Laissez-vous cliquer et vous le comprendrez. Imaginez que vous viendrez Ă  l'hĂŽpital et que le mĂ©decin expĂ©rimentera avec vous. Je comprends que cela peut ĂȘtre offensant pour quelqu'un, mais il ne s'agit probablement pas de vous, mais de quelqu'un d'autre. Dites aux autres d'arrĂȘter aussi. Cela gĂąche vraiment la vie pour nous tous - beaucoup commencent Ă  se rapporter Ă  l'exploitation, aux admins et aux DevOps, comme aux mecs qui ont encore cassĂ© quelque chose. Cela a Ă©tĂ© «cassé» le plus souvent en raison du fait que nous sommes allĂ©s jouer et que nous n'avons pas regardĂ© avec une conscience froide que c'Ă©tait comme ça, mais de cette façon.

Cela ne signifie pas que vous n'avez pas besoin d'expĂ©rimenter. Nous devons expĂ©rimenter, nous le faisons nous-mĂȘmes. Pour ĂȘtre honnĂȘte, nous jouons aussi nous-mĂȘmes parfois - cela, bien sĂ»r, est trĂšs mauvais, mais rien d'humain ne nous est Ă©tranger. DĂ©clarons 2019 l'annĂ©e des expĂ©riences sĂ©rieuses et rĂ©flĂ©chies, pas des jeux sur prod. Probablement.

- Merci beaucoup!

Dmitry : Merci, Vitaly, pour le temps et pour l'interview. Chers lecteurs, merci beaucoup si vous ĂȘtes soudainement arrivĂ© Ă  ce point. J'espĂšre qu'au moins quelques rĂ©flexions que nous vous avons apportĂ©es.

Dans une interview, Dmitry a Ă©voquĂ© werf. Maintenant, c'est un couteau suisse universel qui rĂ©sout presque toutes les tĂąches. Mais cela n'a pas toujours Ă©tĂ© le cas. À DevOpsConf au festival RIT ++ , Dmitry Stolyarov parlera de cet outil en dĂ©tail. Le rapport «werf est notre outil pour CI / CD dans Kubernetes» aura tout: les problĂšmes et les nuances cachĂ©es de Kubernetes, les solutions Ă  ces difficultĂ©s et l'implĂ©mentation actuelle de werf en dĂ©tail. Rejoignez-nous les 27 et 28 mai, nous crĂ©erons des outils idĂ©aux.

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


All Articles