Service mesh in the Kubernetes ecosystem is a sidecar container running with your application/primary container. Using this, you can observe and manage the service-to-service interaction independently of the primary containers.
As more and more applications are being built with many tiny services on Kubernetes, it is contributing to the growing interest in Service Mesh products. Istio, Linkerd, and Consul Connect are some of the popular open-source options. In this article, we will see how easy it is to integrate Istio or Linkerd on Roost.
Roost gives your development team a multi-node Kubernetes environment on their local systems (Mac, Windows, and Ubuntu). Roost SaaS Control Plane, with its unique Left-Shifted Enterprise Policies, allows you to create teams and define cluster policies/configuration, enabling a consistent and production-like development experience for your team. At the same time, Roost allows you have these development clusters on-prem or in the cloud.
To install service mesh on your Roost Local or Remote cluster, click on the “Local Cluster” or “Remote Cluster” icon on the toolbar.
Once you are on Roost’s preferences screen, from the dropdown, choose a service mesh of your choice, Linkerd or Istio.
Wait for the installation to complete. It may take a few minutes to install. Once you have successfully installed service mesh on your cluster, let’s inject a sidecar container on some working pods. To do that, we will mark a namespace with some specific label or annotation (depending on Istio or Linkerd) so that mutating webhook of the service mesh injects your pod with its sidecar and init container. For that, go to Roost “Analytics” screen -> Table View -> All Namespaces.
From the list of namespaces, click the Inject button against the namespace you want to inject your sidecar proxy in. For this example, we will pick the default namespace.
After the injection is successful, the namespace is marked, and all the pods in that namespace will have service-mesh enabled. Now, you can observe the health of each one of them. To test, we can pick a sample Roost micro-services project from File > Roost Microservices > Service Fitness Example. To deploy this example, find “all-in-one.yaml” and click on Apply to ZKE.
Roost also has a service mesh dashboard integrated. Click on Service Mesh View on top of the window, this opens the dashboard on your default browser, and you are ready to monitor the health of your micro-services.
All network traffic runs through your service mesh, which means you can observe and record all the communication. Based on your service mesh, Grafana or Linkerd Dashboard options are available by default.