Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
Signed-off-by: Zhonghu Xu <xuzhonghu@huawei.com>
  • Loading branch information
hzxuzhonghu committed Apr 17, 2024
1 parent dc9df80 commit dcacf7b
Showing 1 changed file with 13 additions and 33 deletions.
46 changes: 13 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Kmesh is a high-performance service mesh data plane software based on programmab
The service mesh software represented by Istio has gradually become popular and has become an important component of cloud infrastructure. However, the current service mesh still face some challenges:

- **Extra latency overhead at the proxy layer**: Single hop service access increases by [2~3ms](https://istio.io/latest/docs/ops/deployment/performance-and-scalability/#data-plane-performance), which cannot meet the SLA requirements of latency-sensitive applications. Although the community has come up with a variety of data plane solutions to this problem, the overhead introduced by agents cannot be completely reduced.
- **High resources occupation**: The agent occupies extra CPU/MEM overhead, and the deployment density of service container decreases.
- **High resources occupation**: The sidecar proxy occupies extra CPU/MEM overhead, and the deployment density of service container decreases.

### Kmesh:Kernel-native traffic governance

Expand Down Expand Up @@ -55,49 +55,30 @@ Note: * Planning

- Prerequisite

- Currently, Kmesh makes use of [Istio](https://github.com/istio/istio) as its control plane. Before starting Kmesh, please install the Istio control plane. To support ads mode, refer to [istio install guid](https://istio.io/latest/docs/setup/getting-started/#install), but to support workload mode, please refer to [ambient install guide](https://istio.io/latest/docs/ops/ambient/install/helm-installation/#installing-the-components).
- The complete Kmesh capability depends on the OS enhancement. Check for the [OS lists](docs/kmesh_support.md) supported by Kmesh. For other OS environments, refer to [Kmesh Compilation and Building Guide](docs/kmesh_compile.md) to build kesh image locally.

- Docker Images

Kmesh achieves the ability to completely sink traffic management below the OS through kernel enhancements. When releasing images, the range of OS for which the image is applicable must be considered. So we maintain three types of images:
- Currently, Kmesh makes use of [Istio](https://github.com/istio/istio) as its control plane. Before starting Kmesh, please install the Istio control plane. To support ads mode, refer to [istio install guide](https://istio.io/latest/docs/setup/getting-started/#install), but to support workload mode, please refer to [ambient install guide](https://istio.io/latest/docs/ops/ambient/install/helm-installation/#installing-the-components).

- General Image

In order to fit for a wide range of OS, we release image named `ghcr.io/kmesh-net/kmesh:{tag}`.

- Supported OS versions with kernel enhancement patches
- The complete Kmesh capability depends on the OS enhancement. Check for the [OS lists](docs/kmesh_support.md) supported by Kmesh. For other OS environments, refer to [Kmesh Compilation and Building Guide](docs/kmesh_compile.md) to build kesh image locally.

The current [openEuler 23.03](https://repo.openeuler.org/openEuler-23.03/) OS natively supports the kernel enhancement features required by Kmesh. Kmesh release images can be directly installed and run on this OS. For a detailed list of supported OS versions with kernel enhancement modifications, please refer to [this link](https://github.com/kmesh-net/kmesh/blob/main/docs/kmesh_support.md).

- Start Kmesh
- Kmesh Install

- Install with Helm
Install kmesh with helm

```sh
[root@ ~]# helm install kmesh ./deploy/helm -n kmesh-system --create-namespace
```

- Install from Yaml

```sh
[root@ ~]# kubectl apply -f deploy/yaml
```

By default, the Kmesh base function is used, other function can be selected by adjusting the startup parameters in the yaml file.

- Check kmesh service status

- Check kmesh component status

```sh
[root@ ~]# kubectl get pods -A | grep kmesh
[root@ ~]# kubectl get pods -n kmesh-system | grep kmesh
kmesh-system kmesh-l5z2j 1/1 Running 0 117m
```

- Remote L7 Trafic Management

Kmesh now support advanced L7 processing via waypoint, with waypoint it can achieve equevalient traffic management capabilities with Istio. But kmesh makes use of ebpf to do traffic interception and redirection, it provides more simplicity and higher performance.
Kmesh now support advanced L7 processing via waypoint, with which it can achieve equivalent traffic management capabilities with Istio. But kmesh makes use of ebpf to do traffic interception and redirection, it provides more simplicity and higher performance.

- Deploy a waypoint for
- Deploy a waypoint for serviceaccoount `default`

```bash
[root@ ~]# istioctl x waypoint apply --service-account default
Expand All @@ -109,16 +90,15 @@ Kmesh now support advanced L7 processing via waypoint, with waypoint it can achi
sleep-865b99bb57-qzjcj 1/1 Running 0 10d
```

- Replace the waypoint image with the kmesh customized image.
- Replace the waypoint image with the kmesh waypoint image.

```
[root@ ~]# kubectl get gateways.gateway.networking.k8s.io
NAME CLASS ADDRESS PROGRAMMED AGE
default istio-waypoint 10.96.143.232 True 5m7s
```

Add annotation "sidecar.istio.io/proxyImage: ghcr.io/kmesh-net/waypoint:v0.3.0" to the `default` gateway. Then gateway pod will
restart. Now kmesh remote L7 is enabled!
Add annotation "sidecar.istio.io/proxyImage: ghcr.io/kmesh-net/waypoint:v0.3.0" to the `default` gateway. Then gateway pod will rollout with kmesh image. Now kmesh remote L7 is enabled!

```bash
kubectl annotate gateways.gateway.networking.k8s.io default "sidecar.istio.io/proxyImage=ghcr.io/kmesh-net/waypoint:v0.3.0"
Expand Down Expand Up @@ -218,4 +198,4 @@ Kmesh documentation is under the [CC-BY-4.0 license](https://creativecommons.org
## Credit
This project was initially incubated in the [openEuler community](https://gitee.com/openeuler/Kmesh), thanks openEuler Community for the help on promoting this project in early days.
Kmesh was initially incubated in the [openEuler community](https://gitee.com/openeuler/Kmesh), thanks openEuler community for the help on promoting this project in early days.

0 comments on commit dcacf7b

Please sign in to comment.