Kubernetes, aussi puissant que difficile. - ūüŹÜ Serveur g√©r√©
Juillet 29 2019

Kubernetes, aussi puissant que difficile.

Qu'est-ce que Kubernetes ? Une br√®ve introduction.

Bannière Kubernetes

Kubernetes a vraisemblablement gagné la guerre des conteneurs. Cependant, Kubernetes est toujours difficile et cause beaucoup de douleur.

Je pense que je devrais donner une petite préface à cet article. Kubernetes est le nouveau runtime pour de nombreuses applications, et lorsqu'il est utilisé correctement, il peut être un outil puissant pour éliminer la complexité de votre cycle de vie de développement. Cependant, ces dernières années, j'ai vu de nombreuses personnes et entreprises trébucher sur le désir de gérer leur propre installation. Il reste souvent en phase expérimentale et n'entre jamais en production.

Comment fonctionne Kubernetes ?

En grande partie, Kubernetes ou K8 semblent √™tre tr√®s simples. Les nŇďuds (machines) sur lesquels Kubernetes s'ex√©cute sont divis√©s en (au moins) deux types : le ma√ģtre et les travailleurs. Le ou les ma√ģtres, par d√©faut, n'effectuent aucune charge de travail r√©elle, c'est le travail des ouvriers. Le ma√ģtre Kubernetes comprend un composant appel√© serveur d'API qui fournit une API √† laquelle vous pouvez parler √† l'aide de kubectl. Il comprend √©galement un planificateur, qui d√©cide quel conteneur doit s'ex√©cuter o√Ļ (conteneurs de planification). Le dernier composant est le contr√īleur-gestionnaire, qui est en fait un ensemble de plusieurs contr√īleurs charg√©s de g√©rer les pannes de nŇďuds, de g√©rer les r√©plicas, de fusionner les services et les pods (ensembles de conteneurs), et enfin de g√©rer les comptes de service et les jetons d'acc√®s aux API. Toutes les donn√©es sont stock√©es dans etcd, qui est une base de donn√©es de valeurs cl√©s tr√®s coh√©rente (avec des fonctionnalit√©s vraiment int√©ressantes). Donc, pour r√©sumer, le ma√ģtre est responsable de la gestion du cluster. Pas √©tonnant. Le travailleur, quant √† lui, g√®re les charges de travail r√©elles. A cet effet, il comprend, encore une fois, un certain nombre de composants. Tout d'abord, il ex√©cute le kubelet, qui est √† nouveau une API qui fonctionne avec des conteneurs sur ce nŇďud. Il existe √©galement le kube-proxy, qui transf√®re les connexions r√©seau, containerd pour ex√©cuter le conteneur, et selon la configuration, il peut y avoir d'autres choses comme kube-dns ou gVisor. Vous aurez √©galement besoin d'une sorte de r√©seau de superposition ou d'int√©gration avec votre configuration r√©seau sous-jacente afin que Kubernetes puisse g√©rer le r√©seau entre vos pods.

Kubernetes prêt pour la production

Cela, jusqu'à présent, ne sonne pas trop mal. Installez quelques programmes, configurations, certificats, etc. Ne vous méprenez pas, c'est toujours une courbe d'apprentissage, mais ce n'est rien qu'un administrateur système moyen n'ait pas traité dans le passé. Cependant, la simple installation manuelle de Kubernetes n'est pas exactement prête pour la production, alors parlons des étapes nécessaires à la mise en place de cette chose. Tout d'abord, l'installation.

Vous voulez vraiment avoir une sorte d'installation automatis√©e. Peu importe qu'il s'agisse d'Ansible, Terraform ou d'autres outils, vous voulez qu'il soit automatis√©. kops, par exemple, aide √† cela, mais l'utilisation de kops signifie que vous ne savez pas exactement comment il est configur√© et peut causer des probl√®mes lorsque vous souhaitez d√©boguer quelque chose plus tard. Cette automatisation doit √™tre test√©e et test√©e r√©guli√®rement. Ensuite, vous devez surveiller l'installation de Kubernetes. Donc tout de suite, vous avez besoin de quelque chose comme Prometheus, Grafana, etc. L'ex√©cutez-vous dans votre Kubernetes ? Si votre Kubernetes a un probl√®me, votre surveillance est-elle interrompue ? Ou le g√©rez-vous s√©par√©ment ? Si oui, alors o√Ļ le g√©rez-vous ?

A noter également les sauvegardes.

Que ferez-vous si votre ma√ģtre plante, si les donn√©es sont irr√©cup√©rables et si vous devez restaurer tous les pods du syst√®me ? Avez-vous test√© combien de temps il faut pour ex√©cuter √† nouveau toutes les t√Ęches de votre syst√®me ? Avez-vous un plan de reprise apr√®s sinistre ? Maintenant, puisque nous parlons du syst√®me CI, nous devons ex√©cuter un registre Docker pour les images. Ceci, bien s√Ľr, peut √™tre refait dans Kubernetes, mais si Kubernetes plante. Le syst√®me CI est √©videmment aussi un probl√®me, tout comme le syst√®me de contr√īle de version. Id√©alement, isol√© de votre environnement de production afin que si ce syst√®me a un probl√®me, vous puissiez au moins acc√©der √† votre git, le red√©ployer, etc.

Stockage de données

Parlons de l'√©l√©phant dans la salle : la m√©morisation. Kubernetes en soi ne fournit pas de solution de stockage. Bien s√Ľr, il est possible de monter un dossier depuis la machine h√īte, mais ce n'est ni recommand√© ni simple. Rok, par exemple, rend relativement facile l'utilisation de Ceph comme m√©moire de bloc sous-jacente pour vos besoins de stockage de donn√©es, mais mon exp√©rience avec Ceph est qu'il a beaucoup de valeurs et de configurations qui doivent √™tre ajust√©es, donc vous n'√™tes pas absent de la question du tout, de la difficult√© √† simplement passer √† l'√©tape suivante.

Débogage

Lorsque l'on parlait de Kubernetes avec les d√©veloppeurs, un sch√©ma courant s'est pr√©sent√© assez r√©guli√®rement : lorsqu'ils utilisaient un Kubernetes g√©r√©, les gens avaient du mal √† d√©boguer leurs applications. M√™me des probl√®mes simples, tels qu'un conteneur qui ne d√©marre pas, ont caus√© de la confusion. Ceci, bien s√Ľr, est un probl√®me d'√©ducation. Au cours des derni√®res d√©cennies, les d√©veloppeurs ont appris √† d√©boguer des configurations ¬ę classiques ¬Ľ : lecture des fichiers journaux dans /var/log, etc. mais avec les conteneurs, nous ne savons m√™me pas sur quel serveur le conteneur s'ex√©cute, ce qui repr√©sente un changement de paradigme.

Le problème de la complexité

Vous avez peut-√™tre remarqu√© que j'ignore ce que les fournisseurs de cloud vous offrent, m√™me s'il ne s'agit pas d'un Kubernetes enti√®rement g√©r√©. Bien s√Ľr, si vous utilisez une solution g√©r√©e par Kubernetes, c'est tr√®s bien et vous n'avez pas √† vous soucier de tout cela, √† l'exception du d√©bogage. Kubernetes a beaucoup de pi√®ces mobiles, et Kubernetes √† lui seul ne fournit pas une pile compl√®te de solutions. RedHat OpenShift, par exemple, fait cela, mais cela co√Ľte et vous devez toujours ajouter des choses vous-m√™me. √Ä l'heure actuelle, Kubernetes est sur la colline du cycle de battage m√©diatique de Gartner, tout le monde le veut, mais peu le comprennent vraiment. Dans les prochaines ann√©es, plusieurs entreprises devront se rendre compte que Kubernetes n'est pas la solution √† tous les maux et comprendre comment l'utiliser correctement et efficacement.

Je pense que faire fonctionner votre Kubernetes ne vaut la peine que si vous pouvez vous permettre de dédier une équipe d'exploitation à la question de la maintenance de la plate-forme sous-jacente pour vos développeurs.

Vous avez des doutes ? Vous ne savez pas par o√Ļ commencer ? Contactez-nous


Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

ManagedServer.it est le premier fournisseur italien de solutions d'hébergement hautes performances. Notre modèle d'abonnement est abordable et prévisible, afin que les clients puissent accéder à nos technologies d'hébergement fiables, à nos serveurs dédiés et au cloud. ManagedServer.it offre également d'excellents services d'assistance et de conseil sur l'hébergement des principaux CMS Open Source tels que WordPress, WooCommerce, Drupal, Prestashop, Magento.

Remonter en haut