Kong Ingress Controller не влияет на плагины Kong

Я прошел через развертывание kong-ingress-controller и начало работы с документацией и сделал все, что упомянуто.

  1. Обновить разрешения пользователей
  2. Разверните Kong Ingress Controller
  3. Переменные среды установки
  4. Создан 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 (и, следовательно, целевая служба).

Другие вопросы по тегам