Vous avez dû voir que l'intelligence artificielle est rapidement devenue une technologie incontournable, révolutionnant des secteurs allant de la santé à la finance en passant bien évidemment par l’informatique.
Ce n’est un secret pour personne, dans l'écosystème AWS (Amazon Web Services), la gestion des accès et des autorisations est d’une importance capitale pour garantir la confidentialité, l'intégrité et la disponibilité des ressources cloud.
Comment mettre en place une politique de tagging sur AWS ?
La façon dont nous déployons, gérons et mettons à l'échelle nos ressources informatiques a radicalement changé avec l’adoption du Cloud. AWS (Amazon Web Services) est l'un des principaux acteurs de cette transformation, offrant des services et des ressources en constante évolution.
Simplifiez le déploiement de vos applications avec le templating Helm
Introduction Ces dernières années, le domaine du cloud est en constante évolution, la capacité à déployer des applications de manière rapide, cohérente et efficace est devenue incontournable. Le templating Helm est une des solutions pour simplifier ce processus dans des environnements Kubernetes.
Comment mettre en place une solution de centralisation de logs ?
Introduction Lorsqu'on souhaite entamer la consolidation d’un système d’information, il est important de s’intéresser à la centralisation des logs (évènement système et log applicatif). Dans cet article, nous allons voir en quoi cela consiste et ce que cela apporte en matière de gestion et de sécurité. Nous aborderons également les étapes et processus à mettre en place pour accomplir cette tâche.
Dans la culture actuelle et avec l’expansion des pratiques DevOps, les équipes de développement ont pour objectif de réduire le Time To Market de leurs produits, applications ou sites web.
(String: <div data-mobiledoc="{"version":"0.3.2","atoms":[],"cards":[],"markups":[["strong"],["a",["href","https://kubernetes.io/fr/docs/tasks/tools/install-minikube/"]],["a",["href","https://kubernetes.io/docs/tutorials/kubernetes-basics/_print/"]]],"sections":[[1,"p",[[0,[],0,"Les applications conteneurisées sont devenues très populaires ces dernières années. La plateforme d’orchestration de conteneurs Kubernetes a elle aussi été massivement adoptée par les entreprises. C’est en ce sens que j’ai décidé de m’y intéresser."]]],[1,"h2",[[0,[],0,"Pourquoi j’ai eu envie de découvrir Kubernetes ?"]]],[1,"p",[[0,[],0,"J’ai eu l’occasion de mener plusieurs projets avec Docker pour conteneuriser des applications afin de faciliter leur déploiement. Cela m’a permis de construire des applications et de rassembler toutes les dépendances, l’OS et le code au sein d’un conteneur. Le processus de déploiement s’est vu simplifié et accéléré."]]],[1,"p",[[0,[],0,"Vous l’aurez compris, les conteneurs m’ont permis de faciliter le développement et le déploiement des applications. Mais je me suis vite retrouvé avec plusieurs dizaines de conteneurs à gérer. Plusieurs problématiques sont alors apparues :"]]],[3,"ul",[[[0,[],0,"Comment mettre à jour les conteneurs sans interruption de service ?"]],[[0,[],0,"Comment les monitorer ?"]],[[0,[],0,"Comment absorber les pics de charges ?"]]]],[1,"p",[[0,[],0,"C’est en me posant ces questions que je me suis interrogé et intéressé à Kubernetes. Il s’agit d’un outil d’orchestration de conteneurs permettant de les créer et de les déployer. Il permet d’automatiser d’un grand nombre de processus manuels associés aux déploiements, à la gestion et à la mise à l’échelle des applications."]]],[1,"p",[[0,[],0,"Pour rappel, Docker a pour rôle de packager et de déployer sur un serveur les applications dans des conteneurs. Kubernetes permet d’améliorer les processus, permettant de déployer facilement de nouvelles versions sur des centaines (voire des milliers) de serveurs. Le tout sans l" interruption="" de="" service="" 1="" h2="" 0="" comment="" je="" me="" suis="" form="" kubernetes="" p="" pour="" d="" couvrir="" et="" former="" cet="" orchestrateur="" il="" n="" y="" a="" pas="" secret="" faut="" mettre="" les="" mains="" dans="" le="" cambouis="" j="" entends="" par="" l="" ployer="" utiliser="" un="" cluster="" cependant="" en="" place="" avec="" peu="" ou="" exp="" rience="" sur="" cette="" technologie="" est="" vident="" heureusement="" apr="" s="" quelques="" recherches="" internet="" ai="" trouv="" projet="" intitulant="" minikube="" outil="" permettant="" avoir="" ud="" unique="" tr="" user-friendly="" facile="" installer="" disponible="" linux="" macos="" windows="" vous="" retrouverez="" la="" documentation="" installation="" juste="" ici="" https:="" io="" fr="" docs="" tasks="" tools="" install-minikube="" m="" permis="" local="" directement="" mon="" poste="" travail="" pr="" t="" emploi="" disclaimer="" :="" du="" tout="" prod="" ready="" uniquement="" des="" fins="" tests="" apprentissage="" car="" son="" architecture="" r="" siliente="" une="" fois="" que="" avais="" up="" and="" running="" pu="" commencer="" familiariser="" ce="" dernier="" ployant="" application="" utilis="" ligne="" commande="" kubectl="" applications="" inspecter="" g="" rer="" ressources="" revenir="" plus="" tails="" processus="" formation="" suivi="" officielle="" pouvez="" retrouver="" 2="" tutorials="" kubernetes-basics="" _print="" learn="" basics="" nous="" propose="" 6="" modules="" 3="" ol="" cr="" ation="" ploiement="" exploration="" exposer="" publiquement="" mise="" chelle="" jour="" tutoriel="" bien="" fait="" adapt="" aux="" butants="" didactique="" on="" couvre="" douceur="" appr="" ci="" sont="" informations="" apport="" es="" chacun="" parties="" pratiques="" qui="" permettent="" comprendre="" chaque="" tape="" suite="" notions="" fra="" chement="" acquises="" b="" ficie="" katacoda="" met="" disposition="" terminal="" virtuel="" votre="" navigateur="" faisant="" tourner="" besoin="" quelconque="" logiciel="" faire="" configurations="" qu="" c="" connexion="" donc="" aucune="" excuse="" difficult="" rencontr="" environnement="" difficile="" cessite="" temps="" pratique="" saisir="" potentiel="" ont="" au="" niveau="" compr="" hension="" diff="" rents="" composants="" control="" plane="" workers="" scheduler="" api="" server="" kube-proxy="" kubelet="" surtout="" leur="" ils="" interagissent="" entre="" eux="" continuer="" eu="" mal="" certaines="" cl="" sp="" cifiquement="" pod="" rencie="" conteneur="" notion="" galement="" chauffer="" cerveau="" abord="" sens="" ensuite="" plusieurs="" types="" services="" partie="" hender="" questionn="" leurs="" rences="" quel="" cas="" faut-il="" autre="" mentionnerai="" fichiers="" format="" yaml="" personnellement="" per="" u="" cela="" comme="" tais="" habitu="" travailler="" mais="" si="" pourra="" tre="" licat="" bri="" vement="" objectif="" fichier="" fournir="" instructions="" fa="" dont="" souhaitez="" soit="" ex="" cut="" cadre="" retenu="" encore="" moins="" impl="" menter="" travers="" appris="" interagir="" puis="" toutes="" tapes="" se="" cachent="" derri="" re="" pratiquer="" exclusivement="" voir="" conseille="" curieux="" ne="" h="" siter="" suivre="" see="" also="" nent="" vers="" autres="" tutoriels="" explications="" approfondir="" sujet="" ma="" selon="" moi="" imp="" ratif="" conna="" monde="" conteneurs="" docker="" beaucoup="" aid="" couverte="" sans="" aucun="" doute="" va="" falloir="" davantage="" triser="" aise="" leader="" march="" orchestration="" vaut="" peine="" apprendre="" int="" ressez="" probl="" matiques="" nonc="" amont="" voqu="" demment="" exploiter="" pleinement="" maintenant="" bases="" compris="" vais="" aller="" loin="" pense="" notamment="" architectures="" complexes="" aussi="" informer="" ingress="" configmaps="" volumes="" secrets="" bref="" norme="" marge="" progression="" utilisation="" wescale="" dispense="" formations="" peut="" accompagner="" aventure="">
<h2>Pourquoi j’ai eu envie de découvrir Kubernetes ?</h2>
<p>J’ai eu l’occasion de mener plusieurs projets avec Docker pour conteneuriser des applications afin de faciliter leur déploiement. Cela m’a permis de construire des applications et de rassembler toutes les dépendances, l’OS et le code au sein d’un conteneur. Le processus de déploiement s’est vu simplifié et accéléré.</p>
<p>Vous l’aurez compris, les conteneurs m’ont permis de faciliter le développement et le déploiement des applications. Mais je me suis vite retrouvé avec plusieurs dizaines de conteneurs à gérer. Plusieurs problématiques sont alors apparues :</p>
<ul>
<li>Comment mettre à jour les conteneurs sans interruption de service ?</li>
<li>Comment les monitorer ?</li>
<li>Comment absorber les pics de charges ?</li>
</ul>
<p>C’est en me posant ces questions que je me suis interrogé et intéressé à Kubernetes. Il s’agit d’un outil d’orchestration de conteneurs permettant de les créer et de les déployer. Il permet d’automatiser d’un grand nombre de processus manuels associés aux déploiements, à la gestion et à la mise à l’échelle des applications.</p>
<p>Pour rappel, Docker a pour rôle de packager et de déployer sur un serveur les applications dans des conteneurs. Kubernetes permet d’améliorer les processus, permettant de déployer facilement de nouvelles versions sur des centaines (voire des milliers) de serveurs. Le tout sans l'interruption de service.</p>
<h2>Comment je me suis formé à Kubernetes ?</h2>
<p>Pour découvrir et me former à cet orchestrateur, il n’y a pas de secret, il faut “mettre les mains dans le cambouis”.</p>
<p>J’entends par là, déployer et utiliser un cluster Kubernetes. Cependant, mettre en place un cluster avec peu ou pas d’expérience sur cette technologie n’est pas évident. Heureusement, après quelques recherches sur Internet, j’ai trouvé un projet s’intitulant <strong>Minikube</strong>, outil permettant d’avoir un cluster à nœud unique et très “user-friendly”<strong>. </strong>Il est très facile à installer (disponible sur Linux, macOS et Windows). Vous retrouverez la documentation d’installation juste ici <a href="https://kubernetes.io/fr/docs/tasks/tools/install-minikube/">https://kubernetes.io/fr/docs/tasks/tools/install-minikube/</a> Cet outil m’a permis de déployer un cluster Kubernetes local directement pour mon poste de travail et prêt à l’emploi.</p>
<p>Disclaimer : Minikube n’est pas du tout prod ready. Il est à utiliser uniquement à des fins de tests et d'apprentissage, car son architecture n’est pas résiliente.</p>
<p>Une fois que j'avais mon cluster “up and running”, j’ai pu commencer à me familiariser avec ce dernier en déployant une application. J’ai utilisé la ligne de commande avec <strong>kubectl</strong>, outil me permettant de déployer des applications, d’inspecter et de gérer les ressources de mon cluster.</p>
<p>Pour revenir plus en détails sur mon processus de formation, j’ai suivi la documentation officielle de Kubernetes, que vous pouvez retrouver ici : <a href="https://kubernetes.io/docs/tutorials/kubernetes-basics/_print/">https://kubernetes.io/docs/tutorials/kubernetes-basics/_print/</a></p>
<p>Ce “Learn Kubernetes Basics” nous propose 6 modules :</p>
<ol>
<li>Création d’un cluster</li>
<li>Déploiement d’une application</li>
<li>Exploration de l’application</li>
<li>Exposer publiquement l’application</li>
<li>Mise à l’échelle de l’application</li>
<li>Mettre à jour son application</li>
</ol>
<p>J’ai trouvé ce tutoriel très bien fait, adapté aux débutants et didactique. On découvre l’orchestrateur tout en douceur.</p>
<p>Ce que j’ai apprécié, ce sont les informations apportées sur chacun des modules. Il y a des parties pratiques qui permettent de comprendre chaque étape pas à pas. J’ai pu mettre tout de suite en application les notions fraîchement acquises.</p>
<p>Ce tutoriel bénéficie de <strong>Katacoda</strong> qui vous met à disposition un terminal virtuel directement dans votre navigateur faisant tourner Minikube. Il n’y a pas besoin d’installer quelconque logiciel ou de faire des configurations. Tout ce qu’il faut, c’est une connexion internet et un navigateur. Donc, aucune excuse ! 😛</p>
<h2>Les difficultés rencontrées</h2>
<p>Kubernetes est un environnement difficile qui nécessite du temps et de la pratique pour saisir tout son potentiel.</p>
<p>Les difficultés que j’ai rencontrées ont été au niveau de la compréhension des différents composants d’un cluster Kubernetes (les control plane, les workers, le scheduler, l’API server, kube-proxy, kubelet… 🤯) et surtout leur rôle et comment ils interagissent entre eux…</p>
<p>Pour continuer sur les composants, j’ai eu du mal à comprendre certaines notions clés de kubernetes. Plus spécifiquement sur ce qu’est un Pod, qu’est ce qui le différencie d’un conteneur ? d’un déploiement ?</p>
<p>La notion de service m’a également fait chauffer le cerveau. Tout d’abord, il faut comprendre ce qu’est un service au sens Kubernetes. Ensuite, il y a plusieurs types de services. Je n’ai pas trouvé cette partie facile à appréhender. Je me suis questionné sur leurs différences et dans quel cas faut-il utiliser l’un plus que l’autre ?</p>
<p>Je mentionnerai également les fichiers au format YAML. Personnellement, je n’ai pas perçu cela comme une difficulté. J’étais déjà habitué à travailler avec ce format. Mais si ce n’est pas votre cas, cela pourra être délicat. Brièvement, l’objectif d’un fichier YAML est de fournir des instructions sur la façon dont vous souhaitez que votre déploiement soit exécuté (dans le cadre d’un déploiement kubernetes).</p>
<h2>Ce que j’ai retenu</h2>
<p>Kubernetes n’est pas une technologie facile à comprendre et encore moins à implémenter.</p>
<p>Au travers les 6 modules Learn Kubernetes Basics, j’ai pu déployer un cluster Kubernetes local avec Minikube. J’ai appris à utiliser la ligne de commande avec <strong>kubectl</strong> pour interagir avec le cluster et les applications. Puis comprendre toutes les étapes qui se cachent derrière un déploiement Kubernetes.</p>
<p>Ce tutoriel nous fait pratiquer exclusivement avec <strong>kubectl</strong>, ce qui m’a permis de voir et de comprendre chaque étape dans le processus de déploiement d’une application.</p>
<p>Je conseille également d'être curieux, de ne pas hésiter à suivre les “See Also” qui mènent vers d’autres tutoriels et explications. Cela m’a permis d'approfondir le sujet et ma compréhension de l’orchestrateur.</p>
<p>Selon moi, il est impératif de comprendre et de connaître le monde des conteneurs. Comment ils sont créés et comment ils sont exécutés. Mon expérience sur Docker m’a beaucoup aidé dans ma découverte et dans ma compréhension de Kubernetes.</p>
<p>Sans aucun doute, il va falloir l’utiliser davantage pour le maîtriser et être à l’aise avec cet orchestrateur.</p>
<p>Kubernetes est le leader du marché de l’orchestration de conteneurs et il vaut la peine de l’apprendre si vous vous intéressez aux problématiques énoncées en amont !</p>
<h2>Et après ?</h2>
<p>Comme je l’ai évoqué précédemment, il va falloir pratiquer encore et encore pour exploiter pleinement cette technologie. Maintenant que j’ai les bases, que j’ai compris l'intérêt de Kubernetes, je vais aller plus loin dans ma découverte.</p>
<p>Je pense notamment à faire des tests avec des architectures plus complexes. Mais aussi m’informer sur d’autres composants clés comme les ingress, les configmaps, les volumes, les secrets… Bref, il y a encore beaucoup de travail, et une énorme marge de progression !</p>
<p>Si vous souhaitez aller plus loin dans votre compréhension et utilisation de cette technologie, WeScale dispense des formations Kubernetes et peut vous accompagner dans l’aventure ! 😃</p>
</div>)
Les applications conteneurisées sont devenues très populaires ces dernières années. La plateforme d’orchestration de conteneurs Kubernetes a elle aussi été massivement adoptée par les entreprises. C’est en ce sens que j’ai décidé de m’y intéresser.