【问题标题】:Add a custom header per rule on Kubernetes Ingress with Traefik使用 Traefik 在 Kubernetes Ingress 上为每个规则添加自定义标头
【发布时间】:2018-03-19 14:29:55
【问题描述】:

我将使用 traefik 作为我的 Ingress Controller 迁移到 kubernetes

我有一个可以响应 3000 多个网站的后端。根据主机的不同,我需要在代理将请求传递给后端之前向请求添加自定义标头。

我可以使用ingress.kubernetes.io/custom-request-headers 注释向请求添加自定义标头,但它是整个 Ingress 的注释,因此我需要为每个网站创建 3000 多个 Ingress。

还有其他方法可以做到这一点吗?创建 3000+ 个 Ingress 与创建一个具有 3000+ 个规则的 Ingress 是一回事吗?

【问题讨论】:

    标签: kubernetes traefik


    【解决方案1】:

    是的,如果您希望她的主机使用不同的标头,您需要为每个主机创建一个 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 snipperHere 是使用它为每个 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: /
    

    顺便说一句,您可以在集群上使用多个不同的入口控制器,因此不需要将所有内容迁移到仅一种类型的入口。

    【讨论】:

    • 在您的示例中,您为所有规则设置了相同的标头,对吗?我需要为每个规则设置不同的自定义标头。我认为我不能这样做,因为我无法在规则对象内进行注释。也就是说,我唯一的选择是为每个主机创建一个入口(每个入口都有一个主机规则)。我已经创建了 3000 多个入口,每个规则都使用 traefik 作为控制器并且它正在工作,所以我现在还可以,但我很害怕,因为我不知道创建这么多入口是否可以问题与否。
    • 是的,你是对的。出于某种原因,我在您的问题中将 Ingress 作为 Ingress Controller 阅读:(我将更新答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多