首页 > 解决方案 > Treafik 直接在 Loadbalancer 上公开服务端口

问题描述

我正在尝试通过在 K3s 上运行的 Traefik Ingress 直接公开某些服务端口。我有一个用例,我想直接在 Loadbalancer 上公开某些端口,例如:

我尝试根据 Nginx Repo 中的这个线程创建以下配置(我知道它适用于 Nginx,但是我在 Traefik 中找不到合适的文档):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: multiportsvc
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: node2.givmecloud.in
    http:
      paths:
          #- path: /
       - backend:
            serviceName: webui
            servicePort: 80
        - backend:
            serviceName: the-udp-service
            servicePort: 1700
        - backend:
            serviceName: tomcat-tcp-service
            servicePort: 8080

但是,端口并没有直接暴露在 Ingress 上,只是端口 80/443 似乎暴露在负载均衡器上。我认为这个 SO 线程提到它不是直接可能的:

Nginx 似乎支持这一点,我查看了这个 Nginx 文档:https ://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/

traefik 是否可以通过 v1 或 v2 实现,或者我需要将 Nginx 或 MetalLB 用于这种类型的用例,如果没有,对于这种用例有什么建议?

谢谢,

标签: kubernetes-ingresstraefikk3s

解决方案


推荐阅读