Search⌘ K

Making the Application Resilient to Partial Network Failures

Explore techniques to make your Kubernetes applications resilient to partial network failures without modifying application code. Learn how to configure Istio's Virtual Service retries, understand Envoy proxy filters, and validate resilience through chaos experiments. This lesson helps you ensure high availability even during intermittent network faults.

How can we make our applications resilient to (some) network issues? How can we deal with the fact that the network is not 100% reliable?

The last experiment will not create a complete outage but only partial network failures. We can fix this in quite a few ways.

I already said that I will not show you how to solve issues by changing the code of your application. That would require examples in too many different languages. So, we’ll look for a solution outside the application itself, probably inside Kubernetes. In this case, Istio is the logical place.

Inspecting modified version of Virtual Service

We’re going to take a look at a modified version of our Virtual Service.

Shell
cat k8s/network/istio-repeater.yaml

The output is as follows.

---

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: repeater
spec:
  hosts:
  - repeater.acme.com
  - repeater
  gateways:
  - repeater
  http:
  - route:
    - destination:
        host: repeater
        subset: primary
        port:
          number: 80
...