2

在这里查看链接器入口文档,它说我需要创建一个带有注释的入口

ingress.kubernetes.io/custom-request-headers: l5d-dst-override:web-svc.emojivoto.svc.cluster.local:80

此注释特定于单个服务,这听起来像是每个服务都必须有一个带有自己注释的新入口。例如,我不能有以下内容:

spec:
  rules:
      - host: example.com
        http:
          paths:
            - path: /path-one
              backend:
                serviceName: service-1
                servicePort: 80
            - path: /path-two
              backend:
                serviceName: service-2
                servicePort: 80

我可以在单个入口类中定义不同服务的路径。

我对这些文档的阅读准确吗?还是我错过了什么?我希望避免为我在 linkerd 中运行的每个服务创建一个入口。

4

2 回答 2

2

是的,不幸的是,如果您想使用ingress.kubernetes.io/custom-request-headers. 是的,如果您有 1000 个服务 - 您应该创建 1000 个入口以使其正常工作。

入口1:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web-ingress
  namespace: marcus
  annotations:
    kubernetes.io/ingress.class: "traefik"
    ingress.kubernetes.io/custom-request-headers: l5d-dst-override:service1.marcus.svc.cluster.local:80
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: service1
          servicePort: 80
        path: /

入口2:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web-ingress
  namespace: marcus
  annotations:
    kubernetes.io/ingress.class: "traefik"
    ingress.kubernetes.io/custom-request-headers: l5d-dst-override:service2.marcus.svc.cluster.local:80
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: service2
          servicePort: 80
        path: /
于 2020-08-26T08:36:56.860 回答
0

Traefik 是一个很好的解决方案,在这种情况下,如果它可以选择在标头中动态设置服务,那就太好了。

在已经开放一段时间的 traefik 项目中有一个未解决的问题。最后一次更新是在这些场景中为每个服务使用一个 Ingress。

这是类似的问题

于 2020-09-02T04:06:43.707 回答