首页 > 解决方案 > k8s:使用 traefik 直接暴露 udp 端口​​(无 http)

问题描述

我刚刚在我的 kubernetes 集群上部署了 graylog。

我需要能够在 graylog.localhost/gelf 下将 udp 端口​​公开为入口规则。目前,我的服务是:

$ kubectl get service -o wide -l app.kubernetes.io/name=graylog
NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)     AGE   SELECTOR
graylog-1583177737-master   ClusterIP   10.43.131.54    <none>        9000/TCP    20m   app.kubernetes.io/instance=graylog-1583177737,app.kubernetes.io/name=graylog,graylog-role=master
graylog-1583177737-web      ClusterIP   10.43.141.128   <none>        9000/TCP    20m   app.kubernetes.io/instance=graylog-1583177737,app.kubernetes.io/name=graylog
graylog-1583177737-udp      ClusterIP   10.43.188.69    <none>        12201/UDP   20m   app.kubernetes.io/instance=graylog-1583177737,app.kubernetes.io/name=graylog

我的服务graylog-1583177737-udp如下:

$ kubectl describe service graylog-1583177737-udp
Name:              graylog-1583177737-udp
Namespace:         graylog
Labels:            app.kubernetes.io/component=UDP
                   app.kubernetes.io/instance=graylog-1583177737
                   app.kubernetes.io/managed-by=Helm
                   app.kubernetes.io/name=graylog
                   app.kubernetes.io/version=3.1
                   helm.sh/chart=graylog-1.5.2
Annotations:       <none>
Selector:          app.kubernetes.io/instance=graylog-1583177737,app.kubernetes.io/name=graylog
Type:              ClusterIP
IP:                10.43.188.69
Port:              gelf  12201/UDP
TargetPort:        12201/UDP
Endpoints:         10.42.0.48:12201,10.42.1.47:12201
Session Affinity:  None
Events:            <none>

我的入口控制器是 traefik。

标签: kubernetesgraylog2traefik-ingress

解决方案


如果我错了,请纠正我,但可以使用新版本的 traefik 2.2

UDPGithub traefik 项目页面上描述的支持: Github.com:traefik 项目站点将在2.2现在是候选发布的版本中提供。

在撰写本文时,当前可从 docker 映像存储库下载的最新 traefik 版本是 version 2.1.6

请看一下:

如果您对此有任何疑问,请告诉我。


推荐阅读