【问题标题】:Kubernetes Ingress. Send http traffic to a port and https traffic to other portKubernetes 入口。将 http 流量发送到一个端口,将 https 流量发送到另一个端口
【发布时间】:2019-08-30 16:27:15
【问题描述】:

使用k8s ingress,是否可以使用同一个域将传入的http流量发送到一个端口,将https流量发送到另一个端口?

我在入口规范中没有找到任何东西来做它或在 nginx-ingress-controller 中的注释

【问题讨论】:

  • 该配置更像物理负载均衡器,即 TCP/UDP 层。 nginx-ingress 适用于 HTTP。

标签: kubernetes nginx-ingress


【解决方案1】:

为此,您将需要两个对象,即服务和入口。您需要配置类似于以下的入口:

spec:
  rules:
  - host: abc.com
    http:
      paths:
      - backend:
          serviceName: myservice
          servicePort: 80
        path: /uiaccesscontrol
      - backend:
          serviceName: myservice
          servicePort: 443
        path: /uiaccesscontrol

并且服务将具有类似于以下给出的配置:

spec:
  ports:
    - name: http
      port: 80
      targetPort: 80
    - name: https
      port: 443
      targetPort: 443

现在,https 流量将被路由到安全端口 443 和 http 到 80。

【讨论】:

  • 上面针对 servicePort 443 的第二个后端的入口配置对我不起作用。删除第二个后端后,配置工作(也适用于端口 443)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多