logo

Kubernetes Advanced Networking Testing with KIND

Authors:   Antonio Ojea Garcia


Summary

The presentation discusses how to use KIND to emulate and test complex Kubernetes networking scenarios, including multi-cluster and multi-zone connectivity, service topology awareness, traffic engineering, and quality of service.
  • KIND is a tool for running local multi-node Kubernetes clusters using Linux containers
  • KIND leverages current Linux networking capabilities to emulate the cluster networking in a nested environment
  • KIND can be used to emulate more complex scenarios, such as multi-cluster and multi-zone connectivity, service topology awareness, traffic engineering, and quality of service
  • The presentation demonstrates how to use KIND to create plugins that simulate nodes with multiple interfaces and networks
  • The presentation also demonstrates a new feature in Kubernetes 1.21 called topology aware things, which allows users to deploy more multi-zone scenarios and improve the resilience of their clusters
  • Emulating real scenarios is important for testing in a multicultural scenario with long distances, as latency impacts the bandwidth of TCP connections
The presenter created a plugin called 'Baremetal' that uses the KIND API to define the topology of a cluster with multiple networks, including an installer, storage, and external network. The plugin uses Docker commands to create a new Linux bridge and connect the containers to the bridge, allowing for the testing of multi-network functionality.

Abstract

Kubernetes project evolution and its ecosystem is demanding new and more complex network requirements: multi-cluster and multi-zone connectivity, service topology awareness, traffic engineering, quality of service, ... KIND is a tool for running local multi-node Kubernetes clusters using Linux containers, it leverages current Linux networking capablities to emulate the cluster networking in a nested environment. This flexibility can be used to emulate more complex scenarios, let's go through some of these Kubernetes networking scenarios, and demonstrate how to use KIND to emulate and test them.

Materials:

Tags: