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

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

  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, плагины работают, но служба не работает, как в пространстве имен по умолчанию.

Заранее спасибо.


person Hossain Ahamed    schedule 15.09.2019    source источник


Ответы (3)


Просматривая Kong docs, ограничение скорости YAML выглядит правильным. Если ресурс настроен правильно, Kong не сопоставляет запрос с входящим ресурсом, потому что пользователь не отправляет правильный запрос.

person K. Chen    schedule 17.09.2019
comment
Нет, это простой запрос GET. Я удалил все плагины, потребителей, вход и создал снова, и он начал работать. Теперь, если я хочу удалить плагин key-auth и добавить плагин oath2, новый плагин не будет иметь никакого эффекта. - person Hossain Ahamed; 18.09.2019
comment
Удалите аннотацию из yamls Ingress / Service. Создайте новый плагин kong для oauth2 и добавьте / обновите аннотацию в Ingress / Service с помощью только что созданного плагина. - person user2737926; 17.06.2020

KongPlugin, KongIngress должны находиться в том же пространстве имен, что и Service. YAML выглядит правильно. Что-то не так с аннотацией и конфигурацией ingress yamls. Аннотирован ли ваш сервис объектом Ingress?

person user2737926    schedule 16.06.2020

Я думаю, вам нужно добавить эту аннотацию в свой KongPlugin:

annotations:
  kubernetes.io/ingress.class: kong

Так что попробуйте с

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
 name: http-ratelimit
 annotations:
   kubernetes.io/ingress.class: kong
[...]
person marp    schedule 08.12.2020
comment
И что именно делает эта аннотация? Пожалуйста, объясните код, чтобы другие люди могли извлечь больше пользы из вашего ответа, чем просто код без объяснения. - person SwissCodeMen; 08.12.2020
comment
По крайней мере, это заставляет его работать. :) При поиске решения той же проблемы, что и на оригинальном плакате, я наткнулся на этот отчет об ошибке, попробовал, и это сработало. - person marp; 08.12.2020