Skip to content
/ kmesh Public
forked from kmesh-net/kmesh

High Performance ServiceMesh Data Plane Based on eBPF and Programmable Kernel

License

Notifications You must be signed in to change notification settings

shonecyx/kmesh

Repository files navigation

Kmesh

介绍

Kmesh (kernel mesh) is a data plane software for service grids. It is dedicated to providing infrastructure for service communication and service governance for cloud applications, provides better latency and noise floor performance.

软件架构

软件架构说明

安装教程

  1. xxxx
  2. xxxx
  3. xxxx

使用说明

  1. xxxx
  2. xxxx
  3. xxxx

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/

Usage Tutorial

build

make clean
make
make install

config

mkdir /mnt/kmesh_cgroup2
mount -t cgroup2 none /mnt/kmesh_cgroup2/

vim /etc/kmesh/kmesh.json
---
       , {
        "name": "xds-grpc",
        "type" : "STATIC",
        "connect_timeout": "1s",
        "lb_policy": "ROUND_ROBIN",
        "load_assignment": {
          "cluster_name": "xds-grpc",
          "endpoints": [{
            "lb_endpoints": [{
              "endpoint": {
                "address":{
                  "socket_address": {
                    "protocol": "TCP",
                    "address": "192.168.123.249", # istiod pod IP
                    "port_value": 15010
                  }
                }
              }
            }]
          }]
        },
---

kmesh-daemon

# kmesh-daemon -h
Usage of kmesh-daemon:
  -bpf-fs-path string
    	bpf fs path (default "/sys/fs/bpf")
  -cgroup2-path string
	cgroup2 path (default "/mnt/kmesh_cgroup2")
  -config-file string
    	[if -enable-kmesh] deploy in kube cluster (default "/etc/kmesh/kmesh.json")
  -enable-ads
    	[if -enable-kmesh] enable control-plane from ads (default true)
  -enable-kmesh
    	enable bpf kmesh
  -service-cluster string
    	[if -enable-kmesh] TODO (default "TODO")
  -service-node string
    	[if -enable-kmesh] TODO (default "TODO")

# example
./kmesh-daemon -enable-kmesh
# example
./kmesh-daemon -enable-kmesh -enable-ads=true -config-file=./kmesh.json
./kmesh-daemon -enable-kmesh -enable-ads=false

kmesh-cmd

# kmesh-cmd -h
Usage of kmesh-cmd:
  -config-file string
    	input config-resources to bpf maps (default "./config-resources.json")

# example
./kmesh-cmd -config-file=examples/api-v2-config/config-resources.json

admin

# curl http://localhost:15200/help
	/help: print list of commands
	/options: print config options
	/bpf/kmesh/maps: print bpf kmesh maps in kernel
	/controller/envoy: print control-plane in envoy cache
	/controller/kubernetes: print control-plane in kubernetes cache

# example
curl http://localhost:15200/bpf/kmesh/maps
curl http://localhost:15200/controller/envoy

About

High Performance ServiceMesh Data Plane Based on eBPF and Programmable Kernel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 58.7%
  • C 35.9%
  • Shell 3.9%
  • Makefile 1.2%
  • Dockerfile 0.1%
  • Smarty 0.1%
  • CMake 0.1%