博客 | 首席技术官办公室

F5 星期五: 入口与入口

Lori MacVittie 缩略图
洛里·麦克维蒂
2018 年 12 月 28 日发布

随着 DevOps 和 NetOps 领域的碰撞以及容器环境吸收了网络中传统使用的定义,探索在数据路径和容器环境方面使用经常令人混淆的术语“入口”似乎是明智之举。

入口和出口这两个术语通常用来从数据中心的角度描述网络流量的方向。 Ingress 是入站,egress 是出站。

随着容器环境的成熟,术语“入口”已被应用具有非常具体的、以application为中心的定义。

入口。 管理对集群中服务的外部访问的 API 对象,通常是 HTTP。 Ingress 可以提供负载平衡、SSL 终止和基于名称的虚拟托管。

需要暂停并注意的是,Kubernetes 环境中定义的入口资源描述了假定在容器边界内执行的功能。 

每个入口都是一个反向代理,它接受外部请求,并根据 Kubernetes 入口资源指定的规则将这些请求定向到正确的 Kubernetes 服务。 该服务反过来在一组相关容器之间对请求进行负载平衡,通常通过本机第 4 层(TCP)负载平衡算法。 这是统一API向外界呈现的方式之一。 入口解析 API 调用(URI 路径)并将其分发到容器集群内适当的容器托管的微服务。

F5 提供与传统 Kubernetes 入口相同的功能,但以 SNI 路由和第 4 层(TCP)负载平衡的形式添加了额外的功能。 执行 SNI(服务器名称指示器)路由的能力对于那些希望对消息交换进行端到端 TLS 加密的人来说是一项好处,因为它使 F5 能够根据标头中的信息正确路由请求,而无需解密实际的有效负载/消息。 虽然这限制了可应用于请求的功能范围(例如,无法扫描恶意内容),但它为出于监管或运营原因必须保持内容加密的架构提供了必要的支持。 第 4 层(TCP)负载平衡通常在容器环境外部使用,以扩展 Kubernetes 风格的入口服务。 

F5 通常部署在容器环境的外部。 它通常用作负载平衡解决方案,向外部公开集群,即提供对由容器集群组成的服务的公共访问。 CNCF 的一项调查发现,67% 的受访者选择负载均衡器选项来向外部公开集群服务,另有 33% 的受访者利用入口(L7)功能。

为了让我们提供与 Kubernetes ingress 相同的功能,我们使用容器原生的“连接器”来促进定义流量策略的策略的更新。 该连接器位于容器编排器(通常是 Kubernetes,但 Red Hat OpenShift 也很流行)内部并与其集成。 与 F5 入口的通信是通过 API 实现的。更新包括对入口资源定义(HTTP 路由策略)的更改以及对配置的更改,例如启动或删除影响当前服务定义的容器实例。

与简单入口服务相比,使用 F5 的优势在于能够将高级功能应用于入站和出站流量。 使用 F5 时可以应用安全性、标头丰富和特定于客户端的性能优化,而无需修改容器环境或架构或application本身。

其他资源: