Featured image for a blog article titled Kuma 1.6.0 GA Released With Kubernetes Gateway API support, ZoneEgress improvements, a new and improved transparent-proxy and more..

We are happy to announce Kuma's latest release, which is packed with features and improvements.

We strongly suggest upgrading, in order to take advantage of the latest and greatest when it comes to service mesh.

# Notable Features

  • πŸš€ We provide a preview of Kubernetes Gateway API (opens new window) support for our builtin gateway. This makes it easier than to provide a gateway to lead traffic through your mesh.
  • πŸš€ Full support for the "inspect API" on builtin gateway resources. This enables users to see which policies impact which gateway routes.
  • πŸš€ ZoneEgress received many improvements like: support for Standalone, locality aware routing on external services and support for FaultInjection and RateLimit policies on external services.
  • πŸš€ A preview of the completely rewritten transparent proxy, this aims to make transparent proxy more stable and provide us with pathways for further innovation.
  • Many improvements to the Helm charts like: exposing the CP with an ingress, providing resource limits to components, and customizing image tags and security context.
  • A new metric to see how long configuration changes take to propagate to data plane proxies.

And a lot more! The full changelog is available here (opens new window).

# Kubernetes Gateway API (experimental)

The gateway API kubernetes sig (opens new window) is gaining traction and quickly converging to be a flexible successor to Ingress in Kubernetes. Since Kuma 1.5.0 we support a builtin Envoy Gateway fully configurable with Kuma policies. It made sense for us to make the Kubernetes story complete by also providing Gateway API support.

Gateway API is currently experimental and is enabled with the kuma-cp flag --experimental-gatewayapi and will also need the Gateway to be enabled with --experimental-meshgateway.

Check the Gateway API docs (opens new window) for more information.

# Transparent-proxy rewrite (experimental)

The current transparent proxy implementation presents both a maintenance burden and a limit on our options for innovation. We have big plans for transparent proxy including some features using cutting edge network and kernel technologies. As a first step in this effort we've completely rewritten the iptables transparent proxy rules.

We're releasing this rewrite as an experimental feature in version 1.6.0. It can be enabled with kumactl install transparent-proxy --experimental-transparent-proxy-engine. Please take it for a run in dev (this is not ready for production yet) and let us know of any issues (opens new window)!

# ZoneEgress improvements

In Kuma 1.5.0 zone egress was released, it enables routing all traffic external to the mesh through a dedicated set of proxies. This was a very big step towards our goal to provide best in class support for external services.

In this release we improved ZoneEgress even more with the following features:

You now need to opt-in your mesh (opens new window) to route traffic through the ZoneEgress. Previously zone egress routing would be dependent on the presence of a zone egress instance, which would cause data plane proxies to be reconfigured if zone egresses where shutdown. With this feature, routing is not dependent on the state of your zone egress instances.

When using external service you can now force the traffic to exit your mesh in a specific zone. This is useful if you want to leverage all the features Kuma provides until you are very close to the service that is outside the mesh. To make this happen simply add a kuma.io/zone tag to your external service definition. Check the external service docs (opens new window) for more details.

One of the benefit of ZoneEgress is routing all external service traffic through a set of instances, this has the benefit of providing higher control on the network traffic and make external service closer to regular data planes. In Kuma 1.6.0 you can do all of this in Standalone mode, too!

To learn more about ZoneEgress check out the docs (opens new window).

# Configuration propagation metric

When operating a service mesh one thing you need to be aware of is how long it takes for your data plane proxies to receive configuration changes.

This is now possible with the metric: xds_delivery.

For example, we see the impact of reachableServices (opens new window) thanks to this metric. In the graph below we first deploy 50 services with 3 instances first without reachableServices and then do the same thing with reachableServices.

Thanks to this new metric, you can see that annotating your instances with kuma.io/transparent-proxying-reachable-services significantly improve configuration delivery time.

XDS_delivery grafana example

A chart to track this metric has been added to the control-plane dashboard.

# Kuma 1.5.1

We are also releasing a patch release of Kuma 1.5.x with some critical bug fixes. Make sure to check the CHANGELOG (opens new window).

# Join us on the community call!

Join us on our community channels (opens new window), including our official Slack chat, to learn more about Kuma. The community channels are useful for getting up and running with Kuma, as well as for learning how to contribute to and discuss the project roadmap. Kuma is a CNCF Sandbox project: neutral, open and inclusive.

The next community call will be hosted on April 13th at 8:30am PDT (opens new window). And don’t forget to follow Kuma on Twitter (opens new window) and star it on GitHub (opens new window)!

# Upgrading

Be sure to carefully read the Upgrade Guide (opens new window) before upgrading Kuma.

Get Community Updates

Sign up for our Kuma community newsletter to get the most recent updates and product announcements.