Kong Ingress Controller - удаление заголовков, связанных с Kong - PullRequest
2 голосов
/ 08 мая 2020

У меня есть рабочая установка Kong в кластере Kubernetes, использующая функциональные возможности kubernetes-ingress-controller (https://github.com/Kong/kubernetes-ingress-controller).

Я хотел бы удалить следующие заголовки, связанные с Kong :

  • «X-Kong-Upstream-Latency»
  • «X-Kong-Proxy-Latency»
  • «Через»
  • » Сервер "

Я попытался использовать плагин преобразователя ответов, применив следующий ресурс KongPlugin:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: kong-response-transformer
config:
  remove:
    headers:
    - "X-Kong-Upstream-Latency"
    - "X-Kong-Proxy-Latency"
    - "Via"
    - "Server"
plugin: response-transformer

Но из ответов удаляется только заголовок« Сервер ». Есть ли способ удалить такие заголовки из ответа способом "kubernetes-ingress-controller", используя некоторые настраиваемые ресурсы?

Я обнаружил несколько проблем GitHub, связанных с этой проблемой ( 1 , 2 ), но все они относятся к возможности обновления файла конфигурации Kong (/etc/kong/kong.yml), и я, честно говоря, не знаю, как применить такие изменения в моей среде Kubernetes. Передача следующих строк в ConfigMap не решает проблему:

# Add additional response headers
header_filter_by_lua_block {
    kong.header_filter()
    ngx.header["Server"] = nil
    ngx.header["Via"] = nil
    ngx.header["X-Kong-Proxy-Latency"] = nil
    ngx.header["X-Kong-Upstream-Latency"] = nil
}

Есть помощь по этому поводу? Спасибо ...

Редактировать: версия Kong - 2.0.3, версия kong-ingress-controller - 0.8.1.

1 Ответ

5 голосов
/ 13 мая 2020

Вы можете отключить эти заголовки с помощью свойства конфигурации headers. Также на той же странице отмечен тот факт, что свойства конфигурации также могут быть указаны как переменные среды .

Таким образом, вы можете обновить свое развертывание, указав свойство headers = off в качестве переменной среды. Что-то похожее на:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ingress-kong
  namespace: kong
spec:
  template:
    spec:
      containers:
        name: proxy
        image: kong:2.0.3
        env:
        - name: KONG_HEADERS
          value: off
...