Skip to content

lec-bit/kmesh

This branch is 1 commit ahead of, 114 commits behind kmesh-net/kmesh:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4cc6930 · Feb 25, 2025
Jan 14, 2025
Dec 28, 2024
Feb 21, 2025
Oct 12, 2024
Oct 7, 2024
Sep 23, 2024
Oct 7, 2024
Feb 20, 2025
Jan 20, 2025
Feb 5, 2025
Feb 14, 2025
Jan 14, 2025
Feb 25, 2025
Jan 19, 2024
Jul 14, 2024
Feb 20, 2025
Feb 21, 2025
Dec 23, 2024
Jun 20, 2024
Sep 2, 2024
Jul 23, 2024
Nov 6, 2024
Sep 26, 2023
Oct 8, 2024
Mar 6, 2023
Oct 23, 2024
Jan 16, 2025
Feb 19, 2025
Sep 4, 2024
Jan 16, 2025
Jul 11, 2024
Nov 6, 2024
Jan 21, 2025
Jan 21, 2025
Jul 6, 2024
Oct 10, 2024
Sep 25, 2024
Nov 6, 2024
Sep 24, 2024

kmesh-logo

LICENSE codecov

Introduction

Kmesh is a high-performance and low overhead service mesh data plane based on eBPF and programmable kernel. Kmesh brings traffic management, security and monitoring to service communication without needing application code changes. It is natively sidecarless, zero intrusion and without adding any resource cost to application container.

Why Kmesh

Challenges of the Service Mesh Data Plane

Service mesh software represented by Istio has gradually become popular and become an important component of cloud native infrastructure. However, there are still some challenges faced:

  • Extra latency overhead at the proxy layer: Add 2~3ms latency, which cannot meet the SLA requirements of latency-sensitive applications. Although the community has come up with a variety of optimizations, the overhead introduced by sidecar cannot be completely reduced.
  • High resources occupation: Occupy 0.5 vCPU and 50 MB memory per 1000 requests per second going through the proxy, and the deployment density of service container decreases.

Kmesh Architecture

Kmesh transparently intercept and forward traffic based on node local eBPF without introducing extra connection hops, both the latency and resource overhead are negligible.

kmesh-arch

Kmesh Architecture

The main components of Kmesh include:

  • Kmesh-daemon: The management component per node responsible for bpf prog management, xDS configuration subscribe, observability, and etc.
  • eBPF Orchestration: The traffic orchestration implemented based on eBPF, supports L4 load balancing, traffic encryption, monitoring and simple L7 dynamic routing.
  • Waypoint: Responsible for advanced L7 traffic governance, can be deployed separately per namespace, per service.

Kmesh innovatively sinks Layer 4 and Simple Layer 7 (HTTP) traffic governance to the kernel, and build a transparent sidecarless service mesh without passing through the proxy layer on the data path. We named this Kernel-Native mode.

kernel-native-mode

Kernel-Native Mode

Kmesh also provide a Dual-Engine Mode, which makes use of eBPF and waypoint to process L4 and L7 traffic separately, thus allow you to adopt Kmesh incrementally, enabling a smooth transition from no mesh, to a secure L4, to full L7 processing.

duel-engine-mode

Dual-Engine Mode

Key features of Kmesh

Smooth Compatibility

  • Application-transparent Traffic Management

High Performance

  • Forwarding delay 60%↓
  • Workload startup performance 40%↑

Low Resource Overhead

  • ServiceMesh data plane overhead 70%↓

Zero Trust

  • Provide zero trust security with default mutual TLS
  • Policy enforcement both in eBPF and waypoints

Safety Isolation

  • eBPF Virtual machine security
  • Cgroup level orchestration isolation

Open Ecology

Quick Start

Please refer to quick start and user guide to try Kmesh quickly.

Performance

Based on Fortio, the performance of Kmesh and Envoy was tested. The test results are as follows:

fortio_performance_test

For a complete performance test result, please refer to Kmesh Performance Test.

Contact

If you have any question, feel free to reach out to us in the following ways:

Community Meeting

Regular Community Meeting:

Resources:

Contributing

If you're interested in being a contributor and want to get involved in developing Kmesh, please see CONTRIBUTING for more details on submitting patches and the contribution workflow.

License

The Kmesh user space components are licensed under the Apache License, Version 2.0. The BPF code templates, ko(kernel module) and mesh data accelerate are dual-licensed under the General Public License, Version 2.0 (only) and the 2-Clause BSD License (you can use the terms of either license, at your option).

Credit

This project was initially incubated in the openEuler community, thanks openEuler Community for the help on promoting this project in early days.

About

kmesh

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 60.0%
  • C 34.8%
  • Shell 3.8%
  • Makefile 1.1%
  • Dockerfile 0.1%
  • Smarty 0.1%
  • CMake 0.1%