Containous, das Unternehmen hinter dem weit verbreiteten Kubernetes-Ingress-Controller Traefik, hat am 4. September 2019 ein neues Open-Source-Projekt vorgestellt: Maesh ist ein Service Mesh für Kubernetes, das sich bewusst einfach und nichtinvasiv positioniert. Anders als etablierte Alternativen wie Istio oder Linkerd verzichtet Maesh vollständig auf Sidecar-Container. Der Traffic wird stattdessen über Proxy-Endpunkte geroutet, die auf jedem Knoten des Clusters laufen.
Technisch baut Maesh direkt auf dem Routing-Kern von Traefik auf und orientiert sich an der Service Mesh Interface-Spezifikation (SMI), die damals von Microsoft mitinitiiert wurde. Das macht Maesh kompatibel mit anderen SMI-konformen Werkzeugen und erleichtert die schrittweise Migration aus bestehenden Service Meshes. Die Integration in vorhandene Kubernetes-Cluster erfordert nur minimale Anpassungen an CoreDNS, die sich laut Containous ebenso leicht wieder entfernen lassen.
Für die Installation genügt ein einzelnes Helm Chart, CRDs oder zusätzliche Hilfsprogramme sind nicht notwendig. Maesh unterstützt HTTP- und TCP-Modus gleichzeitig und bringt die üblichen Produktionsfeatures mit: Load Balancing, Retries, Circuit Breaker, Rate Limits, OpenTracing und Zugriffskontrollen. Ob ein Dienst das Mesh nutzt, steuern Annotationen auf den Service-Objekten, das Opt-in-Prinzip lässt bestehende Dienste unberührt. Rund eine Woche zuvor hatte Containous bereits den Einstieg in den Kubernetes-Kernbereich begleitet, als etcd 3.4 als erstes CNCF-Release erschien.
Maesh steht als Open Source auf GitHub unter containous/maesh zur Verfügung. Containous lädt Entwickler ausdrücklich zu Beiträgen und Pull Requests ein. Das Projekt richtet sich an Teams, die in ihren Kubernetes-Clustern mehr Kontrolle und Transparenz über den internen Microservices-Traffic benötigen, ohne dabei den operativen Aufwand einer vollständig sidecarbasierten Lösung in Kauf nehmen zu wollen.

