{"id":693,"date":"2020-03-16T17:57:38","date_gmt":"2020-03-16T16:57:38","guid":{"rendered":"http:\/\/loeilduse.fr\/?p=693"},"modified":"2020-04-19T19:03:53","modified_gmt":"2020-04-19T17:03:53","slug":"vsphere-avec-kubernetes","status":"publish","type":"post","link":"https:\/\/loeilduse.fr\/?p=693&lang=fr","title":{"rendered":"vSphere avec Kubernetes"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">VMware vSphere with Kubernetes connu sous le nom de projet Pacific a \u00e9t\u00e9 annonc\u00e9 \u00e0 VMworld US 2019. Il fait partie des nombreuses nouvelles fonctionnalit\u00e9s de vSphere 7. Au moment de la r\u00e9daction de cet article il est encore en Beta mais j&#8217;ai eu l&#8217;occasion de l&#8217;installer \u00e0 plusieurs reprises et de faire une dizaine d\u00e9monstration internes et \u00e0 des clients. Le retour des profils administrateur d&#8217;infrastructure et des profils de d\u00e9veloppeur sont positifs, la solution est bien accueillie et ils y trouvent une vraie valeur ajout\u00e9e dans leur m\u00e9tier respectif.<br \/>\n<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">Le message de valeur mis en avant par VMware est la facult\u00e9 \u00e0 l&#8217;hyperviseur d&#8217;h\u00e9berger <span style=\"text-decoration: underline;\">nativement<\/span> des pods kubernetes et des VMs proposant ainsi une plate-forme unique. Les hyperviseurs vSphere forment un cluster Kubernetes o\u00f9 ils jouent le r\u00f4le de worker node Kubernetes (serveurs qui ex\u00e9cutent les pods applicatif). Le control plane est quant \u00e0 lui sous forme de VMs. Aucune comp\u00e9tence Kubernetes n&#8217;est requise pour l&#8217;administrateur vSphere, tout est int\u00e9gr\u00e9 et configur\u00e9 automatiquement. Pour avoir install\u00e9 plusieurs fois Kubernetes, je peux vous dire qu&#8217;avoir une plate-forme pr\u00eate \u00e0 l&#8217;emploi est un vrai gain de temps au moment de l&#8217;installation et lors du maintien en condition op\u00e9rationnel.<\/span><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-698 aligncenter\" src=\"http:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/Master-Worker-1024x373.jpg\" alt=\"\" width=\"910\" height=\"331\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/Master-Worker-1024x373.jpg 1024w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/Master-Worker-300x109.jpg 300w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/Master-Worker-768x279.jpg 768w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/Master-Worker.jpg 2004w\" sizes=\"(max-width: 910px) 100vw, 910px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">C&#8217;est vrai qu&#8217;h\u00e9berger nativement des pods Kubernetes c&#8217;est une innovation unique mais personnellement, je me mettrai plut\u00f4t en avant la capacit\u00e9 de cette plate-forme \u00e0 provisionner des cluster Kubernetes \u00e0 la demande en une seule ligne de commande kubectl et ce directement par le d\u00e9veloppeur. Il pourra aussi b\u00e9n\u00e9ficier toujours via la commande kubectl des services de loadblancer, de volumes de stockage persistants, de r\u00e9seau et des r\u00e8gles de s\u00e9curit\u00e9 et ce sans avoir \u00e0 configurer quoique ce soit. D&#8217;autres fonctionnalit\u00e9 comme la cr\u00e9ation de VM ou de services applicatifs lui seront aussi offertes.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">vSphere with Kubernetes peut \u00eatre divis\u00e9 en deux parties logiques, l&#8217;une pour la partie infrastructure et l&#8217;autre pour la partie d\u00e9veloppement (Namespace et Managed Cluster). La partie infrastructure est g\u00e9r\u00e9e par l&#8217;administrateur vSphere avec ses outils habituels et l&#8217;autre par le d\u00e9veloppeur ou encore par le DevOps avec ses APIs ou la commande habituelle kubectl.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-740 aligncenter\" src=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/03\/Supviersor-NS-Guest-1024x405.jpg\" alt=\"\" width=\"910\" height=\"360\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/03\/Supviersor-NS-Guest-1024x405.jpg 1024w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/03\/Supviersor-NS-Guest-300x119.jpg 300w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/03\/Supviersor-NS-Guest-768x304.jpg 768w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/03\/Supviersor-NS-Guest.jpg 1577w\" sizes=\"(max-width: 910px) 100vw, 910px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">L&#8217;administrateur vSphere cr\u00e9\u00e9 des Namespace via son interface habituelle, il autorise quelles sont les personnes qui auront le droit de consommer ces Namespace, indique quelle classe de stockage \u00e0 utiliser et si besoin, affecte des quotas aux ressources m\u00e9moire, CPU et stockage. Ca prend \u00e0 tout casser 2 minutes. Une fois cette op\u00e9ration termin\u00e9e, le Namespace est pr\u00eat \u00e0 consommer. Le Namespace apparait automatiquement comme projet dans la registry priv\u00e9e Harbor ainsi que les utilisateurs associ\u00e9s.<br \/>\n<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-701 aligncenter\" src=\"http:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/NS-1024x438.jpg\" alt=\"\" width=\"910\" height=\"389\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/NS-1024x438.jpg 1024w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/NS-300x128.jpg 300w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/NS-768x329.jpg 768w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/NS.jpg 2004w\" sizes=\"(max-width: 910px) 100vw, 910px\" \/><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">Le d\u00e9veloppeur se connecte au Namespace et peut imm\u00e9diatement y d\u00e9ployer des Pods Kubernetes.<\/span><\/p>\n<p style=\"padding-left: 120px;\"><span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><strong><em> kubectl vsphere login &#8211;server 10.40.14.33 -u devops@vsphere.local &#8211;insecure-skip-tls-verify<\/em><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">S&#8217;il le souhaite, il peut aussi y cr\u00e9er lui-m\u00eame d&#8217;autres cluster Kubernetes via la commande Kubernetes kubectl apply, s&#8217;il veut par exemple une version de cluster diff\u00e9rente :<\/span><\/p>\n<p style=\"text-align: left; padding-left: 120px;\"><span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>$ cat CreateCluster-guest.yaml <\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>apiVersion: run.tanzu.vmware.com\/v1alpha1<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><strong><em>kind: <\/em><\/strong><\/span><strong><span style=\"font-size: 10pt;\"><em><span style=\"font-family: courier new, courier, monospace;\">TanzuKubernetesCluster<\/span><\/em><\/span><\/strong><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>metadata:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 name: l-oeil-du-se<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 namespace: projets<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>spec:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 topology:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 controlPlane:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 count: 1<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 class: guaranteed-xsmall<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 storageClass: projectpacific-storage-policy<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 workers:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 count: 2<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 class: guaranteed-xsmall<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 storageClass: projectpacific-storage-policy<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 distribution:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 version: v1.16.8<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 settings:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 network:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 cni:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 \u00a0 name: calico<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 services:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 \u00a0 cidrBlocks: [&#8220;10.43.0.0\/16&#8221;]<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 pods:<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace; font-size: 10pt;\"><em>\u00a0 \u00a0 \u00a0 \u00a0 cidrBlocks<\/em><em>: [&#8220;10.44.0.0\/16&#8221;]<\/em><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Ces clusters apparaissent aussi dans l&#8217;interface graphique de l&#8217;administrateur vSphere<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-715 aligncenter\" src=\"http:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-gc-1024x397.jpg\" alt=\"\" width=\"910\" height=\"353\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-gc-1024x397.jpg 1024w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-gc-300x116.jpg 300w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-gc-768x298.jpg 768w\" sizes=\"(max-width: 910px) 100vw, 910px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-family: terminal, monaco, monospace;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Et aussi en ligne de commande<\/span><em><br \/>\n<\/em><\/span><\/p>\n<p style=\"padding-left: 80px;\"><span style=\"font-family: terminal, monaco, monospace;\"><em>$ kubectl get TanzuKenertesCluster<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace;\"><em>NAME \u00a0 \u00a0 \u00a0 \u00a0 CONTROL PLANE WORKER DISTRIBUTION \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 AGE<\/em><\/span><br \/>\n<span style=\"font-family: terminal, monaco, monospace;\"><em>l-oeil-du-se 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2 \u00a0 \u00a0 v1.16.8+vmware.1-tkg.3.60d2ffd 5m<\/em><\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">Le d\u00e9veloppeur peut faire \u00e9voluer la taille de son cluster en modifiant le nombre de master et\/ou de worker directement en changeant la configuration de son cluster via la commande kubectl.<\/span><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-722 aligncenter\" src=\"http:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-scale-gc-1024x608.jpg\" alt=\"\" width=\"910\" height=\"540\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-scale-gc-1024x608.jpg 1024w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-scale-gc-300x178.jpg 300w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-scale-gc-768x456.jpg 768w\" sizes=\"(max-width: 910px) 100vw, 910px\" \/><\/p>\n<p style=\"padding-left: 80px;\"><em><span style=\"font-family: terminal, monaco, monospace;\">$ kubectl get TanzuKerbernetesCluster<\/span><\/em><br \/>\n<em><span style=\"font-family: terminal, monaco, monospace;\">NAME \u00a0 \u00a0 \u00a0 \u00a0 \u00a0CONTROL PLANE <strong>WORKER<\/strong> DISTRIBUTION \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 AGE<\/span><\/em><br \/>\n<em><span style=\"font-family: terminal, monaco, monospace;\">l-oeil-du-se \u00a01 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <strong>3<\/strong>\u00a0 \u00a0 \u00a0 v1.16.8+vmware.1-tkg.3.60d2ffd 109m<\/span><\/em><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">Les pods, les volumes persistants, les network policy et les services sont directement visible par l&#8217;interface vSphere :<\/span><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-711 aligncenter\" src=\"http:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-pvc-1024x375.jpg\" alt=\"\" width=\"910\" height=\"333\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-pvc-1024x375.jpg 1024w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-pvc-300x110.jpg 300w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-pvc-768x281.jpg 768w\" sizes=\"(max-width: 910px) 100vw, 910px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-710 aligncenter\" src=\"http:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-svc-1024x371.jpg\" alt=\"\" width=\"910\" height=\"330\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-svc-1024x371.jpg 1024w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-svc-300x109.jpg 300w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2020\/02\/pcf-svc-768x278.jpg 768w\" sizes=\"(max-width: 910px) 100vw, 910px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">En r\u00e9sum\u00e9, vSphere with Kubernetes (Projet Pacific) est une plate-forme permettant d&#8217;h\u00e9berger nativement des pods (containers) kubernetes, des VMs et des clusters Kubernetes \u00e0 la demande, offrant ainsi la possibilit\u00e9 de concilier les exigences de s\u00e9curit\u00e9, de performance, de r\u00e9silience et d&#8217;\u00e9volutivit\u00e9 souhait\u00e9e par l&#8217;administrateur de l&#8217;infrastructure et les exigences d&#8217;agilit\u00e9, de rapidit\u00e9 et de simplicit\u00e9 souhait\u00e9e par le d\u00e9veloppeur. Cette plate-forme peut h\u00e9berger une application compl\u00e8te m\u00eame si elle est compos\u00e9e de VM et de containers. Les investissements en terme financier et de comp\u00e9tence sur la plate-forme vSphere sont ainsi p\u00e9rennis\u00e9s.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">Les d\u00e9veloppeurs et les administrateurs continuent \u00e0 utiliser leurs outils habituels avec lesquels ils sont \u00e0 l&#8217;aise tout en travaillant sur une m\u00eame plate-forme.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: 'trebuchet ms', geneva, sans-serif;\">Cette plate-forme unique \u00e9volue en fonction des besoins en VM et en container. Les d\u00e9veloppeurs b\u00e9n\u00e9ficient de l&#8217;automatisation, de l&#8217;agilit\u00e9 et la souplesse qu&#8217;ils trouvent sur le cloud public et les administrateurs n&#8217;ont pas \u00e0 g\u00e9rer la complexit\u00e9 de gestion du cycle de vie inh\u00e9rente \u00e0 Kubernetes. C&#8217;est du <strong>Kubernetes as a Service<\/strong> int\u00e9grant les services de loadbalancing, de volumes persistants, de r\u00e9seau et de s\u00e9curit\u00e9.<br \/>\n<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>VMware vSphere with Kubernetes connu sous le nom de projet Pacific a \u00e9t\u00e9 annonc\u00e9 \u00e0 VMworld US 2019. Il fait partie des nombreuses nouvelles fonctionnalit\u00e9s de vSphere 7. Au moment de la r\u00e9daction de cet article il est encore en Beta mais j&#8217;ai eu l&#8217;occasion de l&#8217;installer \u00e0 plusieurs reprises et de faire une dizaine<\/p><\/div>\n<div class=\"blog-btn\"><a href=\"https:\/\/loeilduse.fr\/?p=693&#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":[22,111,5,112,1,9,48],"tags":[32,26,27,29,28,145,144,7,13,142,143,49,146],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/693"}],"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=693"}],"version-history":[{"count":35,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/693\/revisions"}],"predecessor-version":[{"id":775,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/693\/revisions\/775"}],"wp:attachment":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}