slime v0.5.0¶
本次更新是slime子模块合并至slime后的首个版本,沿用之前命名规则,将本次变更命名为0.5.0,变更涉及lazyload、limiter、plugin、framework和i9s,以下分章节介绍本次变更的具体内容。
NOTE: 子模块代码,可前往 lazyload/limiter/plugin 和 i9s
DATE: 20221101
懒加载变更¶
新特性¶
-
cluster 模式下自动管理网格内所有 namespace ,不再需要手动指定启用懒加载的 namespace 列表,详见 Cluster mode supports all namespaces in mesh to use lazyload automatically #44
-
支持自动管理所有服务的端口,不再需要手动指定启用懒加载的端口列表,详见 Lazyload supports auto managing svc ports #157
-
新增配置项
domainAlias
,支持自定义依赖的服务别名,详见 Support domain alias in fence module config #46 -
global-sidecar 组件支持灾备场景下的流量转发
-
懒加载兜底流量,走到 global-sidecar 同一个端口,默认80
- 灾备流量,走到 global-sidecar 中和原请求相同的端口
详见 Improve global-sidecar request forwarding capabilities #47 和 Revert part of #47-Improve global-sidecar request forwarding capabilities #155
增强¶
- global-sidecar 组件改为特权容器,以支持为1024以下端口启用懒加载,详见 global-sidecar runs in privileged mode
- global-sidecar 组件支持自定义 annotations,详见 global-sidecar supports customize pod annotations
问题修复¶
- 目标服务名称补全的问题修复,详见 Update the rule of auto complete target service name #45 和 lazyload: fix complete dest svc name error #170
- 忽略无
Selector
的服务,以避免生成 namespace 级别的 Sidecar CR,详见 lazyload: ignore services without label selector #168 - 忽略目标地址为 ip 的场景,不再加入依赖范围,详见 lazyload: ignore situation when accesslog dest is ip #175
limiter 变更¶
limiter 的变更主要涉及到网关场景下的限流
新特性¶
- 支持网关场景下的单机限流, 详见 support gw single limit #156
- 支持网关场景下的全局共享限流,详见support global ratelimit in gw #185
- 支持网格场景下通过serviceEntry获取服务labels: 在之前的实现中,我们只会通过smartLimiter同namespace同name的svc获取服务labels,详见 https://github.com/slime-io/slime/pull/164
问题修复¶
- 在均分限流中,未剔除非健康状态的pod,详见 wrong calculation when pods is not ready #176
- 多个路由制定时,无序导致envoyfilter不停刷新的问题,详见multi route covert configPathc unorder in limiter #198
pluguin 变更¶
plugin 模块主要新增了 wasm extension 以及 hango Rider Extension
新特性¶
- 支持wams extension, 详见 pluginmanager support more flexible way to configure Wasm Extension and hango Rider Extension #193,关于hango rider 可参考hango Rider Extension
增强¶
- 支持直接配置rds, 详见 envoyplugin support configure rds indirectly #20
frameork 变更¶
增强¶
- 支持了
apiextensions.k8s.io/v1
版本的crds, 详见v1 - 提供了编译构建相关文档, 详见 supports building multiarch image #195
- 更新了slimeboot的使用文档, 详见 update slime-boot.md by @MouceL in #201
- 支持了clientSet 可配置qps, 详见 support configure clientset qps #191
- 支持透传labels至envoyfilter, 详见passing lables to envoyfilter #177
i9s¶
新特性¶
在v0.4.0发版后,我们根据内部的istio运维需求,开发了i9s模块,它在k9s基础上提供了istio运维能力,可以快速的查看istio的debug api以及envoy的config dump, 项目地址i9s
简单的使用视频[i9s](https://www.bilibili.com/video/BV1JZ4y1Y71i/?spm_id_from=333.999.0.0)