The development of Kubernetes has undoubtedly changed the way microservices are developed. Not only has the deployment changed, but some tools also needed to be updated accordingly. API gateways are a great example of such tools. API gateways had existed before Kubernetes was first introduced, but they were never really programmed in a way to take advantage of the features provided by Kubernetes. This later changed when different companies started to develop specialized solutions. I also tackled this problem by designing and developing my own API gateway, with the main goal being a tight integration with Kubernetes. The implemented API gateway supports features such as routing, distributing, limiting and blocking requests, advanced health checks, and circuit breakers. I used one of Kubernetes's multiple extension points in the form of custom resource definitions to provide a routing configuration. In the latter part of the thesis, I compared the implemented API gateway with Ambassador, Kong and Gloo, which are all API gateways designed to work with Kubernetes. The evaluation has shown that the implemented API gateway is usable in practice, has good scaling, and is easy to configure.
|