{"id":16882,"date":"2024-01-09T12:24:27","date_gmt":"2024-01-09T06:54:27","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=16882"},"modified":"2024-01-09T12:24:27","modified_gmt":"2024-01-09T06:54:27","slug":"step-by-step-guide-to-setup-istio","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2024\/01\/09\/step-by-step-guide-to-setup-istio\/","title":{"rendered":"Step-by-Step Guide to Setup Istio"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"582\" height=\"295\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2024\/01\/istio.png?w=582\" alt=\"\" class=\"wp-image-16896\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Understanding Istio and Service Mesh<\/h2>\n\n\n\n<p>Istio is a powerful service mesh designed to manage communication between individual microservices seamlessly. Before diving into Istio, let&#8217;s grasp the concept of a service mesh.<\/p>\n\n\n\n<p><strong>Service Mesh<\/strong>: A service mesh is a dedicated infrastructure layer that manages communication between microservices. It offers features like load balancing, service discovery, encryption, fault tolerance, traffic management, and more, making it an indispensable component for organizations navigating the complexities of distributed systems.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Istio Architecture<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"499\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2024\/01\/screenshot-2024-01-09-120827.png?w=800\" alt=\"\" class=\"wp-image-16956\" \/><\/figure>\n\n\n\n<p>In earlier versions (pre v1.5), Istio consisted of multiple components like Pilot, Citadel, Galley, and Mixer. Post v1.5, these components were consolidated into a single component called <code>Istiod<\/code>, simplifying operational management.<\/p>\n\n\n\n<p><strong>Istio Components<\/strong>:<\/p>\n\n\n\n<ul>\n<li><strong>Control Plane<\/strong>: The Istio control plane is managed by the <code>istiod<\/code> component. It handles the management and injection of Envoy proxies into each microservice.<\/li>\n\n\n\n<li><strong>Data Plane<\/strong>: This comprises all Envoy proxies responsible for routing and managing traffic.<\/li>\n<\/ul>\n\n\n\n<p>Additionally, one crucial component integral to Istio&#8217;s functioning is the <strong>Envoy Proxy<\/strong>.<\/p>\n\n\n\n<p><strong>Envoy Proxy:<\/strong> Envoy is a high-performance, open-source proxy that plays a pivotal role in Istio&#8217;s architecture. It&#8217;s deployed alongside your microservices to manage and control the flow of traffic between them.<\/p>\n\n\n\n<p>While Istiod handles the control plane, managing the configuration and policies, Envoy operates in the data plane, actively handling the actual data traffic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Key Features of Istio Configuration<\/h2>\n\n\n\n<ol>\n<li><strong>No Modification to Deployments and Services<\/strong>: Istio allows you to keep your Kubernetes manifest for Deployments and Services untouched.<\/li>\n\n\n\n<li>Separation of Configuration: The Istio configuration is kept separate from the application configuration.<\/li>\n\n\n\n<li><strong>CustomResourceDefinitions (CRD)<\/strong>: Istio leverages CRDs for third-party technologies, promoting extensibility.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Setting Up Istio in Kubernetes Cluster<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Download Istio<\/h3>\n\n\n\n<p>Download the latest release of Istio using the following command:<\/p>\n\n\n\n<p><code>curl -L https:\/\/istio.io\/downloadIstio | sh -<\/code><\/p>\n\n\n\n<p>You can specify variables to download a specific version:<\/p>\n\n\n\n<p><code>curl -L https:\/\/istio.io\/downloadIstio | ISTIO_VERSION=1.17.8 TARGET_ARCH=x86_64 sh -<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Navigate to Istio Directory<\/h3>\n\n\n\n<p>Move to the Istio package directory (e.g., <code>istio-1.19.3<\/code>):<\/p>\n\n\n\n<p><code>cd istio-1.19.3<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Add Istioctl to Path<\/h3>\n\n\n\n<p>Add the istioctl client to your path (Linux or macOS):<\/p>\n\n\n\n<p><code>export PATH=$PWD\/bin:$PATH<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Pre-Installation Check<\/h3>\n\n\n\n<p>Begin the Istio pre-installation by verifying that it can be installed or upgraded:<\/p>\n\n\n\n<p><code>istioctl x precheck<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Install Default Profile<\/h3>\n\n\n\n<p>Install the default profile on the cluster defined by your Kubernetes configuration:<\/p>\n\n\n\n<p><code>istioctl install<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Verify Installation<\/h3>\n\n\n\n<p>Check if the Istio installation succeeded:<\/p>\n\n\n\n<p><code>istioctl verify-install<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Confirm Istio System Namespace<\/h3>\n\n\n\n<p>Use kubectl to check that the <code>istio-system<\/code> namespace has been created.<\/p>\n\n\n\n<p><code>Kubectl get ns<\/code><\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/3U9IEfxlzGN12wETThdpsdRd7Ki7IckeTnoYwFLhWflD-D_mgYjLXfCHaBzaO-arMdWjuii9EHCha6qjBmTORRMIY5x_peVaufGae_5cBX-SfuM45BSkQr21_f1cozAX7DYANTk9Ow6JdZj6hMVdeNo\" width=\"624\" height=\"89\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Examine Istio System Components<\/h2>\n\n\n\n<p>In an ideal setup, deployments and Istio pods should be functioning seamlessly. Execute the following to observe the deployment status:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"83\" src=\"https:\/\/lh7-us.googleusercontent.com\/kTvS8RhiordnqMufI248d9jnFS3KIWbI8JglvjdWyQlLPc7rnr3n8ZUlLnFToOimJtZDhCo68-bWHWmTluVp0jotoYLgmtOef9JOLw5T_GZ06e-S3kcqz2oWd4qFPxIWLiSNOKzY50IpLDLivVVT5Dw\"><\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/YyxZeKWIXzGCnr-8mENpsZ0hqAvAIP-pfoRLwB7WToC3NCBW6BygrJS4vdg7WpHgMobecLGfE3E3jnW1lJgDwDWhgu8gjJG-eks3-BZ-MxcHeCL9VW_fED5OahnkE2UG_huhz4zQi9_wmDSjhVNwvnc\" width=\"624\" height=\"64\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 9: Application Deployment with Envoy Proxy Injection<\/h2>\n\n\n\n<p>Consider two services, <code>frontend<\/code> and <code>backend<\/code>, both residing under the <code>default<\/code> namespace. By default, Envoy proxies are not injected. This behavior can be altered by explicitly instructing Istio to inject proxies into the application pods.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/bFfwuis-rifwb2VQgbD0e4-zZi4bYZths98I7wQtOYfjGA9TUFhIG8ihO0aysqzaNxCkRhnCLxyII6PIg894zERNdM1tcV9L2VGWk17ODw05-NimSGBHjsfNbqqPR297We09hyFCMNdvjFlYgFyg1qs\" width=\"624\" height=\"48\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configuring Proxy Injection<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Step 1: Check Istio Injection Status<\/h4>\n\n\n\n<p>Validate if Istio injection is enabled for the desired namespace:<\/p>\n\n\n\n<p><code>kubectl get ns --show-labels<\/code><\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/SyqSOiOPo0Qcq3Me5-ab9LM_WWctP6P1TQkFPMeuR7fxE1bFYiqIYri6Cm0NDSjqgI2rATXdajjX7JKM7bpWldXH0VTWDP_sr0AYClh2yKi8LLlAm_4knRo-e02gSjGoDhHnUBh6jGNITEgIIfeyiNI\" width=\"624\" height=\"91\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 2: Enable Injection for the Namespace<\/h4>\n\n\n\n<p>Enable injection for the chosen namespace; here, we use the <code>default<\/code> namespace:<\/p>\n\n\n\n<p><code>kubectl label ns default istio-injection=enabled<\/code><\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/zOtymOwfZcWR2GTTY2uH-62d0WJwXYij9KMyZc4_QVje3ETtVDGs5gdHC7zo8UxAjEKhCDG7M0t0LoJTyQC4fn-gj5Kb3QNN5bkIZRvGxlHXsUdXKdLCDrQzG2oryu74Vb2xqUtLLd_xlQmWiSHtS4I\" width=\"624\" height=\"20\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 3: Verify Injection Success<\/h4>\n\n\n\n<p>Confirm that injection has been successfully executed:<\/p>\n\n\n\n<p><code>kubectl get ns --show-labels<\/code><\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/eg6EsDBRCs4yjmE634lXhXrtjiSw8F6ba6EKjsQWGOCze6eVA2AfJCYVRQEO75ys99tF4kYJaWz5FGdCopwybpM8DPtirStUpMr9WuZib_AG5XXLSAFYGMh29l9zA8yvp_K0fAheEB64lVO4vuBURZg\" width=\"624\" height=\"89\"><\/p>\n\n\n\n<p>Now, Istio components running in the container will automatically inject the Envoy Proxy Container into the <code>default<\/code> namespace.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 4: Enable Injection for Running Pods<\/h4>\n\n\n\n<p>Delete the existing pods or deployments to enable injection for the running pods:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/gynfTp3Uqs9sbODDvDrd2uHmaM0tjqj_eFLVaYnuTyBfAQ35BQvMrQoHgW-BDQdjSzeE8FMytaA9RNRECGIwJMkh_-bYCWHgiYdIfsNFPiFbIW1o_IwzMrKBCfWGikfgbA1zYza8lFvo4rjxE4GaDSQ\" width=\"624\" height=\"99\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 5: Redeploy Manifests<\/h4>\n\n\n\n<p>Re-deploy the application manifests to observe successful injection:<\/p>\n\n\n\n<p><code>kubectl apply -f '*.yaml'<\/code><\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"55\" src=\"https:\/\/lh7-us.googleusercontent.com\/qQYtX8NAuHUQm8CKjbiMJPbK3W7YvRn4lqS-zkDgtLwchxPBDF0pflrY4WQg-tJJSUpFhHATLFrT1pBO9m3AkW3OKivmq6Ep1ofhwd_7hQA1rryRqedirvGScUIVJcTzXuNhDTNxEpwnzTe6ux16ykc\"><\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/R3izW8tkco3WxpAY7svTKyV0gG4JOhCnDXKw-G6TjnigXdIPdDXSnveFRBdOrLY8fisrwrO_EEX0QpsvkU8YM0HpjNP-K6oz9T5AvFMMO2zvPv6gtGr2ihKLnOZlAPSxQCPmhu3pu9yju1CeURLEqfM\" width=\"624\" height=\"63\"><\/p>\n\n\n\n<p><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/C9dA3M64k7Q3XrtYGel3azDtQ8k3PI5zF3_6TUfat-GOniyvmcAmxXGfEp4IfXt4BZOrdP6ijRRbbfC6cp8ALMv3rxDNNb-uWIwTCpJ6f_EIVvDhzp9Hrg6Y6Xj9DVi-9niVqyJ4Pxe9ZgPxEaAQgik\" style=\"width: 600px\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unveiling the Power of Istio<\/h2>\n\n\n\n<p>Upon the successful installation and configuration of Istio, you unlock a multitude of benefits for your microservices architecture.<\/p>\n\n\n\n<p><strong>1. Streamlined Microservices Communication:<\/strong> Istio acts as a service mesh, seamlessly managing communication between individual microservices. This ensures that your services can interact with each other efficiently and reliably.<\/p>\n\n\n\n<p><strong>2. Simplified Management with Istiod:<\/strong> The introduction of Istiod as a consolidated component simplifies the management of Istio. This component, part of the control plane, efficiently handles tasks such as proxy injection into microservices.<\/p>\n\n\n\n<p><strong>3. Effortless Configuration:<\/strong> Istio brings an elegant separation between application and Istio configurations. You no longer need to modify Kubernetes manifests for deployments and services. This separation is facilitated by Istio&#8217;s use of CustomResourceDefinitions (CRD), providing a cleaner and more maintainable configuration approach.<\/p>\n\n\n\n<p><strong>4. Telemetry Insights:<\/strong> With Istio&#8217;s telemetry features, you gain invaluable insights into the behavior and performance of your microservices. This data visualization capability allows you to monitor, analyze, and optimize your applications with ease.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>In simpler terms, a service mesh is a powerful pattern, and Istio stands out as an ideal implementation. It brings unparalleled management and control to microservices communication, making it a go-to solution for modern cloud-native applications. Istio ensures that your applications not only talk to each other effortlessly but also stay secure and perform at their best, shaping the trajectory of modern application architecture.<\/p>\n\n\n\n<p><strong>Blog Pundits: <strong><a href=\"https:\/\/opstree.com\/blog\/\/author\/prakashjha9f558ddc78\/\"><strong>Prakash Jha<\/strong><\/a><\/strong><a href=\"https:\/\/opstree.com\/blog\/\/author\/naveenverma023\/\" target=\"_blank\" rel=\"noreferrer noopener\"> <\/a>and <a href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sandeep Rawat<\/a><\/strong><\/p>\n\n\n\n<p><strong>OpsTree is an End-to-End <a href=\"https:\/\/opstree.com\/services\/\" target=\"_blank\" rel=\"noreferrer noopener\">DevOps Solution<\/a> Provider.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/opstree.com\/contact-us\/?utm_source=WordPress&amp;utm_medium=Blog&amp;utm_campaign=Step-by-Step+Guide+to+Setup+Istio\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Us<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong>Connect with Us<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-social-links aligncenter is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-twitter  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/twitter.com\/opstreedevops\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Twitter<\/span><\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Understanding Istio and Service Mesh Istio is a powerful service mesh designed to manage communication between individual microservices seamlessly. Before diving into Istio, let&#8217;s grasp the concept of a service mesh. Service Mesh: A service mesh is a dedicated infrastructure layer that manages communication between microservices. It offers features like load balancing, service discovery, encryption, &hellip; <a href=\"https:\/\/opstree.com\/blog\/2024\/01\/09\/step-by-step-guide-to-setup-istio\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Step-by-Step Guide to Setup Istio&#8221;<\/span><\/a><\/p>\n","protected":false},"author":232992100,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","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":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[94162218,48006724,23921003,579445854],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-4oi","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/16882"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/232992100"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=16882"}],"version-history":[{"count":24,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/16882\/revisions"}],"predecessor-version":[{"id":16957,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/16882\/revisions\/16957"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=16882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=16882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=16882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}