KubeVela 1.10.4 现已发布
KubeVela v1.10.4 版本现已发布,包含多项实用功能,提升用 KubeVela 部署应用的可维护性。
新功能
虽然 v1.10.4 作为补丁版本遵循语义化版本规范,但同时带来了几项可选新功能,以及常规的错误修复和性能提升。这些新功能默认关闭(如适用),以保证向后兼容,方便用户按需启用。
支持 Kubernetes 1.31
团队投入大量精力,完成了对 Kubernetes v1.31 的全面支持,覆盖所有 KubeVela 代码库。用户现在可以放心在 Kubernetes 1.31 上运行 KubeVela,所有核心功能均已验证。
资源存在性校验
KubeVela 现在支持在应用部署前,校验定义中创建的资源是否已存在于集群中。该功能可覆盖 Component、Trait、Policy 和 WorkflowStep 等定义,降低运行时错误,提高部署可靠性。
开发者可通过安装时设置 ValidateResourcesExist 功能标志来启用。
Health 字段支持原生 Cue
编写 workload 定义时,开发者现在可以用原生 Cue 表达状态属性,而非嵌套字符串。底层会自动完成字符串与 Cue 的转换,并新增属性类型和必填字段校验。
此功能默认开启,但需确保使用最新版本的 KubeVela CLI 才能享受 Cue 格式带来的便利。字符串格式完全向下兼容。
增强状态报告
应用状态主要通过健康检查和自定义消息两种方式反馈,虽然能简明展示整体健康状况,但开发者反馈希望有更详细、长期保存的状态信息。
因此新增了 Status Details 字段,可存储开发者认为有用的任意信息,方便报告、调试和观察组件与 Trait。它使用熟悉的 Cue 语法提取信息,可访问健康检查和自定义消息中已有的 KubeVela 上下文。
例如,文档中示例:
attributes: status: details: {
readyReplicas: context.output.status.readyReplicas
totalReplicas: context.output.spec.replicas
readyPercentage: (context.output.status.readyReplicas / context.output.spec.replicas) * 100
deploymentMode: context.output.spec.strategy.type
}
会在应用状态中生成类似:
status:
services:
- name: my-service
status:
readyReplicas: "3"
totalReplicas: "3"
readyPercentage: "100"
deploymentMode: "RollingUpdate"
并统一了多种状态评估逻辑。Status Details 中的数据也会同步到健康检查和自定义消息(通过 context.status.details),方便复用。详细变化请参考“状态评估工作原理”。
应用状态指标
在 PR [#6824] 的修复中,应用健康状态即使工作流成功后也会持续评估。
为此,新增了应用级别指标,方便运维人员简化监控。指标包括:
-
kubevela_application_health_status{app_name, namespace} -
kubevela_application_phase{app_name, namespace} -
kubevela_application_workflow_phase{app_name, namespace}
通过数字映射保证指标低基数,有利于高效采集和监控。
此外,新增结构化日志记录应用状态变化,高细节补充指标信息。日志结构详见文档。
用户可启用 EnableApplicationStatusMetrics 功能开关,开启指标和结构化日志。
依赖感知工作流
Issue [#6852] 指出组件和工作流中 DependsOn 的混淆,且工作流未原生支持组件依赖。KubeVela 现会根据组件依赖自动动态添加工作流步骤依赖,逻辑更简洁、符合预期。
彩色日志支持
新增可选彩色日志,提升开发调试体验。本地开发时,使用 --dev-logs 参数开启控制台彩色输出。该功能不建议用于生产和 CI,默认关闭,关闭时保留原有日志功能。
日志格式改进包括:
- 结构化字段颜色区分(键青色,值灰色)
- 主要消息文本高亮白色
- 丰富的位置信息(文件:方法:行号)
- 类似 Spring Boot 风格
详情可查看官方博客。