Kong Ingress Controller - 删除与 Kong 相关的标头

Mar*_*rco 3 response-headers kubernetes kong kong-ingress

我在 Kubernetes 集群上安装了 Kong,使用 kubernetes-ingress-controller 功能(https://github.com/Kong/kubernetes-ingress-controller)。

我想删除以下 Kong 的相关标题:

  • “X-Kong-上游-延迟”
  • “X-Kong-代理-延迟”
  • “通过”
  • “服务器”

我通过应用以下 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
Run Code Online (Sandbox Code Playgroud)

但只有“服务器”标头从响应中删除。有没有办法通过使用一些自定义资源以“kubernetes-ingress-controller”方式从响应中删除此类标头?

我发现了几个与此问题相关的 GitHub 问题(12),但所有这些问题都涉及更新 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
}
Run Code Online (Sandbox Code Playgroud)

这有什么帮助吗?谢谢...

编辑:Kong 版本是 2.0.3,kong-ingress-controller 版本是 0.8.1。

thi*_*cha 7

您可以通过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
Run Code Online (Sandbox Code Playgroud)