[编辑——本文摘自我们的综合电子书《使用 F5 NGINX 管理 Kubernetes 流量》: 实用指南。 今天免费下载。]
除了 HTTP 流量外,NGINX Ingress Controller 还可以对 TCP 和 UDP 流量进行负载平衡,因此您可以使用它来管理基于这些协议的各种应用和实用程序的流量,其中包括:
使用 NGINX Ingress Controller 进行 TCP 和 UDP 负载均衡也是在以下情况下将网络流量分发到 Kubernetes应用的有效解决方案:
NGINX Ingress Controller 附带两个支持 TCP/UDP 负载均衡的 NGINX Ingress 资源:
监听器
)。 请注意,每个 NGINX Ingress Controller 部署只能有一个 GlobalConfiguration 资源。下图描述了 GlobalConfiguration 和 TransportServer 资源的示例用例。 在gc.yaml中,集群管理员在 GlobalConfiguration 资源中定义 TCP 和 UDP 监听器。 在ts.yaml中,DevOps 工程师引用 TransportServer 资源中的 TCP 侦听器,将流量路由到 MySQL 部署。
gc.yaml中的 GlobalConfiguration 资源定义了两个监听器:端口 514 上的 UDP 监听器用于连接 syslog 服务,端口 5353 上的 TCP 监听器用于连接 MySQL 服务。
ts.yaml中 TransportServer 资源的第 6-8 行引用了gc.yaml中名称为 ( mysql-tcp
)的 TCP 侦听器,第 9-14 行定义了将 TCP 流量发送到mysql-db
上游的路由规则。
在此示例中,DevOps 工程师使用 MySQL 客户端来验证配置是否正常工作,MySQL 部署中的rawdata_content_schema
数据库中的表列表的输出证实了这一点。
$ echo “显示表” | mysql –h <外部 IP 地址> -P <端口> -u <用户> –p rawdata_content_schema输入密码: <密码> Tables_in_rawdata_content_schema 作者 帖子
UDP 流量的 TransportServer 资源配置类似;有关完整示例,请参阅 GitHub 上 NGINX Ingress Controller 存储库中的基本 TCP/UDP 负载平衡。 高级 NGINX 用户可以使用stream-snippets
ConfigMap 键通过本机 NGINX 配置扩展 TransportServer 资源,如 repo 中的“支持 TCP/UDP 负载平衡”示例所示。
有关可在 TransportServer 资源中配置的功能的更多信息,请参阅NGINX Ingress Controller 文档。
这篇文章摘录自我们的综合电子书《使用 NGINX 管理 Kubernetes 流量》: 实用指南。 今天免费下载。
立即免费试用基于 NGINX Plus 的 NGINX Ingress Controller 30 天,或者联系我们讨论您的用例。
“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”