diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/application-layer/rate-limiting.md b/i18n/zh/docusaurus-plugin-content-docs/current/application-layer/rate-limiting.md new file mode 100644 index 0000000..c835dc1 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/application-layer/rate-limiting.md @@ -0,0 +1,416 @@ +--- +title: 限流 +sidebar_position: 11 +--- + +本文档提供了如何测试 Kmesh 本地限流和全局限流功能的分步指南。它涵盖了部署必要组件、配置流量规则以及观察限流行为。 + +## 本地限流 + +### 1. 部署 Kmesh 和 istiod(版本 1.24 或更高版本) + +请阅读[快速入门](https://kmesh.net/docs/setup/quick-start)完成 Kmesh 的部署。 + +### 2. 部署 sleep 和 httpbin + +我们将部署 `httpbin` 作为接收请求的后端服务,`sleep` 作为发送请求的客户端。 + +``` sh +kubectl apply -f samples/sleep/sleep.yaml +kubectl apply -f samples/httpbin/httpbin.yaml +``` + +### 3. 为 httpbin 部署 waypoint + +首先,如果您尚未安装 Kubernetes Gateway API CRD,请运行以下命令进行安装。 + +``` sh +kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \ + { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=v1.4.0" | kubectl create -f -; } +``` + +接下来,为 `httpbin` 服务创建专用的 Waypoint 代理,并为该服务添加标签以将其流量引导到此 Waypoint。 + +```sh +kmeshctl waypoint apply -n default --name httpbin-waypoint --image ghcr.io/kmesh-net/waypoint:latest + +kubectl label service httpbin istio.io/use-waypoint=httpbin-waypoint +``` + +### 4. 部署 EnvoyFilter + +此 `EnvoyFilter` 资源将本地限流过滤器注入到 `httpbin` 服务的 Waypoint 代理中。过滤器配置了以下规则: + +- 带有 `quota: low` 头的请求将被限制为**每 300 秒 1 个请求**。 +- 带有 `quota: medium` 头的请求将被限制为**每 300 秒 3 个请求**。 +- 其他请求将受到**每 300 秒 10 个请求**的默认限制。 + +`workloadSelector` 确保此过滤器仅应用于 `httpbin-waypoint` 代理。 + +```sh +kubectl apply -f -<