This lesson defines the goal of this chapter which is to carry out networking experiments using Istio.

So far, we saw how to terminate instances of our applications. However, we can accomplish so much more by introducing networking into the picture. By destroying, obstructing, or faking certain things in networking, we can put experiments and chaos engineering to an entirely different level.

Using Istio for networking in Kubernetes

There are many different ways we can do networking in Kubernetes, but for today, we are going to explore the one most commonly one, Istio. I am choosing Istio mostly because, today (March 2020), it is the most widely used service mesh networking solution. The same lessons that you will learn from using Istio and combining it with chaos experiments, you can apply to other networking solutions. An additional advantage of using Istio is that it is already available in Chaos Toolkit through a plugin. For other networking types, you might need to work a bit more to create your own commands. This should be relatively easy because you can execute any command from Chaos Toolkit. Nevertheless, there is a plugin for Istio. We are going to use it, since Istio is the most commonly used service mesh.

Why do we need a service mesh?

By now, you might be wondering why we need service mesh in the first place. There are many potential answers to that question, so I’ll limit them to the context of chaos engineering. Service meshes have options to abort requests, circumvent certain things, to delay requests, and so on and so forth. They are mighty, and they fit very well into the experiments that we are going to run.

All in all, we’ll experiment on top of Istio.

In the next lesson, we will be provided with a gist that contains all the commands for this chapter.

Get hands-on with 1200+ tech skills courses.