[编者按:本文摘自我们的综合电子书《使用F5 NGINX管理Kubernetes流量:实用指南》。立即免费下载。]
除了HTTP流量,NGINX Ingress Controller还可对TCP和UDP流量进行负载均衡,因此可用于管理基于这些协议的各种应用和实用工具的流量,包括:
- MySQL、LDAP和MQTT,许多常用应用程序所使用的基于TCP的应用
- DNS、syslog和RADIUS,供边缘设备和非事务型应用使用的基于UDP的实用工具
在以下情况下,使用NGINX Ingress Controller进行TCP和UDP负载均衡,也是将网络流量分配到Kubernetes应用的有效解决方案:
- 使用端到端加密(EE2E),并由应用程序而非NGINX Ingress Controller处理加密和解密
- 需要为基于TCP或UDP的应用提供高性能负载均衡
- 您希望在将现有网络(TCP/UDP)负载均衡器迁移到Kubernetes环境时,尽量减少改动
NGINX Ingress Controller提供两种支持TCP/UDP负载均衡的NGINX Ingress资源:
- GlobalConfiguration资源通常由集群管理员用于指定可供DevOps团队使用的TCP/UDP端口(
listeners)。请注意,每个NGINX Ingress Controller部署只能有一个GlobalConfiguration资源。 - TransportServer资源通常由DevOps团队用于为其应用配置TCP/UDP负载均衡。NGINX Ingress Controller仅侦听管理员在GlobalConfiguration资源中实例化的端口。这样可以避免端口冲突,并确保DevOps团队仅通过管理员预先确定为安全的端口向外部公共服务公开应用,从而提供额外一层安全保障。
下图展示了GlobalConfiguration和TransportServer资源的一个示例用例。在gc.yaml中,集群管理员在GlobalConfiguration资源中定义TCP和UDP侦听器。在ts.yaml中,DevOps工程师在TransportServer资源中引用TCP侦听器,将流量路由到MySQL部署。

The GlobalConfiguration resource in gc.yaml 中的GlobalConfiguration资源定义了两个侦听器:端口514上的UDP侦听器用于连接syslog服务,端口5353上的TCP侦听器用于连接MySQL服务。
正在加载代码示例…
Lines 6–8 of the TransportServer resource in ts.yaml中的TransportServer资源第6–8行按名称(gc.yaml中定义的TCP侦听器mysql-tcp)引用该侦听器,第9–14行定义了将TCP流量发送到上游mysql-db的路由规则。
正在加载代码示例…
在此示例中,DevOps工程师使用MySQL客户端验证配置是否正常工作。输出中列出了MySQL部署内rawdata_content_schema数据库中的表,表明配置已生效。
$ echo “SHOW TABLES” | mysql –h <external_IP_address> -P <port> -u <user> –p rawdata_content_schema Enter Password: <password>
Tables_in_rawdata_content_schema
authors
postsUDP流量的TransportServer资源配置方式与此类似。有关完整示例,请参阅GitHub上的NGINX Ingress Controller存储库中的“基本TCP/UDP负载均衡”。高级NGINX用户可以使用stream-snippets ConfigMap键,通过原生NGINX配置扩展TransportServer资源,具体方法请参阅该存储库中的“TCP/UDP负载均衡支持”示例。
有关可在TransportServer资源中配置的功能的更多信息,请参阅NGINX Ingress Controller文档。
本文摘自我们的综合电子书《使用NGINX管理Kubernetes流量:实用指南》。立即免费下载。
立即开始30天免费试用,亲自体验基于NGINX Plus的NGINX Ingress Controller,或联系我们,讨论您的用例。
关于作者
相关博客文章
NGINX Plus R26 正式发布
NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。
使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。
Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。
NGINX Plus R19 正式发布
NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。
NGINX现已正式加入F5
NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。

