K8s Nginx Ingress 增加自定义Headers

问题来源

最近使用 K8s,通过社区版的 Nginx Ingress 来对外暴露服务,但是希望能够增加如Cache-Control等header标识,目前从网上资料来看,有两种方案:一种是通过注解 configuration-snippet 来实现,另一种则是通过 configmap 来实现。

解决方案

步骤一 编辑 custom_header.yaml

 apiVersion: v1
 data:
   test_header_1: "hello"
   test_header_2: "abc"
 kind: ConfigMap
 metadata:
   name: custom-headers
   namespace: default
 

通过 kubectl 生效该文件 kubectl apply -f custom_header.yaml

步骤二 修改 Nginx Controller 的 configuration 文件

kubectl edit configmap nginx-configuration -n kube-system

在data中增加两行

  apiVersion: v1
  data:
    add-headers: default/custom-headers
    proxy-set-headers: defualt-headers
    ...
  kind: ConfigMap
  meatadata:
    lables:
      app: ingress-nginx
      ...
  

步骤三 重启 Nginx Controller

kubectl rollout restart deploy [deployment-name] -n  [namespace] 

展开剩余53%