随着DevOps与NetOps日益融合,容器环境也开始涵盖网络领域的传统定义,因此有必要从数据路径和容器环境的角度,探讨“入口(ingress)”这一常令人困惑的术语如何使用。
传统上,术语“入站”和“出站”用于从数据中心的角度描述网络流量的方向。入站是流入,出站是流出。
随着容器环境日趋成熟,术语“入口流量”已被赋予一个非常具体且以应用为中心的定义。
Ingress。一种API对象,用于管理从外部访问集群内服务的方式,通常采用HTTP。Ingress可提供负载均衡、SSL终止和基于名称的虚拟主机。
这里需要特别说明:Kubernetes环境中定义的Ingress资源所描述的功能,默认在容器边界内执行。

每个Ingress都是一个反向代理,用于接收外部请求,并根据Kubernetes Ingress资源中指定的规则,将这些请求转发到正确的Kubernetes服务。随后,该服务通常使用原生第4层(TCP)负载均衡算法,在一组关联的容器之间对请求进行负载均衡。这是向外部提供统一API的方式之一。Ingress会解析API调用(URI路径),并将其分发到容器集群内由相应容器托管的微服务。
F5不仅提供与传统Kubernetes ingress相同的功能,还增加了SNI路由和第4层(TCP)负载均衡功能。对于希望对消息交换进行端到端TLS加密的用户,SNI(服务器名称指示)路由非常有用,因为F5无需解密实际的有效负载或消息,即可根据标头中的信息正确路由请求。虽然这会限制可对请求应用的功能范围,例如无法扫描请求中的恶意内容,但对于因监管或运营原因而必须保持内容加密的架构,它可以提供必要支持。第4层(TCP)负载均衡通常部署在容器环境之外,用于扩展Kubernetes风格的ingress服务。

F5通常部署在容器环境之外,常用作负载均衡解决方案,将集群对外公开,即允许公众访问由容器集群组成的服务。一项CNCF调查发现,67%的受访者选择使用负载均衡器将集群服务对外公开,另有33%的受访者利用入口(L7)功能。
为了提供与Kubernetes入口相同的功能,需要使用容器原生“连接器”,以便更新用于定义流量处理方式的策略。此连接器位于容器编排器内部并与其集成(通常为Kubernetes,也常使用Red Hat OpenShift)。连接器通过API与F5入口通信。更新内容包括入口资源定义(HTTP路由策略)的变更,以及影响当前服务定义的配置变更,例如启动或移除容器实例。
与简单的入口服务相比,F5的优势在于能够为入站和出站流量应用高级功能。使用F5时,无需修改容器环境、容器架构或应用本身,即可应用安全、标头扩充和针对特定客户端的性能优化功能。
其他资源:
- 阅读文档:F5 Container Ingress Services
- 从Docker Store下载:F5 Container Ingress Services
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
2023年应用策略现状:成本与复杂性是推动多云网络发展的首要因素
多云网络解决方案可在核心、云和边缘环境之间实现无缝、安全的互联,为解决当今混合IT面临的挑战提供支持,因而备受业界关注。
