{"id":1055,"date":"2021-06-07T09:18:48","date_gmt":"2021-06-07T07:18:48","guid":{"rendered":"https:\/\/loeilduse.fr\/?p=1055"},"modified":"2021-06-09T10:37:27","modified_gmt":"2021-06-09T08:37:27","slug":"deployer-des-vms-dans-et-via-kubernetes","status":"publish","type":"post","link":"https:\/\/loeilduse.fr\/?p=1055&lang=fr","title":{"rendered":"D\u00e9ployer des VMs dans et via Kubernetes"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Les applications sont souvent compos\u00e9es de PODs Kubernetes et de VMs. L\u2019exemple le plus commun que l\u2019on retrouve est, une base de donn\u00e9es sous forme de VM et le reste de l\u2019application sous forme de PODs. Par reflexe, \u00e0 tort ou \u00e0 raison, ce qui n\u00e9cessite de la persistance de donn\u00e9es est mis sous forme de VMs.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">La plateforme vSphere with Tanzu est une plateforme permetant elle aussi d\u2019h\u00e9berger simultan\u00e9ment et nativement des PODs Kubernetes et des VMs.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Jusqu\u2019\u00e0 pr\u00e9sent les VMs et les PODs \u00e9taient d\u00e9ploy\u00e9es via des m\u00e9thodes diff\u00e9rentes et connect\u00e9s sur des r\u00e9seaux diff\u00e9rents, ce qui pouvait engendrer pour les d\u00e9veloppeurs un d\u00e9lai de mise \u00e0 disposition d\u2019environnement de d\u00e9veloppement et des risques d\u2019\u00e9checs de connexion. En effet, les d\u00e9veloppeurs devaient demander \u00e0 l\u2019\u00e9quipe qui g\u00e8re l\u2019infrastructure, le d\u00e9ploiement d\u2019une VM avec une expression de besoin.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Pour diminuer l\u2019impact temps et les risques d\u2019erreur, les \u00e9quipes d\u2019infrastructure ont mis en place des outils d\u2019automatisation via un syst\u00e8me de ticketing ou via un portail self-service pour donner ainsi une certaine autonomie. Le d\u00e9ploiement est bien simplifi\u00e9 mais ce n\u2019est pas encore suffisant car \u00e7a implique au d\u00e9veloppeur l\u2019apprentissage et l\u2019utilisation d\u2019outils suppl\u00e9mentaires et de r\u00e9cup\u00e9rer les modalit\u00e9s de connexions \u00e0 la VM d\u00e9ploy\u00e9e. Le portail self-service n\u2019est pas d\u00e9suet pour autant, il a beaucoup d\u2019autres valeurs comme la gestion de la gouvernance, j\u2019esp\u00e8re avoir l\u2019occasion d\u2019\u00e9crire un article dessus pour les d\u00e9taill\u00e9es.<\/span><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1056 aligncenter\" src=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/06\/schema-portal-deploy-pod-vm.png\" alt=\"\" width=\"624\" height=\"297\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/06\/schema-portal-deploy-pod-vm.png 624w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/06\/schema-portal-deploy-pod-vm-300x143.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif; font-size: 8pt;\">Sch\u00e9ma de principe montrant un d\u00e9veloppeur qui click sur son portail pour d\u00e9ployer une VM qui sera connect\u00e9e \u00e0 un r\u00e9seau.<br \/>\n<\/span><span style=\"font-family: trebuchet ms, geneva, sans-serif; font-size: 8pt;\">Ce m\u00eame d\u00e9veloppeur utilise la commande Kubernetes kubectl pour d\u00e9ployer ses PODs. Kubernetes utilise son propre r\u00e9seau.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Depuis vSphere 7U2a il est d\u00e9sormais possible de provisionner des VMs de la m\u00eame mani\u00e8re que l&#8217;on d\u00e9ploie des PODs, en utilisant la commande kubectl de Kubernetes. Pour \u00eatre plus pr\u00e9cis, depuis le d\u00e9but de vSphere with Tanzu (\u00e0 l\u2019origine \u00e7a s\u2019appelait Projet Pacific) il \u00e9tait possible de d\u00e9ployer des Machines virtuelles \u00e0 partir de Kubernetes, elles \u00e9taient cependant r\u00e9serv\u00e9es aux usages internes de Kubernetes comme pour la cr\u00e9ation de Tanzu Kubernetes Cluster.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">D\u00e9sormais le d\u00e9veloppeur peut lui aussi d\u00e9ployer ses propres machines virtuelles, elles seront en plus connect\u00e9es au m\u00eame r\u00e9seau que les pods. La perte de temps et les risques d\u2019erreur sont ainsi \u00e9limin\u00e9s. J\u2019ai fait le test sur mon environnement de d\u00e9monstration qui est mutualis\u00e9 avec mes autres coll\u00e8gues, \u00e7a prend moins de 3 minutes pour avoir une base MongoDB fra\u00eechement install\u00e9e \u00e0 partir d\u2019un Linux Ubuntu compl\u00e8tement vierge.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1057 aligncenter\" src=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/06\/schema-deploy-pod-vm.png\" alt=\"\" width=\"624\" height=\"308\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/06\/schema-deploy-pod-vm.png 624w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/06\/schema-deploy-pod-vm-300x148.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif; font-size: 8pt;\">Sch\u00e9ma de principe montrant un d\u00e9veloppeur qui utilise fois la commande Kubernetes kubectl pour d\u00e9ployer ses PODs et ses VMs.<br \/>\n<\/span><span style=\"font-family: trebuchet ms, geneva, sans-serif; font-size: 8pt;\">Le tout sera connect\u00e9 au m\u00eame r\u00e9seau Kubernetes<\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Quels sont les p\u00e9rim\u00e8tres de chaque persona\u00a0?<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Il y en a deux, le fournisseur de ressources et le consommateur. Le fournisseur est l\u2019administrateur de l\u2019infrastructure qui va pr\u00e9senter les ressources \u00e0 consommer et si n\u00e9cessaire les caper. Le consommateur est le d\u00e9veloppeur qui va utiliser ces ressources via Kubernetes pour d\u00e9velopper son application.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">La personne de l\u2019infrastructure avec son outil habituel (vSphere client), cr\u00e9\u00e9 un Namespace de ressources, octroi les droits d\u2019acc\u00e8s au d\u00e9veloppeur, d\u00e9finir les classes de service (nb de CPU, quantit\u00e9 de RAM) auquel le d\u00e9veloppeur aura le droit d\u2019utiliser et la librairie d\u2019image de VM qu\u2019il pourra utiliser.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Le d\u00e9veloppeur se connecte via son compte au Namespace fourni et cr\u00e9\u00e9 ainsi ses fichiers YAML afin de d\u00e9finir ses besoins en ressources pour sa ou ses machines virtuelles et s\u2019ils le souhaitent, il peut la ou les personnaliser afin d\u2019y installer ses outils et les services dont il a besoin.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">En r\u00e9sum\u00e9, vSphere with Tanzu laisse le choix au d\u00e9veloppeur d\u2019avoir ses composant applicatifs d\u00e9velopp\u00e9s et h\u00e9berg\u00e9s sur des PODs ou sur des VMs et ce en utilisant le m\u00eame outil, le m\u00eame r\u00e9seau et la m\u00eame plateforme. Il y gagne ainsi en temps de d\u00e9ploiement, de d\u00e9veloppement et en agilit\u00e9.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Si vous souhaitez soulevez le capot, je vous invite \u00e0 lire cet article : <a href=\"https:\/\/loeilduse.fr\/?p=1016&amp;lang=fr\">Etapes pour la cr\u00e9ation de VM via kubectl<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les applications sont souvent compos\u00e9es de PODs Kubernetes et de VMs. L\u2019exemple le plus commun que l\u2019on retrouve est, une base de donn\u00e9es sous forme de VM et le reste de l\u2019application sous forme de PODs. Par reflexe, \u00e0 tort ou \u00e0 raison, ce qui n\u00e9cessite de la persistance de donn\u00e9es est mis sous forme<\/p><\/div>\n<div class=\"blog-btn\"><a href=\"https:\/\/loeilduse.fr\/?p=1055&#038;lang=fr\" class=\"home-blog-btn\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[112,201,9,48],"tags":[474,468,470,466,464,149,472,462,498,500,416],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1055"}],"collection":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1055"}],"version-history":[{"count":5,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1055\/revisions"}],"predecessor-version":[{"id":1062,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1055\/revisions\/1062"}],"wp:attachment":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}