个人文章-编程思维

原文作者:Ilya Krutov of F5

原文链接:关于 NGINX Kubernetes Gateway,你需要知道的 5 件事

转载来源:NGINX 官方网站


在过去的几年里,F5 NGINX 帮助您成功走完了 Kubernetes 之旅,而今 F5 NGINX 又创造了新的里程碑 —— 我们发布了 NGINX 家族最新成员的内测版:F5 NGINX Kubernetes Gateway!

NGINX Kubernetes Gateway 是一个按照“Kubernetes Gateway API 规范”来执行的控制器,该规范是从“Kubernetes Ingress API 规范”演变而来的。Gateway API 是由 Kubernetes 网络特别兴趣小组(SIG‑NETWORK) 管理的开源项目,旨在改善 Kubernetes 的服务网络并实现其标准化。NGINX 是该项目的积极贡献者。

如果您目前正积极使用 Kubernetes,那么 Ingress API 对象和许多可用的 Ingress 实施对您来说一定不陌生。Gateway API 是暴露 Kubernetes 应用和 API 的最新方法。如欲了解有关当前其他可用选项的更多信息,请参阅《Kubernetes 网络入门》

近几年来,随着越来越多的企业跨各种混合云和多云环境在生产级 Kubernetes 集群中部署 Ingress controller,他们逐渐认识了使用 Gateway API 来解决各项挑战的必要性:

  • 其中一个挑战是,最初的 Ingress 资源在设计时只考虑了一个用户角色,即监督整个配置的 Kubernetes 运维人员或管理员。这种模型在许多拥有多个团队的企业中都不适用,包括应用开发人员、平台运维人员、安全管理员等,他们在协作开发和交付应用的过程中需要控制 Ingress 配置的不同方面。Gateway API用了新的模式,并使其能够轻松地委托多个角色对网络配置进行控制。
  • 另一个挑战是许多 Ingress 实施中的注释和自定义资源类型 (CRD) 激增,它们解锁了不同数据平面的功能,并实现了 Ingress 资源中没有内置的功能,例如基于标头的匹配、流量加权和多协议支持。Gateway API 可将此类功能作为核心 API 标准的一部分来进行提供。

NGINX Kubernetes Gateway 是什么?

NGINX Kubernetes Gateway 由 Ingress controller 发展而来,它解决了现代客户环境中多个团队管理 Kubernetes 基础架构的难题。此外,它还提供了许多无需实施 CRD 就可以实现的功能,简化了部署和管理流程。NGINX Kubernetes Gateway 利用经过验证的 NGINX 技术作为其数据平面,能够提供一流的性能、可视性和安全性。

NGINX Kubernetes Gateway 通过将基于角色的访问控制 (RBAC) 映射到相关角色(基础架构提供商、集群操作员和应用开发人员),对三个主要的 Gateway API 资源(GatewayClass、Gateway 和 Route)进行了标准化。

明确定义并划分不同角色的职责范围有助于简化管理。具体来说,基础架构提供商负责为 Kubernetes 集群定义 GatewayClasses,集群运维人员则负责在集群中部署和配置 Gateway(包括策略),而应用开发人员可以自由地将 Route 附加到 Gateway,以对外暴露应用。

此外,NGINX Kubernetes Gateway 通过对大多数用例的内置核心功能进行标准化处理,简化了 Kubernetes 环境中服务网络的部署和管理,从而减少了对 CRD 的需求。NGINX Kubernetes Gateway 内测版实施主要通过七层(HTTP 和 HTTPS)路由交付 Ingress controller 功能。未来的功能发展将受社区反馈和用例的驱动,包括四层路由功能。根据 Gateway API 和 NGINX Kubernetes Gateway 的长期路线图,它们最终将交付由 Ingress controller 提供的功能超集。

NGINX Kubernetes Gateway 与 NGINX Ingress Controller 有何不同?

F5 NGINX Ingress Controller通过实施 Ingress API 规范来提供核心功能,并且使用自定义注释、CRD 和NGINX Ingress 资源提供扩展功能。NGINX Kubernetes Gateway 遵守 Gateway API 规范,能够在简化实施的同时,更好地与处理服务网络配置的组织角色对齐。

下表比较了标准 Ingress API、带 CRD 的 NGINX Ingress Controller 和 Gateway API 的关键高级特性,描述了它们各自的功能。

特性标准 Ingress API带 CRD 的 NGINX Ingress ControllerGateway API
API 规范Ingress APIIngress API + CRDGateway API
多用户管理
七层协议(HTTP/HTTPS、gRPC)
七层负载均衡自定义策略
请求路由
请求操作有限
响应操作有限
四层协议(TLS、TCP、UDP)
四层负载均衡自定义策略
放行/阻断列表自定义策略
证书验证自定义策略
身份验证 (OIDC)自定义策略
速率限制自定义策略

NGINX Kubernetes Gateway 是否会取代 NGINX Ingress Controller?

NGINX Kubernetes Gateway 不会取代 NGINX Ingress Controller。更确切地说,它是一种基于 Gateway API 规范内测版的新兴技术,仅用于进行评估, 并不适用于生产环境。NGINX Ingress Controller 则是一种成熟、稳定、适用于生产环境并广为客户所用的技术。它可以通过自定义注释和 CRD 针对特定用例量身定制。举例来说,NGINX Ingress Controller 需要使用 NGINX Ingress 资源(包括 VirtualServer、VirtualServerRoute、TransportServer 和 Policy )来实施基于角色的方法。

我们认为,NGINX Kubernetes Gateway 短期内不会取代 NGINX Ingress Controller —— 如果真要取代也是几年之后的事情了。NGINX Ingress Controller 将继续为各种环境和用例中的南北向网络流量管理发挥着重要作用,包括负载均衡、流量限制、流量分割和安全防护。

NGINX Kubernetes Gateway 是一种 API 网关吗?

从名称上看,“Gateway API(网关 API)”听起来像是“API 网关”,但事实并非如此。正如我们在《API 网关 vs. Ingress Controller vs. Service Mesh该怎么选?》中讨论的那样,“API 网关”描述了一组可以通过不同类型的代理(ADC 或负载均衡器和反向代理最为常见,Ingress Controller 和 Service Mesh 日渐兴起)实现的用例。也就是说,就像 NGINX Ingress Controller 一样,NGINX Kubernetes Gateway 可用于 API 网关用例,包括将请求路由到特定的微服务、实施流量策略及支持灰度和蓝绿部署。其内测版主要用于处理 HTTP/HTTPS 流量,未来计划还将支持更多协议和用例。

立即开始使用

准备好评估这项令人兴奋的新技术了吗?获取 NGINX Kubernetes Gateway 的内测版

有关部署说明,请参阅 README文件。

有关 Gateway API 规范的详细信息,请参阅 Kubernetes Gateway API 文档

欢迎您积极提交反馈、功能请求、用例及任何其他建议,以便我们帮助您化解挑战并取得成功。请在我们的 GitHub 仓库中分享您的反馈。


更多资源

想要更及时全面地获取 NGINX 相关的技术干货、互动问答、系列课程、活动资源?

请前往 NGINX 开源社区:

版权声明:本文版权归作者所有,遵循 CC 4.0 BY-SA 许可协议, 转载请注明原文链接
https://segmentfault.com/a/1190000043376094

个人文章-编程思维

肯定很多企业、商家都遭受过羊毛党的侵入,比如恶意注册、刷单、领用的行为。羊毛党具体有哪些危害呢?羊毛党的危害虚假用户裂变:识别在游戏解锁、红包裂变、助力砍价、电商拼团等用户拉新活动中作弊行为。虚假登录注册:防止机器批量注册、代理IP注册、垃圾小号注册、手机黑卡注册等恶意注册行为,防止撞库攻击、账户盗用等恶意注册登录行为

个人文章-编程思维

企业名称、法人名称、法人身份证号码、统一社会信用代码,当一个企业能同时通过这四项验证的验证的时候,就能确认此企业具有一定的安全性与合法性。企业工商四要素核验API就是一种用验证企业信息真伪的接口。用户可以在挖数据平台直接导入营业执照等企业信息,系统会进行自动智能识别,通过系统中的工商信息核验,会得出企业信息真实性的结果

个人文章-编程思维

基于模型的测试生成在需求分析时,我们遇到了以下4个问题需要解决:自动化生成方法固然能够在短时间内快速生成大量测试数据,但是如何挑选具有高覆盖率、低数量级的测试数据集?这对于降低后续测试执行成本而言是一个关键问题;无论采用哪种组合算法,生成的决策表都会存在冗余和无效的决策,如果不能及时剔除,在后续生成测试用例时会造成额外

个人文章-编程思维

Eolink数据库智能API文档解决的问题数据库脚本测试,是在我们CMMI3项目管理中比较重要的一个步骤,需要根据业务逻辑进行完整的sql功能测试,其实很多的时候作为DBA也是很麻烦的创建一堆的文档来记录,特别是在执行批量脚本的时候麻烦的很,那么,我们可以使用Eolink的这个功能来记录、测试、导入导出 API ,这样

个人文章-编程思维

系列文章:Eolink神技之一:基于数据库智能生成API文档Eolink全API全生命周期管理解决的问题整个项目中的API管理是一个非常麻烦的事情,从代码接口文档管理到接口用例管理以及自动化接口测试、API网关、API监控等,都是一系列的问题。根本不是一两个人能全部搞完的,那么很大程度上出现了人资的困难,Eolink很

个人文章-编程思维

什么是 APIAPI(Application Programming Interface),指应用程序编程接口。 两个单独的应用程序需要中介程序才能相互通信。因此,开发人员经常需要搭建桥梁——也就是API,来允许一个系统访问另一个系统的信息或功能。API的主要优点是能够轻松实现和其他软件组件的交互。什么是 API 管理

linux资讯速推-编程思维

本文章盘点了 Linux 运维必备 150 个命令,可配合Linuxcool网站使用。定位你需要使用的命令,然后去这个网站查询详细用法即可。地址:https://www.linuxcool.com线上查询及帮助命令man:全拼manual,用来查看系统中自带的各种参考手册。help:用于显示shell内部命令的帮助信息

拾慧开发-编程思维

我将其分为四个阶段:手动部署、命令工具部署、docker镜像部署、平台化部署。这几个阶段,越往后越复杂,越往后越友好,毕竟平台化部署有备份还可回退,那是相当安全的。手动部署// 打包文件,生产dist目标文件 npm run build将dist下的文件使用 FTP文件传输工具 ,上传到服务器上去,就可以直接访问最新

nginx-编程思维

Nginx 关键作用 反向代理,负载均衡,动静分离 http 80 https 443 权重:就是在一个事务中的占比,就是在轮询的时候 例如 8080端口的weight=3;8080端口的weight=1; 进行反向代理的端口为80 假设对80端口进行了4次请求,那么这四请求将会有三次请求的是8080,1次是808

nginx 一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...【转】-编程思维

。 引言 早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。 从上面的描述中,主要存在两个问题:

nginx的安装及相关配置-编程思维

Nginx的安装及相关配置 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境。 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum i