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 風格
詳情可查看官方博客。