簡體   English   中英

使用Traefik在Kubernetes Ingress上為每個規則添加自定義標頭

[英]Add a custom header per rule on Kubernetes Ingress with Traefik

我要搬到kubernetes使用traefik作為我的入口控制。

我有一個應該響應3000多個網站的后端。 根據主機的不同,我需要在代理將代碼傳遞給后端之前為請求添加自定義標頭。

我可以使用ingress.kubernetes.io/custom-request-headers注釋為請求添加自定義標頭,但它是整個Ingress的注釋,因此我需要創建3000+ Ingress,每個網站一個。

還有另一種方法嗎? 創建3000+ Ingress與創建一個具有3000+規則的Ingress是一回事嗎?

是的,如果你想讓她的主機使用不同的標頭,你需要為每個主機創建一個Ingress對象。

你可以通過Traefik來做到這一點:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traeffic-custom-request-header
  annotations:
    ingress.kubernetes.io/custom-request-headers: "mycustomheader: myheadervalue"
spec:
  rules:
  - host: custom.configuration.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /

此外,你可以通過Nginx Ingress Controller做同樣的事情。

它支持configuration snipper 以下是使用它為每個Ingress對象設置自定義標頭的示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-configuration-snippet
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      more_set_headers "Request-Id: $request_id";
spec:
  rules:
  - host: custom.configuration.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /

順便說一下,您可以在群集上使用多個不同的入口控制器,因此不需要將所有內容遷移到只有一種類型的Ingress。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM