{"id":5125,"date":"2020-05-02T18:40:37","date_gmt":"2020-05-02T17:40:37","guid":{"rendered":"https:\/\/blog.fabianpiau.com\/?p=5125"},"modified":"2022-09-05T16:06:49","modified_gmt":"2022-09-05T15:06:49","slug":"flagger-get-started-with-istio-and-kubernetes","status":"publish","type":"post","link":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/","title":{"rendered":"Flagger &#8211; Premiers pas avec Istio et Kubernetes"},"content":{"rendered":"<p><a class=\"lang\" href=\"https:\/\/blog.fabianpiau.com\/en\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/\" title=\"Read in english\"><strong class=\"labellang\"><span class=\"en\">&nbsp;<\/span>English version available<\/strong><\/a><\/p>\n<div class=\"info\"><strong class=\"label\">Mise \u00e0 jour<\/strong><br \/>\n<strong>17 Octobre 2020 : <\/strong> Utilisation de versions plus r\u00e9centes (Helm 3, Kube 18, Istio 1.7).\n<\/div>\n<p>Cette s\u00e9rie d&rsquo;articles est consacr\u00e9e \u00e0 <a href=\"https:\/\/flagger.app\/\" target=\"_blank\" title=\"Flagger\" rel=\"noopener noreferrer\">Flagger<\/a>, un outil qui s&rsquo;int\u00e8gre \u00e0 l&rsquo;\u00e9cosyst\u00e8me de la plateforme d&rsquo;orchestration de container <a href=\"https:\/\/kubernetes.io\/\" target=\"_blank\" title=\"Kubernetes\" rel=\"noopener noreferrer\">Kubernetes<\/a> pour faire des d\u00e9ploiements automatis\u00e9s et sera un pas de plus en direction d&rsquo;un processus de d\u00e9ploiement continu.<\/p>\n<p>Cet article est le premier de la s\u00e9rie et aussi celui qui aborde le moins Flagger&#8230; Il vous permettra de prendre en main Kubernetes sur votre environnement local en d\u00e9ployant une application qui sera accessible par l&rsquo;interm\u00e9diaire d&rsquo;une passerelle <a href=\"https:\/\/istio.io\/\" target=\"_blank\" title=\"Istio\" rel=\"noopener noreferrer\">Istio<\/a>.<\/p>\n<div class=\"info\"><strong class=\"label\">Remarque<\/strong><br \/>\nCe guide est un \u00ab\u00a0hands-on\u00a0\u00bb et peut \u00eatre suivi pas \u00e0 pas par les utilisateurs sous MacOS. Il n\u00e9cessitera quelques ajustements si vous utilisez un PC sous Windows ou Linux. Il est important de signaler que cet article ne s&rsquo;attardera pas sur les concepts et technologies en d\u00e9tail donc si vous n&rsquo;\u00eates pas familier avec Docker, Kubernetes, Helm ou Istio, je vous conseille fortement de vous documenter avant de poursuivre votre lecture.\n<\/div>\n<p><br clear=\"none\" \/><\/p>\n<h4>Docker<\/h4>\n<p>Installez Docker en installant l&rsquo;application <a href=\"https:\/\/hub.docker.com\/editions\/community\/docker-ce-desktop-mac\/\" target=\"_blank\" title=\"Docker for Mac\" rel=\"noopener noreferrer\">Docker Desktop for Mac<\/a>, vous pouvez vous r\u00e9f\u00e9rer au <a href=\"https:\/\/docs.docker.com\/docker-for-mac\/install\/\" target=\"_blank\" title=\"Installer Docker for Mac\" rel=\"noopener noreferrer\">guide officiel d&rsquo;installation<\/a>. Pour les utilisateurs de Windows, l&rsquo;application \u00e9quivalente \u00ab\u00a0Docker for Windows\u00a0\u00bb existe.<\/p>\n<p>Pour la suite, nous allons \u00e9galement utiliser Docker for Mac pour mettre en place le cluster Kubernetes en local. Notez que ce tutoriel a \u00e9t\u00e9 test\u00e9 avec <a href=\"https:\/\/docs.docker.com\/docker-for-mac\/release-notes\/#docker-desktop-community-2400\" target=\"_blank\" title=\"Docker for Mac 2.4.0.0\" rel=\"noopener noreferrer\">Docker for Mac 2.4.0.0<\/a> qui embarque un cluster Kubernetes en version 1.18.8.<\/p>\n<blockquote><p>\nSi vous utilisez une version diff\u00e9rente, la technologie \u00e9volue rapidement et je ne peux donc pas garantir que les commandes utilis\u00e9es dans cette s\u00e9rie d&rsquo;articles fonctionneront sans ajustement.\n<\/p><\/blockquote>\n<p><br clear=\"none\" \/><\/p>\n<h4>Mirror HTTP Server<\/h4>\n<p>Quelques mots sur l&rsquo;application <a href=\"https:\/\/github.com\/eexit\/mirror-http-server\" target=\"_blank\" title=\"Mirror HTTP Server\" rel=\"noopener noreferrer\">Mirror HTTP Server<\/a> que nous allons utiliser dans cette s\u00e9rie d&rsquo;articles.<\/p>\n<p>MHS est une application JavaScript bas\u00e9e sur <a href=\"https:\/\/nodejs.org\/\" target=\"_blank\" title=\"Node.js\" rel=\"noopener noreferrer\">Node.js<\/a> utilisant le framework <a href=\"https:\/\/expressjs.com\/\" target=\"_blank\" title=\"Express\" rel=\"noopener noreferrer\">Express<\/a> tr\u00e8s simple qui permet de personnaliser la r\u00e9ponse HTTP re\u00e7ue en sp\u00e9cifiant des headers HTTP dans la requ\u00eate. L&rsquo;image Docker est <a href=\"https:\/\/hub.docker.com\/r\/eexit\/mirror-http-server\" target=\"_blank\" title=\"Mirror HTTP Server Docker Image\" rel=\"noopener noreferrer\">disponible publiquement sur le Docker Hub<\/a>. Vous pouvez consulter le <a href=\"https:\/\/github.com\/eexit\/mirror-http-server\" target=\"_blank\" title=\"Mirror HTTP Server\" rel=\"noopener noreferrer\">repo Github du projet<\/a> pour en savoir plus, notez que je n&rsquo;en suis pas l&rsquo;auteur.<\/p>\n<p>Cette mini application est exactement ce dont nous avons besoin pour tester les capacit\u00e9s de Flagger pour simuler des r\u00e9ponses 200 OK et des r\u00e9ponses 500 Internal Server Error.<\/p>\n<p>R\u00e9cup\u00e9rons l&rsquo;image Docker:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">docker<\/span> pull eexit\/mirror-http-server<br \/><\/div>\n\n<p>Lan\u00e7ons un container qui l&rsquo;utilise:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">docker<\/span> run -itp 8080:80 eexit\/mirror-http-server<br \/><\/div>\n\n<p>Puis testons son bon fonctionnement:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">curl<\/span> -I <span class=\"wp-shkshell-string\">'http:\/\/localhost:8080'<\/span><br \/><\/div>\n\n<p>Vous devriez recevoir une r\u00e9ponse HTTP 200 OK:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">HTTP<\/span>\/1.1 200 OK<br \/>X-Powered-By: Express<br \/>Date: Fri, 01 May 2020 17:57:17 GMT<br \/>Connection: keep-alive<br \/><\/div>\n\n<p>Alors que:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">curl<\/span> -I -H X-Mirror-Code:500 <span class=\"wp-shkshell-string\">'http:\/\/localhost:8080'<\/span><br \/><\/div>\n\n<p>retournera une r\u00e9ponse HTTP 500:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">HTTP<\/span>\/1.1 500 Internal Server Error<br \/>X-Powered-By: Express<br \/>Date: Fri, 01 May 2020 17:57:45 GMT<br \/>Connection: keep-alive<br \/><\/div>\n\n<blockquote><p>\nPour plus de simplicit\u00e9, nous utilisons la commande curl, mais vous pouvez utiliser votre outil pr\u00e9f\u00e9r\u00e9 comme <a href=\"https:\/\/www.postman.com\/\" target=\"_blank\" title=\"Postman\" rel=\"noopener noreferrer\">Postman<\/a>.\n<\/p><\/blockquote>\n<p><br clear=\"none\" \/><\/p>\n<h4>Kubernetes<\/h4>\n<p>Maintenant que vous avez install\u00e9 Docker for Mac, avoir un cluster Kubernetes qui tourne en local ne sera qu&rsquo;une simple formalit\u00e9. Il vous suffit de cocher une case!<\/p>\n<div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/docker-for-mac-enable-new.png?ssl=1\" rel=\"shadowbox[sbpost-5125];player=img;\" title=\"Activer Kubernetes avec Docker for Mac\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/docker-for-mac-enable-new-thumbnail.png?resize=550%2C349&#038;ssl=1\" alt=\"Activer Kubernetes avec Docker for Mac\" title=\"Activer Kubernetes avec Docker for Mac\" width=\"550\" height=\"349\" class=\"size-medium wp-image-257\" \/><\/a><p class=\"wp-caption-text\">Activer Kubernetes avec Docker for Mac<\/p><\/div>\n<p>Si la lumi\u00e8re est verte, alors votre cluster Kubernetes a d\u00e9marr\u00e9 avec succ\u00e8s. Attention, cela prend pas mal de ressources donc ne vous affolez pas si le ventilateur tourne \u00e0 plein r\u00e9gime et que cela prend un peu de temps pour d\u00e9marrer&#8230;<\/p>\n<p><br clear=\"none\" \/><\/p>\n<h4>Kube dashboard<\/h4>\n<p>Nous allons installer notre premi\u00e8re application dans notre cluster Kubernetes.<\/p>\n<p>Kubernetes via Docker ne fournit pas Kube dashboard par d\u00e9faut, vous devez l&rsquo;installer vous-m\u00eame. Ce tableau de bord est tr\u00e8s pratique et donne une vision graphique de ce que se passe dans votre cluster et vous \u00e9vitera d&rsquo;avoir \u00e0 saisir des commandes <code>kubectl<\/code>.<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> apply -f https:\/\/raw.githubusercontent.com\/kubernetes\/dashboard\/v2.0.4\/aio\/deploy\/recommended.yaml<br \/><\/div>\n\n<p>Le tableau de bord est prot\u00e9g\u00e9, mais vous pouvez utiliser l&rsquo;utilisateur par d\u00e9faut pour y acc\u00e9der. G\u00e9n\u00e9rez un token pour cet utilisateur:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> -n kube-system describe secret default <span class=\"wp-shkshell-special\">|<\/span> <span class=\"wp-shkshell-command\">grep<\/span> token: <span class=\"wp-shkshell-special\">|<\/span> <span class=\"wp-shkshell-command\">awk<\/span> <span class=\"wp-shkshell-string\">'{print <span class=\"wp-shkshell-variable\">$2<\/span>}'<\/span><br \/><\/div>\n\n<p>Copiez le token.<\/p>\n<blockquote><p>\nVous devrez r\u00e9utiliser cette commande et \/ ou le token copi\u00e9 si votre session a expir\u00e9, cela se produit lorsque vous n&rsquo;interagissez pas avec le tableau de bord pendant un petit moment.\n<\/p><\/blockquote>\n<p>Enfin, cr\u00e9er un proxy pour acc\u00e9der au tableau de bord \u00e0 partir du navigateur (cette commande devra s&rsquo;ex\u00e9cuter ind\u00e9finiment):<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> proxy<br \/><\/div>\n\n<p>Si vous acc\u00e9dez \u00e0 http:\/\/localhost:8001\/api\/v1\/namespaces\/kube-system\/services\/https:kubernetes-dashboard:\/proxy\/#!\/login et utilisez le token que vous avez copi\u00e9 pour vous authentifier, vous devriez voir cet \u00e9cran.<\/p>\n<div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/kube-dashboard-new.png?ssl=1\" rel=\"shadowbox[sbpost-5125];player=img;\" title=\"Tableau de bord Kubernetes\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/kube-dashboard-new-thumbnail.png?resize=550%2C316&#038;ssl=1\" alt=\"Tableau de bord Kubernetes\" title=\"Tableau de bord Kubernetes\" width=\"550\" height=\"316\" class=\"size-medium wp-image-257\" \/><\/a><p class=\"wp-caption-text\">Tableau de bord Kubernetes<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<h4>Helm<\/h4>\n<p>Nous utilisons <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" title=\"Homebrew\" rel=\"noopener noreferrer\">Homebrew<\/a> pour l&rsquo;installation de Helm. Homebrew est un  gestionnaire de paquets tr\u00e8s pratique disponible pour Mac.<\/p>\n<p>Nous allons utiliser <a href=\"https:\/\/helm.sh\/\" target=\"_blank\" title=\"Helm\" rel=\"noopener noreferrer\">Helm<\/a> pour installer Istio et l&rsquo;application MHS dans notre cluster. Helm est un peu l&rsquo;\u00e9quivalent de Homebrew, mais pour Kubernetes. Nous utilisons la version 3. Helm vous \u00e9vitera d&rsquo;avoir \u00e0 saisir de nombreuses commandes <code>kubectl apply<\/code>.<\/p>\n<p>Installons Helm 3 avec:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">brew<\/span> install helm@3<br \/><\/div>\n\n<p>Pour v\u00e9rifier que Helm a bien \u00e9t\u00e9 install\u00e9:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">helm<\/span> version<br \/><\/div>\n\n<p>Vous devriez avoir en sortie (notez que Helm 3.3.4 est la derni\u00e8re version au moment de la r\u00e9daction):<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">version<\/span>.BuildInfo{Version:\"v3.3.4\", GitCommit:\"a61ce5633af99708171414353ed49547cf05013d\", GitTreeState:\"dirty\", GoVersion:\"go1.15.2\"}<br \/><\/div>\n\n<p><br clear=\"none\" \/><\/p>\n<h4>Istio &#038; Prometheus<\/h4>\n<p>Maintenant, installons le Service Mesh Istio. Pour des explications et les avantages \u00e0 utiliser un Service Mesh, je vous invite \u00e0 lire la <a href=\"https:\/\/istio.io\/latest\/about\/service-mesh\/\" target=\"_blank\" title=\"Qu'est ce qu'Istio\" rel=\"noopener noreferrer\">documentation officielle<\/a>. <\/p>\n<p>Tout d&rsquo;abord, vous devez augmenter les limites de m\u00e9moire de votre Kubernetes via Docker, sinon vous allez rencontrer des probl\u00e8mes de d\u00e9ploiement. Vos ventilateurs vont s&rsquo;en remettre, ne vous inqui\u00e9tez pas&#8230;<\/p>\n<p>Voici ma configuration:<\/p>\n<div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/docker-for-mac-config-new.png?ssl=1\" rel=\"shadowbox[sbpost-5125];player=img;\" title=\"Configuration Kubernetes de Docker for Mac pour Istio\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/docker-for-mac-config-new-thumbnail.png?resize=550%2C349&#038;ssl=1\" alt=\"Configuration Kubernetes de Docker for Mac pour Istio\" title=\"Configuration Kubernetes de Docker for Mac pour Istio\" width=\"550\" height=\"349\" class=\"size-medium wp-image-257\" \/><\/a><p class=\"wp-caption-text\">Configuration Kubernetes de Docker for Mac pour Istio<\/p><\/div>\n<p>J&rsquo;ai suivi les <a href=\"https:\/\/istio.io\/latest\/docs\/setup\/platform-setup\/docker\/\" target=\"_blank\" title=\"Recommandations Docker Desktop pour Istio\" rel=\"noopener noreferrer\">recommandations Docker Desktop pour Istio<\/a>.<\/p>\n<p>Passons \u00e0 l&rsquo;installation d&rsquo;Istio 1.7.3 (la derni\u00e8re version au moment de la r\u00e9daction). Tout d&rsquo;abord, t\u00e9l\u00e9chargez les sources:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">curl<\/span> -L https:\/\/istio.io\/downloadIstio <span class=\"wp-shkshell-special\">|<\/span> <span class=\"wp-shkshell-command\">ISTIO_VERSION<\/span>=1.7.3 sh -<br \/><span class=\"wp-shkshell-prompt\"><\/span> <br \/><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">cd<\/span> istio-1.7.3<br \/><\/div>\n\n<p>Ajoutez le client <code>istioctl<\/code> \u00e0 votre path:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">export<\/span> PATH=<span class=\"wp-shkshell-variable\">$PWD<\/span>\/bin:<span class=\"wp-shkshell-variable\">$PATH<\/span><br \/><\/div>\n\n<p>Installez Istio avec le client fourni, on utilise le <a href=\"https:\/\/istio.io\/latest\/docs\/setup\/additional-setup\/config-profiles\/\" rel=\"noopener noreferrer\" title=\"Istio Installation Configuration Profiles\" target=\"_blank\">profil de d\u00e9mo<\/a>:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">istioctl<\/span> install --set profile=demo<br \/><\/div>\n\n<p>Apr\u00e8s quelques minutes, vous devriez avoir un message confirmant qu&rsquo;Istio a bien \u00e9t\u00e9 install\u00e9. Et voil\u00e0!<\/p>\n<blockquote><p>\nPour installer la derni\u00e8re version d&rsquo;Istio, vous pouvez simplement remplacer la premi\u00e8re ligne par <code>curl -L https:\/\/istio.io\/downloadIstio | sh -<\/code>.\n<\/p><\/blockquote>\n<p>Ajoutez Prometheus car c&rsquo;est un pr\u00e9requis pour Flagger:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> apply -f https:\/\/raw.githubusercontent.com\/istio\/istio\/release-1.7\/samples\/addons\/prometheus.yaml<br \/><\/div>\n\n<p>A partir du tableau de bord Kube, v\u00e9rifiez qu&rsquo;un nouveau namespace a \u00e9t\u00e9 cr\u00e9\u00e9 <code>istio-system<\/code> et qu&rsquo;il contient les outils Istio dont <a href=\"https:\/\/prometheus.io\/\" target=\"_blank\" title=\"Prometheus\" rel=\"noopener noreferrer\">Prometheus<\/a>.<\/p>\n<div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/istio-deployed-new.png?ssl=1\" rel=\"shadowbox[sbpost-5125];player=img;\" title=\"Istio est d\u00e9ploy\u00e9 dans votre cluster\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/istio-deployed-new-thumbnail.png?resize=550%2C316&#038;ssl=1\" alt=\"Istio est d\u00e9ploy\u00e9 dans votre cluster\" title=\"Istio est d\u00e9ploy\u00e9 dans votre cluster\" width=\"550\" height=\"316\" class=\"size-medium wp-image-257\" \/><\/a><p class=\"wp-caption-text\">Istio est d\u00e9ploy\u00e9 dans votre cluster<\/p><\/div>\n<blockquote><p>\nPourquoi Prometheus est-il important? Car c&rsquo;est un composant indispensable pour Flagger qui fournira les m\u00e9triques pour montrer si la nouvelle version de votre application est en bonne sant\u00e9 ou non et ainsi la promouvoir ou au contraire faire un rollback. Je reviendrais en d\u00e9tail sur tout cela dans le prochain article.\n<\/p><\/blockquote>\n<p><br clear=\"none\" \/><\/p>\n<h4>D\u00e9ploiement de Mirror HTTP Server<\/h4>\n<p>Avant de d\u00e9ployer MHS, cr\u00e9ons un nouveau namespace <code>application<\/code>, nous ne voulons pas utiliser celui par d\u00e9faut \u00e0 la racine du cluster (c&rsquo;est une bonne pratique). Le nom est un peu trop g\u00e9n\u00e9rique, mais suffisant pour ce tutoriel, en g\u00e9n\u00e9ral vous utiliserez le nom de l&rsquo;\u00e9quipe ou le nom d&rsquo;un regroupement de fonctionnalit\u00e9s.<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> create ns application<br \/><\/div>\n\n<p>N&rsquo;oublions pas d&rsquo;activer Istio sur ce nouveau namespace:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> label namespace application istio-injection=enabled<br \/><\/div>\n\n<p>Pour d\u00e9ployer MHS, j&rsquo;ai cr\u00e9\u00e9 un <a href=\"https:\/\/helm.sh\/docs\/topics\/charts\/\" target=\"_blank\" title=\"Helm Chart\" rel=\"noopener noreferrer\">Helm chart<\/a>.<\/p>\n<p><a href=\"https:\/\/github.com\/fabianpiau\/mhs-chart\" target=\"_blank\" title=\"MHS Helm Chart\" rel=\"noopener noreferrer\">Ce chart<\/a> a \u00e9t\u00e9 cr\u00e9\u00e9 avec la commande <code>helm create mhs-chart<\/code>, que j&rsquo;ai ensuite adapt\u00e9 pour <a href=\"https:\/\/github.com\/fabianpiau\/mhs-chart\/commit\/bb992384546ad2dfc231c6264629d23cea7203e4\" target=\"_blank\" title=\"Premier commit\" rel=\"noopener noreferrer\">r\u00e9cup\u00e9rer la derni\u00e8re image de MHS<\/a>. J&rsquo;ai \u00e9galement ajout\u00e9 un <a href=\"https:\/\/github.com\/fabianpiau\/mhs-chart\/commit\/ecbde2e254e8887b3ed73b081ea5a763860e6ce6\" target=\"_blank\" title=\"Second commit\" rel=\"noopener noreferrer\">fichier gateway.yaml pour la configuration de la passerelle Istio<\/a> afin que l&rsquo;application soit accessible en dehors du cluster.<\/p>\n<p>Clonez le repo contenant le chart:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">git<\/span> clone https:\/\/github.com\/fabianpiau\/mhs-chart.git<br \/><\/div>\n\n<p>Et installez MHS:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">cd<\/span> mhs-chart<br \/>helm install --name mhs --namespace application .\/mhs<br \/><\/div>\n\n<p>Apr\u00e8s quelques instants, si vous regardez le tableau de bord, vous devriez voir 1 replica de MHS dans le namespace <code>application<\/code>.<\/p>\n<div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/mhs-deployed-new.png?ssl=1\" rel=\"shadowbox[sbpost-5125];player=img;\" title=\"MHS est d\u00e9ploy\u00e9 dans votre cluster\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00095\/mhs-deployed-new-thumbnail.png?resize=550%2C316&#038;ssl=1\" alt=\"MHS est d\u00e9ploy\u00e9 dans votre cluster\" title=\"MHS est d\u00e9ploy\u00e9 dans votre cluster\" width=\"550\" height=\"316\" class=\"size-medium wp-image-257\" \/><\/a><p class=\"wp-caption-text\">MHS est d\u00e9ploy\u00e9 dans votre cluster<\/p><\/div>\n<p>Vous avez maintenant 1 pod de MHS en cours d&rsquo;ex\u00e9cution dans votre cluster Kubernetes. Le pod est expos\u00e9 au monde ext\u00e9rieur via une passerelle Istio.<\/p>\n<p>Pour tester, utilisons les commandes similaires pr\u00e9c\u00e9demment utilis\u00e9es contre le container docker:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">curl<\/span> -I -H Host:mhs.example.com <span class=\"wp-shkshell-string\">'http:\/\/localhost'<\/span><br \/><\/div>\n\n<p>Vous devriez recevoir une r\u00e9ponse HTTP 200 OK qui a \u00e9t\u00e9 manipul\u00e9 par le composant <a href=\"https:\/\/www.envoyproxy.io\/\" target=\"_blank\" title=\"Envoy proxy\" rel=\"noopener noreferrer\">Envoy<\/a>, le proxy utilis\u00e9 par Istio:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">HTTP<\/span>\/1.1 200 OK<br \/>x-powered-by: Express<br \/>date: Fri, 01 May 2020 17:37:19 GMT<br \/>x-envoy-upstream-service-time: 17<br \/>server: istio-envoy<br \/>transfer-encoding: chunked<br \/><\/div>\n\n<p>Et:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">curl<\/span> -I -H Host:mhs.example.com -H X-Mirror-Code:500 <span class=\"wp-shkshell-string\">'http:\/\/localhost'<\/span><br \/><\/div>\n\n<p>devrait retourner une r\u00e9ponse HTTP 500:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">HTTP<\/span>\/1.1 500 Internal Server Error<br \/>x-powered-by: Express<br \/>date: Fri, 01 May 2020 17:38:34 GMT<br \/>x-envoy-upstream-service-time: 2<br \/>server: istio-envoy<br \/>transfer-encoding: chunked<br \/><\/div>\n\n<p>F\u00e9licitations, vous \u00eates arriv\u00e9 \u00e0 la fin de ce premier tutoriel! <\/p>\n<blockquote><p>\nPour information, vous pouvez \u00e9galement acc\u00e9der \u00e0 MHS avec votre navigateur pr\u00e9f\u00e9r\u00e9 si vous ex\u00e9cutez d&rsquo;abord une commande proxy pour exposer le pod:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">export<\/span> POD_NAME=$(<span class=\"wp-shkshell-command\">kubectl<\/span> get pods --namespace application -l <span class=\"wp-shkshell-string\">\"app.kubernetes.io\/name=mhs,app.kubernetes.io\/instance=mhs\"<\/span> -o jsonpath=\"{.items[<span class=\"wp-shkshell-command\">0<\/span>].metadata.name}\")<br \/><span class=\"wp-shkshell-prompt\"><\/span> <br \/><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> port-forward --namespace application <span class=\"wp-shkshell-variable\">$POD_NAME<\/span> 8080:80<br \/><\/div>\n\n<p>Ensuite, acc\u00e9dez \u00e0 <a href=\"http:\/\/localhost:8080\/\" target=\"_blank\" title=\"Localhost MHS\" rel=\"noopener noreferrer\">http:\/\/localhost:8080\/<\/a>.<\/p>\n<p>Vous devriez voir une&#8230; page blanche. C&rsquo;est normal, MHS ne renvoie aucun body dans la r\u00e9ponse, il n&rsquo;y a aucune sortie HTML!\n<\/p><\/blockquote>\n<p><br clear=\"none\" \/><\/p>\n<h4>Nettoyage des ressources<\/h4>\n<p>Vous pouvez supprimer l&rsquo;application MHS et son namespace.<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">helm<\/span> delete mhs --namespace application<br \/><span class=\"wp-shkshell-prompt\"><\/span> <br \/><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> delete namespaces application<br \/><\/div>\n\n<p>Nous ne supprimons pas Istio \/ Prometheus car nous en aurons besoin dans le prochain article, mais si vous souhaitez lib\u00e9rer des ressources, vous pouvez utiliser ces commandes:<\/p>\n\n<div class=\"wp-shkshell\"><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> delete -f https:\/\/raw.githubusercontent.com\/istio\/istio\/release-1.7\/samples\/addons\/prometheus.yaml<br \/><span class=\"wp-shkshell-prompt\"><\/span> <br \/><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">istioctl<\/span> manifest generate --set profile=demo <span class=\"wp-shkshell-special\">|<\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> delete -f -<br \/><span class=\"wp-shkshell-prompt\"><\/span> <br \/><span class=\"wp-shkshell-prompt\"><\/span> <span class=\"wp-shkshell-command\">kubectl<\/span> delete namespaces istio-system<br \/><\/div>\n\n<p><br clear=\"none\" \/><\/p>\n<h4>Et apr\u00e8s?<\/h4>\n<p>Le <a href=\"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/19\/flagger-canary-deployments-on-kubernetes\/\" rel=\"noopener\" title=\"Flagger \u2013 D\u00e9ploiements Canary sur Kubernetes\">prochain article<\/a> d\u00e9taillera l&rsquo;installation de Flagger et son utilisation via des d\u00e9ployments de type \u00ab\u00a0canary release\u00a0\u00bb de diff\u00e9rentes versions de MHS. Stay tuned! En attendant, vous pouvez arr\u00eater le cluster Kubernetes en d\u00e9cochant la case et red\u00e9marrant Docker Desktop. Votre ordinateur peut prendre une pause m\u00e9rit\u00e9e.<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;English version available Mise \u00e0 jour 17 Octobre 2020 : Utilisation de versions plus r\u00e9centes (Helm 3, Kube 18, Istio 1.7). Cette s\u00e9rie d&rsquo;articles est consacr\u00e9e \u00e0 Flagger, un outil qui s&rsquo;int\u00e8gre \u00e0 l&rsquo;\u00e9cosyst\u00e8me de la plateforme d&rsquo;orchestration de container Kubernetes pour faire des d\u00e9ploiements automatis\u00e9s et sera un pas de plus en direction d&rsquo;un [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[110,292,289,291,290,288],"class_list":["post-5125","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile-programming","tag-cloud","tag-docker","tag-flagger","tag-helm","tag-istio","tag-kubernetes"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Flagger - Premiers pas avec Istio et Kubernetes | CarmaBlog<\/title>\n<meta name=\"description\" content=\"&nbsp;English version available Mise \u00e0 jour 17 Octobre 2020 : Utilisation de versions plus r\u00e9centes (Helm 3, Kube 18, Istio 1.7). Cette s\u00e9rie d&#039;articles\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flagger - Premiers pas avec Istio et Kubernetes | CarmaBlog\" \/>\n<meta property=\"og:description\" content=\"&nbsp;English version available Mise \u00e0 jour 17 Octobre 2020 : Utilisation de versions plus r\u00e9centes (Helm 3, Kube 18, Istio 1.7). Cette s\u00e9rie d&#039;articles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"CarmaBlog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-02T17:40:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-05T15:06:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fabian Piau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:site\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabian Piau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/\"},\"author\":{\"name\":\"Fabian Piau\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"headline\":\"Flagger &#8211; Premiers pas avec Istio et Kubernetes\",\"datePublished\":\"2020-05-02T17:40:37+00:00\",\"dateModified\":\"2022-09-05T15:06:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/\"},\"wordCount\":2897,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1\",\"keywords\":[\"cloud\",\"docker\",\"flagger\",\"helm\",\"istio\",\"kubernetes\"],\"articleSection\":[\"Programmation agile\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.fabianpiau.com\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/\",\"name\":\"Flagger - Premiers pas avec Istio et Kubernetes | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1\",\"datePublished\":\"2020-05-02T17:40:37+00:00\",\"dateModified\":\"2022-09-05T15:06:49+00:00\",\"description\":\"&nbsp;English version available Mise \u00e0 jour 17 Octobre 2020 : Utilisation de versions plus r\u00e9centes (Helm 3, Kube 18, Istio 1.7). Cette s\u00e9rie d'articles\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1\",\"width\":300,\"height\":300,\"caption\":\"kubernetes\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2020\\\/05\\\/02\\\/flagger-get-started-with-istio-and-kubernetes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmation agile\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/category\\\/agile-programming\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Flagger &#8211; Get Started with Istio and Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agilit\u00e9, D\u00e9veloppement Java, Nouvelles technologies et plus...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"width\":567,\"height\":667,\"caption\":\"Fabian Piau\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\"},\"description\":\"D\u00e9veloppeur Java, Fabian s'int\u00e9resse aux nouvelles technologies et plus particuli\u00e8rement \u00e0 leur utilisation dans un contexte agile.\",\"sameAs\":[\"https:\\\/\\\/blog.fabianpiau.com\",\"https:\\\/\\\/www.facebook.com\\\/fabian.piau\",\"https:\\\/\\\/www.instagram.com\\\/fabianpiau\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fabianpiau\\\/\",\"https:\\\/\\\/x.com\\\/fabianpiau\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Flagger - Premiers pas avec Istio et Kubernetes | CarmaBlog","description":"&nbsp;English version available Mise \u00e0 jour 17 Octobre 2020 : Utilisation de versions plus r\u00e9centes (Helm 3, Kube 18, Istio 1.7). Cette s\u00e9rie d'articles","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/","og_locale":"fr_FR","og_type":"article","og_title":"Flagger - Premiers pas avec Istio et Kubernetes | CarmaBlog","og_description":"&nbsp;English version available Mise \u00e0 jour 17 Octobre 2020 : Utilisation de versions plus r\u00e9centes (Helm 3, Kube 18, Istio 1.7). Cette s\u00e9rie d'articles","og_url":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/","og_site_name":"CarmaBlog","article_publisher":"https:\/\/www.facebook.com\/fabian.piau","article_author":"https:\/\/www.facebook.com\/fabian.piau","article_published_time":"2020-05-02T17:40:37+00:00","article_modified_time":"2022-09-05T15:06:49+00:00","og_image":[{"width":300,"height":300,"url":"https:\/\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png","type":"image\/png"}],"author":"Fabian Piau","twitter_card":"summary_large_image","twitter_creator":"@fabianpiau","twitter_site":"@fabianpiau","twitter_misc":{"\u00c9crit par":"Fabian Piau","Dur\u00e9e de lecture estim\u00e9e":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.fabianpiau.com\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/#article","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/"},"author":{"name":"Fabian Piau","@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"headline":"Flagger &#8211; Premiers pas avec Istio et Kubernetes","datePublished":"2020-05-02T17:40:37+00:00","dateModified":"2022-09-05T15:06:49+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/"},"wordCount":2897,"commentCount":0,"publisher":{"@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1","keywords":["cloud","docker","flagger","helm","istio","kubernetes"],"articleSection":["Programmation agile"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.fabianpiau.com\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/","url":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/","name":"Flagger - Premiers pas avec Istio et Kubernetes | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1","datePublished":"2020-05-02T17:40:37+00:00","dateModified":"2022-09-05T15:06:49+00:00","description":"&nbsp;English version available Mise \u00e0 jour 17 Octobre 2020 : Utilisation de versions plus r\u00e9centes (Helm 3, Kube 18, Istio 1.7). Cette s\u00e9rie d'articles","breadcrumb":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/"]]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1","width":300,"height":300,"caption":"kubernetes"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.fabianpiau.com\/fr\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Programmation agile","item":"https:\/\/blog.fabianpiau.com\/fr\/category\/agile-programming\/"},{"@type":"ListItem","position":3,"name":"Flagger &#8211; Get Started with Istio and Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/fr\/#website","url":"https:\/\/blog.fabianpiau.com\/fr\/","name":"CarmaBlog","description":"Agilit\u00e9, D\u00e9veloppement Java, Nouvelles technologies et plus...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/fr\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","width":567,"height":667,"caption":"Fabian Piau"},"logo":{"@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1"},"description":"D\u00e9veloppeur Java, Fabian s'int\u00e9resse aux nouvelles technologies et plus particuli\u00e8rement \u00e0 leur utilisation dans un contexte agile.","sameAs":["https:\/\/blog.fabianpiau.com","https:\/\/www.facebook.com\/fabian.piau","https:\/\/www.instagram.com\/fabianpiau\/","https:\/\/www.linkedin.com\/in\/fabianpiau\/","https:\/\/x.com\/fabianpiau"]}]}},"views":1475,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?fit=300%2C300&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbSHyl-1kF","_links":{"self":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts\/5125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/comments?post=5125"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts\/5125\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/media\/5126"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/media?parent=5125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/categories?post=5125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/tags?post=5125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}