[英]Kong Ingress Controller has no effect on Kong Plugins
我已經完成了 kong-ingress-controller 部署和入門文檔,並完成了提到的所有內容。
一切正常,我可以根據路線訪問我的應用程序。 但是當我添加限速插件或任何其他插件時,它沒有任何效果。
入口.yaml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: kong
plugins.konghq.com: http-ratelimit, http-auth
spec:
rules:
- host: foo.bar
http:
paths:
- path: /users
backend:
serviceName: my-service
servicePort: 80
速率限制.yaml:
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: http-ratelimit
labels:
global: 'true'
config:
minute: 5
plugin: rate-limiting
但是速率限制插件對我的入口沒有影響。
注意:kong-ingress-controller 在 kong 命名空間中,但其他資源在 default 命名空間中。 我嘗試將所有內容移動到 kong 命名空間,然后插件可以工作,但服務無法正常工作,因為它在默認命名空間中。
提前致謝。
查看Kong 文檔,速率限制 YAML 看起來是正確的。 如果資源配置正確,Kong 不會將請求與入口資源匹配,因為用戶沒有發送正確的請求。
KongPlugin、KongIngress 應該與 Service 位於相同的命名空間中。 YAML 提供了正確的外觀。 ingress yamls注解和配置肯定有問題,你的服務是否用Ingress對象進行了注解?
我認為您需要將此注釋添加到您的 KongPlugin 中:
annotations:
kubernetes.io/ingress.class: kong
所以嘗試
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: http-ratelimit
annotations:
kubernetes.io/ingress.class: kong
[...]
在我的場景中,我想在特定的入口資源/路由上應用KongPlugin
。
對我有用的是在入口資源(以及目標服務)所在的同一命名空間中創建KongPlugin
object。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.