在 Traefik Kubernetes Ingress 中开放 HTTP 和 HTTPS 以外的其他端口
Open other ports more than HTTP & HTTPS in Traefik Kubernetes Ingress
我已经使用以下配置将 Traefik 作为 Kubernetes 中的 Ingress:https://github.com/RedxLus/traefik-simple-kubernetes/tree/master/V1.7
并且适用于 HTTP 和 HTTPS,但我不知道如何打开其他端口进行转发,例如,具有 MySQL 端口 3306
的 Pod
感谢您的每一个回答!
Kubernetes Ingress API 不支持。但是可以使用 Traefik 作为 TCP proxy for your desired use-case, but only, if you make use of TLS encrypted connections. Otherwise, based on the level 4 protocol, it's not possible to distinguish between the different hostnames and you would have to use one entrypoint per TCP router. Check this issue in GitHub.
如果您使用 Ingress 资源并且该资源不支持其他答案中提到的 L4 类型流量,Traefik 将不支持它。
但是如果您使用的是 Nginx 入口控制器,则有一个解决方法,如 here 所述,使用带有入口控制器选项 --tcp-services-configmap
和 --udp-services-configmap
的 ConfigMap。那么您的 tcp-services
ConfigMap 将如下所示:
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
data:
9000: "default/example-go:8080"
这样做的好处是你的集群只有一个入口点(这适用于任何将用于 TCP/UDP 的入口)但缺点是与仅仅拥有一个额外层相比的开销已经在 TCP/UDP 端口上侦听的 Kubernetes Service(NodePort 或 LoadBalancer)。
我已经使用以下配置将 Traefik 作为 Kubernetes 中的 Ingress:https://github.com/RedxLus/traefik-simple-kubernetes/tree/master/V1.7
并且适用于 HTTP 和 HTTPS,但我不知道如何打开其他端口进行转发,例如,具有 MySQL 端口 3306
的 Pod感谢您的每一个回答!
Kubernetes Ingress API 不支持。但是可以使用 Traefik 作为 TCP proxy for your desired use-case, but only, if you make use of TLS encrypted connections. Otherwise, based on the level 4 protocol, it's not possible to distinguish between the different hostnames and you would have to use one entrypoint per TCP router. Check this issue in GitHub.
如果您使用 Ingress 资源并且该资源不支持其他答案中提到的 L4 类型流量,Traefik 将不支持它。
但是如果您使用的是 Nginx 入口控制器,则有一个解决方法,如 here 所述,使用带有入口控制器选项 --tcp-services-configmap
和 --udp-services-configmap
的 ConfigMap。那么您的 tcp-services
ConfigMap 将如下所示:
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
data:
9000: "default/example-go:8080"
这样做的好处是你的集群只有一个入口点(这适用于任何将用于 TCP/UDP 的入口)但缺点是与仅仅拥有一个额外层相比的开销已经在 TCP/UDP 端口上侦听的 Kubernetes Service(NodePort 或 LoadBalancer)。