{"id":37775,"date":"2018-10-22T22:39:55","date_gmt":"2018-10-22T19:39:55","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=37775"},"modified":"2018-10-23T23:40:57","modified_gmt":"2018-10-23T20:40:57","slug":"using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/","title":{"rendered":"Using Istio to Unify Microservices with a Service Mesh on Kubernetes"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#The_lack_of_common_infrastructure\" >The lack of common infrastructure<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#Added_control_with_a_service_mesh_based_on_Istio\" >Added control with a service mesh based on Istio<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#More_features_for_enterprises\" >More features for enterprises<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#Want_details_Watch_the_video\" >Want details? Watch the video!<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#Related_video_and_slides\" >Related video and slides<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#About_the_expert\" >About the expert<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"The_lack_of_common_infrastructure\"><\/span>The lack of common infrastructure<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In a typical Kubernetes environment, services related to tracing, load balancing, telemetry, routing logic, etc. are frequently used but are not shared. This means a microservices developer will have to write his own set of logic to enable shared functionalities.<\/p>\n<p>At a recent <a href=\"https:\/\/www.meetup.com\/Denver-Cloud-Native-and-Kubernetes-Meetup\/events\/252630289\/\" rel=\"noopener\" target=\"_blank\">Kubernetes meetup<\/a> in Denver, <a href=\"https:\/\/www.linkedin.com\/in\/neeraj-poddar-bb392a9\/\" rel=\"noopener\" target=\"_blank\">Neeraj Poddar<\/a> of Aspen Mesh brought up this very problem, which DevOps teams face when dealing with microservices.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37776\" \/><\/a><small>Microservice stacks are completely separate in a typical environment (<a href=\"https:\/\/www.slideshare.net\/secret\/GbLzoPNSELEupR\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>&#8220;If I&#8217;m an operator and I want to make sure that all the requests are sent the same way, I have to either go and make sure that application developers are listening to me to ensure that or going to be tough for me to debug things,&#8221; explained Neeraj. This way, a developer is not only concerned with building a business logic itself, but also the logic responsible for communication between microservices, which is an additional trouble in terms of effort and time.<\/p>\n<blockquote><p><em>&#8220;Imagine you&#8217;re an operator, and you have hundreds of these microservices, which have their own unique stack. There are various problems, which come up in trying to ensure uniformity across them.&#8221; \u2014Neeraj Poddar, Aspen Mesh<\/em><\/p><\/blockquote>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-Neeraj-Poddar.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-Neeraj-Poddar-1024x576.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37777\" \/><\/a><small>Neeraj Poddar at the Kubernetes meetup in Denver<\/small><\/center><\/p>\n<p>Neeraj then illustrated how this problem can be resolved through building a unified <a href=\"https:\/\/en.wikipedia.org\/wiki\/Microservices#Service_Mesh\" rel=\"noopener\" target=\"_blank\">service mesh<\/a> using the <a href=\"https:\/\/istio.io\/latest\/about\/service-mesh\/\" rel=\"noopener\" target=\"_blank\">Istio<\/a> platform.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Added_control_with_a_service_mesh_based_on_Istio\"><\/span>Added control with a service mesh based on Istio<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A <em>service mesh<\/em> is a configurable infrastructure layer that handles interactions between microservices. Commonly, a service mesh is implemented as a proxy in each container. In this scenario, the proxy is responsible for intercepting traffic that goes in and out of the application and then applies policies and functionalities that have been configured.<\/p>\n<blockquote><p><em>&#8220;A service mesh is essentially a common infrastructure fabric for handling communication between microservices. As an operator, you get back the control you want where you can insert uniform policies. As a developer, you don&#8217;t need to write extra logic.&#8221; \u2014Neeraj Poddar, Aspen Mesh<\/em><\/p><\/blockquote>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37785\" \/><\/a><small>All service-to-service traffic takes place on the service mesh (<a href=\"https:\/\/www.slideshare.net\/secret\/GbLzoPNSELEupR\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>The <a href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-advisory-board-meeting-aug-2018-istio-and-eirini\/\">Istio<\/a> project is an open-source service-mesh architechture launched by Google, IBM, and Lyft. In Istio, the method of installing a proxy is called <a href=\"https:\/\/istio.io\/latest\/docs\/setup\/kubernetes\/sidecar-injection\/\" rel=\"noopener\" target=\"_blank\">sidecar<\/a>. Using this method, the proxy is installed as close as possible to the application. According to Neeraj, from the outside, you have a single view of the networking and security perspective, and you can also manage the life cycle of the proxy and the application container.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v3.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v3-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37791\" \/><\/a><small>Istio deploys an extended version of <a href=\"https:\/\/istio.io\/latest\/about\/service-mesh\/#envoy\" rel=\"noopener\" target=\"_blank\">Envoy<\/a> as its sidecar proxy (<a href=\"https:\/\/www.slideshare.net\/secret\/GbLzoPNSELEupR\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<blockquote><p><em>&#8220;In Kubernetes, this means your sidecar proxy and your application container are both part of the same pod. As they are in the same pod, they are part of the same networking name space. From the outside, it feels like you&#8217;re talking to a single entity.&#8221; \u2014Neeraj Poddar<\/em><\/p><\/blockquote>\n<p>Additionally, Istio separates the service mesh into two parts:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">The <strong>control plane<\/strong> manages and configures the proxies to route traffic.<\/li>\n<li>The <strong>data plane <\/strong> is made up of the <a href=\"https:\/\/istio.io\/latest\/about\/service-mesh\/#envoy\" rel=\"noopener\" target=\"_blank\">Envoy<\/a> proxies which are deployed as sidecars. These proxies manage traffic and communications between microservices and the <a href=\"https:\/\/istio.io\/latest\/about\/service-mesh\/#mixer\" rel=\"noopener\" target=\"_blank\">Mixer<\/a>, a component responsible for policy controls and telemetry collection.<\/li>\n<\/ul>\n<p>Istio&#8217;s control plane is composed of the following components:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\"><strong>Pilot<\/strong> provides service discovery for the Envoy proxies, traffic management capabilities for intelligent routing, and resiliency. Basically, it&#8217;s an abstraction layer, which allows operators to configure Istio using their platform-native language without worrying about the data plane.<\/li>\n<li style=\"margin-bottom: 6px;\"><strong>Mixer<\/strong> is where policy is reinforced, quota or rates are limited, and telemetry is collected from the Envoy proxies.<\/li>\n<li style=\"margin-bottom: 6px;\"><strong>Citadel<\/strong> provides service-to-service and end-user authentication with built-in identity and credential management. All the Envoy proxies get their own certificates and keys based on the service accounts.<\/li>\n<li><strong>Sidecar injector<\/strong> is a Kubernetes webhook, which automates the insertion of the Envoy proxies. According to Neeraj, the sidecar injector looks at all the pods coming from the cluster and automatically inserts sidecar.<\/li>\n<\/ul>\n<blockquote><p><em>&#8220;Istio has a nice separation between control and data plane. This ensures that you can scale and upgrade them independently. Additionally, the Istio&#8217;s control plane itself is split up into various components based on functionality, which makes it possible for an operator to scale and upgrade them independently.&#8221; \u2014Neeraj Poddar, Aspen Mesh<\/em><\/p><\/blockquote>\n<p>Istio is being actively developed. The project&#8217;s progress can be tracked in <a href=\"https:\/\/github.com\/istio\/\" rel=\"noopener\" target=\"_blank\">its GitHub<\/a>. The Istio community also maintains quite extensive <a href=\"https:\/\/istio.io\/latest\/docs\/\" rel=\"noopener\" target=\"_blank\">documentation<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"More_features_for_enterprises\"><\/span>More features for enterprises<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>After an overview of a service mesh built with Istio, Neeraj introduced <a href=\"https:\/\/aspenmesh.io\/\" rel=\"noopener\" target=\"_blank\">Aspen Mesh<\/a>\u2014a supportive solution placed on top of Istio. Aspen Mesh runs in a Kubernetes cluster and feeds metadata to the cloud.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/kubernetes-meetup-aspen-mesh-service-istio-envoy-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/kubernetes-meetup-aspen-mesh-service-istio-envoy-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-37868\" \/><\/a><small>How Aspen Mesh interacts with a Kubernetes cluster (<a href=\"https:\/\/aspenmesh.io\/what-aspen-mesh-adds-to-istio\/\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>Aspen Mesh incorporates hosted Jaeger, Prometheus, and Grafana to provide the following enterprise features to Istio:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">added visibility into applications to see actual performance<\/li>\n<li style=\"margin-bottom: 6px;\">enforced compliance and security standards to keep services available<\/li>\n<li>integrated charts in the hosted Aspen Dashboard to provide insights across the microservices environment<\/li>\n<\/ul>\n<blockquote><p><em>&#8220;Aspen Mesh gives you insights on what is happening to your mesh, your cluster, as well as reduces the time it takes to detect failures and fix them. It also builds APIs on top of Istio for configuring security in your cluster.&#8221; \u2014Neeraj Poddar<\/em><\/p><\/blockquote>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-Neeraj-Poddar-v2.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-Neeraj-Poddar-v2-1024x576.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37825\" \/><\/a><small>Neeraj Poddar at the Kubernetes meetup in Denver<\/small><\/center><\/p>\n<p>As microservices evolve and gain popularity with organizations shifting away from monolithic systems, such tools as Istio are useful to ease the transition. It is likely that more solutions like that will appear soon to add more features for enterprise use.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Want_details_Watch_the_video\"><\/span>Want details? Watch the video!<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<div style=\"float: right; width: 45%; padding-left: 15px; font-size: 14px;\">\n<p><strong>Table of contents<\/strong><\/p>\n<ol>\n<li style=\"margin-bottom: 12px;\">What does a typical microservices environment look like? (<a href=\"#wistia_xkvdhv6ah7?time=94\">1&#8217;34&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 12px;\">What is a service mesh? (<a href=\"#wistia_xkvdhv6ah7?time=230\">3&#8217;50&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 12px;\">What are the components of Istio? (<a href=\"#wistia_xkvdhv6ah7?time=280\">4&#8217;40&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 12px;\">What does Istio do? (<a href=\"#wistia_xkvdhv6ah7?time=775\">12&#8217;55&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 12px;\">What is Aspen Mesh? (<a href=\"#wistia_xkvdhv6ah7?time=1190\">19&#8217;50&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 12px;\">Demo: Aspen Mesh (<a href=\"#wistia_xkvdhv6ah7?time=1405\">23&#8217;25&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 12px;\">Questions and answers (<a href=\"#wistia_xkvdhv6ah7?time=1875\">31&#8217;15&#8221;<\/a>)<\/li>\n<\/ol>\n<\/div>\n<p><script charset=\"ISO-8859-1\" src=\"\/\/fast.wistia.com\/assets\/external\/E-v1.js\" async><\/script><\/p>\n<div class=\"wistia_embed wistia_async_xkvdhv6ah7\" style=\"height:320px;width:440px\">&nbsp;<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><small>You can also check out the full presentation delivered by Neeraj.<\/small><\/p>\n<p><center><iframe loading=\"lazy\" src=\"https:\/\/www.slideshare.net\/slideshow\/embed_code\/key\/GbLzoPNSELEupR\" width=\"427\" height=\"356\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen> <\/iframe><\/strong> <\/div>\n<p><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Related_video_and_slides\"><\/span>Related video and slides<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><small>Following the session by Neeraj, <a href=\"https:\/\/www.linkedin.com\/in\/bmorphism\/\" rel=\"noopener\" target=\"_blank\">Barton Rhodes<\/a>, CTO and chief machine learning engineer at Optfit LLC, delivered a demo of <a href=\"https:\/\/www.altoros.com\/blog\/kubeflow-automating-deployment-of-tensorflow-models-on-kubernetes\/\">Kubeflow<\/a>\u2014a tool for deploying machine learning models on Kubernetes\u2014in action.<\/small><\/p>\n<p><center><script src=\"https:\/\/fast.wistia.com\/embed\/medias\/szjaoiuiod.jsonp\" async><\/script><script src=\"https:\/\/fast.wistia.com\/assets\/external\/E-v1.js\" async><\/script><\/p>\n<div class=\"wistia_embed wistia_async_szjaoiuiod\" style=\"height:360px;position:relative;width:640px\">\n<div class=\"wistia_swatch\" style=\"height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;\"><img decoding=\"async\" src=\"https:\/\/fast.wistia.com\/embed\/medias\/szjaoiuiod\/swatch\" style=\"filter:blur(5px);height:100%;object-fit:contain;width:100%;\" alt=\"\" onload=\"this.parentNode.style.opacity=1;\" \/><\/div>\n<\/div>\n<p><\/center><\/p>\n<p>&nbsp;<\/p>\n<p><small>You can also browse through Barton&#8217;s slides below.<\/small><\/p>\n<p><center><iframe loading=\"lazy\" src=\"\/\/www.slideshare.net\/slideshow\/embed_code\/key\/dIC9mfq8qspK7G\" width=\"595\" height=\"485\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen> <\/iframe><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-advisory-board-meeting-aug-2018-istio-and-eirini\/\">Cloud Foundry Advisory Board Meeting, Aug 2018: Istio and Eirini<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/kubernetes-cluster-ops-options-for-configuration-management\/\">Kubernetes Cluster Ops: Options for Configuration Management<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_expert\"><\/span>About the expert<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div>\n<div style=\"float: right;\"><a href=\"https:\/\/www.linkedin.com\/in\/neeraj-poddar-bb392a9\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Neeraj-Poddar-Aspen-Mesh-bio.png\" alt=\"\" width=\"130\" height=\"130\" class=\"aligncenter size-full wp-image-37819\" \/><\/a><\/div>\n<div style=\"width: 600px;\"><small><a href=\"https:\/\/www.linkedin.com\/in\/neeraj-poddar-bb392a9\/\" rel=\"noopener\" target=\"_blank\">Neeraj Poddar<\/a> is the Platform Lead at Aspen Mesh. He has worked on various aspects of operating systems, networking, and distributed systems over the span of his career. He is passionate about developing efficient and performant distributed applications. In his free time, Neeraj loves to play racquetball and gain back the calories spent playing by trying out new restaurants.<\/small><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<hr\/>\n<p><center><small>The post is written by <a href=\"https:\/\/www.altoros.com\/blog\/author\/carlo\/\">Carlo Gutierrez<\/a>, edited by <a href=\"https:\/\/www.altoros.com\/blog\/author\/sophie.turol\/\">Sophia Turol<\/a> and <a href=\"https:\/\/www.altoros.com\/blog\/author\/alex\/\">Alex Khizhniak<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The lack of common infrastructure<\/p>\n<p>In a typical Kubernetes environment, services related to tracing, load balancing, telemetry, routing logic, etc. are frequently used but are not shared. This means a microservices developer will have to write his own set of logic to enable shared functionalities.<\/p>\n<p>At a recent Kubernetes meetup in Denver, [&#8230;]<\/p>\n","protected":false},"author":32,"featured_media":37867,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[873,912,146],"class_list":["post-37775","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-and-opinion","tag-cloud-native","tag-kubernetes","tag-microservices"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using Istio to Unify Microservices with a Service Mesh on Kubernetes | Altoros<\/title>\n<meta name=\"description\" content=\"Microservices management can get challenging as the number of the elements increases. Learn how Istio can reduce the burdens of a service mesh.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Istio to Unify Microservices with a Service Mesh on Kubernetes | Altoros\" \/>\n<meta property=\"og:description\" content=\"The lack of common infrastructure In a typical Kubernetes environment, services related to tracing, load balancing, telemetry, routing logic, etc. are frequently used but are not shared. This means a microservices developer will have to write his own set of logic to enable shared functionalities. At a recent Kubernetes meetup in Denver, [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-22T19:39:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-10-23T20:40:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Carlo Gutierrez\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Gutierrez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/\"},\"author\":{\"name\":\"Carlo Gutierrez\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/833e109f77de753b2b472dca0236b442\"},\"headline\":\"Using Istio to Unify Microservices with a Service Mesh on Kubernetes\",\"datePublished\":\"2018-10-22T19:39:55+00:00\",\"dateModified\":\"2018-10-23T20:40:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/\"},\"wordCount\":1137,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/10\\\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif\",\"keywords\":[\"Cloud-Native\",\"Kubernetes\",\"Microservices\"],\"articleSection\":[\"News\\\/Opinion\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/\",\"name\":\"Using Istio to Unify Microservices with a Service Mesh on Kubernetes | Altoros\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/10\\\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif\",\"datePublished\":\"2018-10-22T19:39:55+00:00\",\"dateModified\":\"2018-10-23T20:40:57+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/833e109f77de753b2b472dca0236b442\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/10\\\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/10\\\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Istio to Unify Microservices with a Service Mesh on Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/833e109f77de753b2b472dca0236b442\",\"name\":\"Carlo Gutierrez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/CG_portrait-2-96x96.jpg\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/CG_portrait-2-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/CG_portrait-2-96x96.jpg\",\"caption\":\"Carlo Gutierrez\"},\"description\":\"Carlo Gutierrez is a Technical Writer at Altoros. As part of the editorial team, his focus has been on emerging technologies such as Cloud Foundry, Kubernetes, blockchain, and the Internet of Things. Prior to Altoros, he primarily wrote about enterprise and consumer technology. Carlo has over 12 years of experience in the publishing industry. Previously, he served as an Editor for PC World Philippines and Questex Asia, as well as a Designer for Tropa Entertainment.\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/author\\\/carlo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using Istio to Unify Microservices with a Service Mesh on Kubernetes | Altoros","description":"Microservices management can get challenging as the number of the elements increases. Learn how Istio can reduce the burdens of a service mesh.","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:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/","og_locale":"en_US","og_type":"article","og_title":"Using Istio to Unify Microservices with a Service Mesh on Kubernetes | Altoros","og_description":"The lack of common infrastructure In a typical Kubernetes environment, services related to tracing, load balancing, telemetry, routing logic, etc. are frequently used but are not shared. This means a microservices developer will have to write his own set of logic to enable shared functionalities. At a recent Kubernetes meetup in Denver, [...]","og_url":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/","og_site_name":"Altoros","article_published_time":"2018-10-22T19:39:55+00:00","article_modified_time":"2018-10-23T20:40:57+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif","type":"image\/gif"}],"author":"Carlo Gutierrez","twitter_misc":{"Written by":"Carlo Gutierrez","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#article","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/"},"author":{"name":"Carlo Gutierrez","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442"},"headline":"Using Istio to Unify Microservices with a Service Mesh on Kubernetes","datePublished":"2018-10-22T19:39:55+00:00","dateModified":"2018-10-23T20:40:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/"},"wordCount":1137,"commentCount":0,"image":{"@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif","keywords":["Cloud-Native","Kubernetes","Microservices"],"articleSection":["News\/Opinion"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/","url":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/","name":"Using Istio to Unify Microservices with a Service Mesh on Kubernetes | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif","datePublished":"2018-10-22T19:39:55+00:00","dateModified":"2018-10-23T20:40:57+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Kubernetes-Istio-Service-Mesh-Aspen-Microservices-v2.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/using-istio-to-unify-microservices-with-a-service-mesh-on-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Istio to Unify Microservices with a Service Mesh on Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442","name":"Carlo Gutierrez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","caption":"Carlo Gutierrez"},"description":"Carlo Gutierrez is a Technical Writer at Altoros. As part of the editorial team, his focus has been on emerging technologies such as Cloud Foundry, Kubernetes, blockchain, and the Internet of Things. Prior to Altoros, he primarily wrote about enterprise and consumer technology. Carlo has over 12 years of experience in the publishing industry. Previously, he served as an Editor for PC World Philippines and Questex Asia, as well as a Designer for Tropa Entertainment.","url":"https:\/\/www.altoros.com\/blog\/author\/carlo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/37775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=37775"}],"version-history":[{"count":68,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/37775\/revisions"}],"predecessor-version":[{"id":38020,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/37775\/revisions\/38020"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/37867"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=37775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=37775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=37775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}