Higress 0.6.0 版本发布:更简单,更易用
发布时间 2023-01-20
一、进展概要
Higress 0.6.0 开源版本主要围绕易用性演进,核心进展如下:
- 不再需要安装 Istio,简化安装和运维
- wasm 插件路由级生效配置更简单易懂
- 开源控制台提供功能预览
二、新特性说明
不再需要安装 Istio
在上一次社区周会讨论的议题《Higress 解除对 Istio 的强依赖》中,分析了依赖 Istio 的优劣势:
优势:
- 业务可以对 Mesh 中的东西向、南北向流量实现统一的管控
- 替换 istio ingress gateway,提供对 ingress 更好的支持
- 站在 istio 社区的肩膀上扩展能力,不用重复造轮子
劣势:
- 引入额外的安装和运维成本
- 对于简单的 ingress 使用场景,istio 需要安装的大量 CRD 有些多余,并对后续非 K8s 模式的支持带来负担
基于此,在 Higress 0.6.0 版本中,我们将 istio 作为选装组件提供,可以通过 helm 参数 global.enableMesh=true开启,默认为 false,即无需安装 istio。
Higress 安装步骤简化为一条命令:
如果随着业务演进,需要引入 istio 做 Service Mesh,并实现和 Higress 控制面统一,则可以通过以下命令安装 istio,并完成 Higress 适配,整个过程是平滑生效的:
如果已经安装了 istio ,希望解除依赖,也可以按如下命令平滑生效:
简化 Wasm 插件路由级生效配置
Higress 提供的 WasmPlugin CRD 完全兼容 Istio 的 WasmPlugin,且提供了额外的两个配置字段:
- defaultConfig:用作插件的默认配置,对于没有命中匹配规则的请求生效
- matchRules:用于匹配 ingress 或者域名,并生效指定的配置
以屏蔽请求的 request-block 插件为例:
注意 defaultConfig 和 matchRules.[].config 下的字段为插件的自定义配置字段。
三、控制台功能预览
特别感谢罗永波(abuexclusive)、项修卉(xiangxiuhui)、袁坤(heimanba)、董艺荃(CH3CHO) 等开发者的工作,Higress 开源控制台的前端页面和后端框架已经基本完成,目前可以访问地址:http://demo.higress.io 进行功能预览:
路由配置:
服务列表:
域名管理:
四、Milestone 规划
Higress 下个版本将继续围绕易用性进行迭代,预计在 2 月底推出,计划提供下列功能:
Higress 控制台:
- 服务来源可以配置 Nacos/Zookeeper 等注册中心
- 完成路由配置到 Ingress 转换的完整功能
- 提供路由/服务级的 QPS 和延时等指标监控图标
Higress 引擎侧:
- 完成 Method/Header/Query 路由匹配条件的 Ingress 注解,提供控制台集成
- 实现 Ingress API 基于 Nacos 做配置存储,可以无需依赖 K8s 进行安装部署
- 提供开箱即用的 WAF 插件
GA 版本预计将在 3 月份推出,欢迎加入 Higress 社区群,及时了解版本动向:
五、参与 Higress 社区
Higress 开源贡献小组正在火热招募贡献者。早期参与开源更容易成为项目 Committer,并有更多机会成为 Higress PMC(Project Management Committee) 的一员,参与主导 Higress 社区的前进方向。
欢迎加入 Higress 开发者钉钉群,了解更多详细信息:
1. 参与 Higress 控制台完善
技术栈:TypeScript/Java
Github 地址:https://github.com/higress-group/higress-console
主要内容包括:
- Higress 开源产品的交互设计和实现
- 集成开源可观测产品,实现 Higress metrics/logging/tracing 的产品化能力
- 基于 Higress REST API 的前后端对接
- 基于 K8s、Nacos 等配置来源实现 Ingress 等配置的存储和解析
2. 参与 Higress 的 Ingress 能力实现
技术栈:Go
Github 地址:https://github.com/alibaba/higress
主要内容包括:
- 承接 Higress 控制台需求,完成对应的 Ingress 注解或 Wasm 插件能力实现
- 挖掘更多 Envoy 网关的技术红利,通过 Ingress 注解或 Wasm 插件的方式,使其更易被使用
- 实现更多 Nginx Ingress 注解能力的兼容
3. 补充单测和 e2e 集成测试用例
技术栈:Go
Github 地址:https://github.com/alibaba/higress
主要内容包括:
- Ingress 注解/Wasm 插件相关实现的 e2e 测试用例编写
- Ingress 注解/Wasm 插件相关代码的单元测试编写
特别感谢**刘训灼(Xunzhuo) **为 Higress 社区贡献的 e2e 测试框架:https://github.com/alibaba/higress/tree/main/test,可以很简单地基于 Yaml 配置和少量代码完成基于 Ingress 能力的 e2e 集成测试;基于 PR 自动触发测试的机制,可以很好地保障 Higress 的迭代质量。
最后,祝大家假期愉快,新年快乐哦