Kong Ingress Controller не влияет на плагины Kong
Я прошел через развертывание kong-ingress-controller и начало работы с документацией и сделал все, что упомянуто.
- Обновить разрешения пользователей
- Разверните Kong Ingress Controller
- Переменные среды установки
- Создан Ingress с маршрутами
Все работает нормально, я могу получить доступ к своим приложениям по маршрутам. Но когда я добавляю плагины ограничения скорости или любые другие плагины, это не действует.
ingress.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
rate-limit.yaml:
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: http-ratelimit
labels:
global: 'true'
config:
minute: 5
plugin: rate-limiting
Но плагин ограничения скорости не влияет на мой вход.
NB: kong-ingress-controller находится в пространстве имен kong, но другие ресурсы находятся в пространстве имен по умолчанию. Я попытался переместить все в пространство имен kong, тогда плагины работают, но служба не работает, как в пространстве имен по умолчанию.
Заранее спасибо.
4 ответа
Я думаю, вам нужно добавить эту аннотацию в свой KongPlugin:
annotations:
kubernetes.io/ingress.class: kong
Так что попробуй с
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: http-ratelimit
annotations:
kubernetes.io/ingress.class: kong
[...]
Глядя на документацию Kong, ограничение скорости YAML выглядит правильным. Если ресурс настроен правильно, Kong не сопоставляет запрос с входящим ресурсом, потому что пользователь не отправляет правильный запрос.
KongPlugin, KongIngress должны находиться в том же пространстве имен, что и Service. YAML выглядит правильно. Должно быть что-то не так с аннотацией и конфигурацией ingress yamls. Аннотирован ли ваш сервис объектом Ingress?
В моем сценарии я хотел применить к определенному входному ресурсу/маршруту.
Что сработало для меня, так это создать
KongPlugin
объект в том же пространстве имен , где находится Ingress Resource (и, следовательно, целевая служба).