我已经部署了以下资源。
kong 命名空间中的 kong
poc 命名空间中的服务回显
kubectl apply -f https://gist.githubusercontent.com/hbagdi/0d833181239a39172ba70cbec080bdb9/raw/7f46cf1c9e54562e2c23902daace7ac8edc40427/echo-server.yaml -n poc
在 poc 命名空间中使用 /foo 路径创建了一个入口。注意:/foo 从 echo 服务映射到 /echo。
echo "
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo
namespace: poc
annotations:
kubernetes.io/ingress.class: kong
spec:
rules:
- http:
paths:
- path: /foo
backend:
serviceName: echo
servicePort: 80
" | kubectl -n poc apply -f -
- 创建了kong插件
kind: KongPlugin
metadata:
name: default.rate-limiting
namespace: poc
config:
minute: 3
policy: local
plugin: rate-limiting" | kubectl apply -f -
- 使用 default.rate-limiting 修补服务
kubectl patch -n poc svc echo -p '{"metadata":{"annotations":{"konghq.com/plugins":
"default.rate-limiting"}}}'
根据上述逻辑,应该允许一分钟内 3 个请求,但是即使一分钟内超过 3 个请求,也不会应用速率限制。