kubernetes - 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。
解决方案
如果我错了,请纠正我,但可以使用新版本的 traefik 2.2
。
UDP
Github traefik 项目页面上描述的支持: Github.com:traefik 项目站点将在2.2
现在是候选发布的版本中提供。
在撰写本文时,当前可从 docker 映像存储库下载的最新 traefik 版本是 version 2.1.6
。
请看一下:
- Github.com:Traefik UDP 支持问题
- Traefik.io:2.2 版支持 UDP 的入口点
- Traefik.io:2.2 版上的服务
- Traefik.io:2.1 版的入口点(最新)
如果您对此有任何疑问,请告诉我。
推荐阅读
- javascript - Text Tag React Native 中的函数
- kubernetes - “kubeadm upgrade apply v1.18.0-00”好像没有升级主节点
- python - 使用精灵表无法到达任何地方。我看过很多教程并在这里阅读
- c# - 如何在 .NET Core (C#) 中将此 SQL 查询编写为 LINQ 语句?
- c# - 当通过网络接收的数据更改属性时,如何将控件绑定到属性更改?
- vagrant - QEMU、KVM、Libvirt 有什么区别,如何配合 Vagrant 使用?这三个需要一起工作吗?
- c++ - WinAPI 如何移动窗口内容?
- node.js - 使用 tsconfig-paths-webpack-plugin 为“fs”和其他标准模块提供“Module not found”错误
- node.js - 使用 PM2 在端口 80 上运行的节点服务器错误
- r - R中的循环或函数,用于具有相似变量的多个分析