发版日志
目录
4.1.0
新功能与增强
不可变基础设施
发布:
- Alauda Container Platform DCS Infrastructure Provider
- Alauda Container Platform Kubeadm Provider
这两个插件均为 Agnostic 生命周期,异步随 Alauda Container Platform (ACP) 发布。
- DCS Infrastructure Provider 实现了 Cluster API Infrastructure Provider 接口,集成华为数据中心虚拟化解决方案(DCS)。
- Kubeadm Provider 在基础设施提供的虚拟机上安装并配置 Kubernetes 控制平面和节点。
这两个插件共同实现了在 DCS 上的全自动集群管理。
文档正在准备中,发布后将同步上线。
机器配置
发布:Alauda Container Platform Machine Configuration
生命周期:Agnostic,异步随 ACP 发布。
Machine Configuration 管理集群节点上的文件更新、systemd 单元和 SSH 公钥,提供:
MachineConfig
CRD 用于向主机写入配置。
MachineConfigPool
CRD 用于基于角色标签分组和管理节点配置。
- 集群安装时自动创建
master
和 worker
池,支持自定义 worker 池,且自定义池继承默认 worker 池配置。
系统持续监控配置漂移,受影响节点会被标记为 Degraded,直到问题解决。
详细功能请参见 Machine Configuration。
etcd 加密
发布:Alauda Container Platform etcd Encryption Manager
生命周期:Agnostic,异步随 ACP 发布。
为工作负载集群提供基于 AES-GCM 的 secrets 和 configmaps 等数据的 etcd 加密密钥定期轮换。支持无缝重新加密和密钥重载,无需中断工作负载,且向后兼容最近 8 个密钥。
详情见 etcd Encryption。
Kubernetes 证书轮换器
发布:Alauda Container Platform Kubernetes Certificates Rotator
生命周期:Agnostic,异步随 ACP 发布。
支持 Kubernetes 组件证书的自动轮换。
详情见 Automated Rotate Kubernetes Certificates。
集群增强
发布:Alauda Container Platform Cluster Enhancer
生命周期:Aligned。
新功能及变更:
- etcd 备份:将 etcd 备份功能从 Backup & Recovery 迁移至 Cluster Enhancer,因使用场景和实现差异。优化部署方式,避免配置变更和升级时冲突。
- 事件清理:实现对过期 Kubernetes 事件的主动外部清理,防止事件在 etcd 中积累,降低 etcd 负载及重启时不稳定风险。
- 证书监控:将证书管理转为证书监控,配合告警规则和监控面板,替代原有证书管理功能。实现更高效的监控方式,同时监控 kube-apiserver 使用的回环证书。
- 集群监控面板迁移:将集群监控资源从
chart-cpaas-monitor
迁移至 Cluster Enhancer。
- 集群详情图表迁移:集群详情中的监控图表切换为自定义监控面板。
中文语言包
中文语言支持已从平台中解耦,作为 Chinese Language Pack 插件发布。平台安装默认使用英文,用户可根据需要安装该插件启用中文支持。
创建本地集群
ACP 4.1 起,创建本地集群仅支持平台提供的最新 Kubernetes 版本,替代之前可选的四个 Kubernetes 版本。
日志
- 升级 ClickHouse 至 v25.3 版本。
- 应用日志新增
POD IP
标签,支持按 POD IP
过滤。
- 优化标准输出日志采集,时间戳字段改为反映日志实际打印时间,而非采集组件时间,确保日志按正确顺序展示。
监控
- 升级 Prometheus 至 v3.4.2 版本。
- 自定义变量支持三种类型:Constant、Custom 和 Textbox。
- Constant:固定值,不变。
- Custom:从预定义列表中选择的值。
- Textbox:用户手动输入的值。
- 统计图表支持 Graph 模式,在统计值下方显示所选时间段的趋势曲线。
- 值映射支持正则表达式和特殊值。
- 支持面板复制,可在当前监控面板内复制图表。
租户管理
- 项目配额支持自定义资源配额和存储类配额。
- 插件新增指标:
cpaas_project_resourcequota
和 cpaas_project_resourcequota_aggregated
,可用于监控面板展示项目配额。
cpaas_project_resourcequota
:每个集群均可用。
cpaas_project_resourcequota_aggregated
:在 global
集群可用,聚合所有集群数据。
- 自定义角色新增限制,只能分配对应角色类型内的权限:
- 平台角色:可分配所有权限。
- 项目角色:只能分配平台预设的
project-admin-system
角色范围内权限。
- 命名空间角色:只能分配平台预设的
namespace-admin-system
角色范围内权限。
- 当前用户无权限的权限项不可分配。
用于安全 Pod 运行的自动 UID/GID 分配方案
在 Kubernetes 中,可以为每个命名空间配置专用的用户 ID(UID)和组 ID(GID)范围。当用户在该命名空间内部署 Pod 时,系统会根据命名空间预定义的安全策略,自动为 Pod 内所有容器设置 RunAsUser 和 fsGroup。这些用户和组将动态从该命名空间授权的 UID/GID 范围中分配。
核心能力与价值:
- 增强安全性:通过强制容器以非特权用户身份运行并限制 UID/GID 范围,有效防止容器逃逸和权限提升,遵循最小权限原则。
- 简化管理:开发者无需在每个容器或 Pod 配置中手动指定 UID/GID,配置命名空间后,所有 Pod 自动继承正确安全设置。
- 确保合规性:帮助客户更好地满足内部安全策略和外部合规要求,确保容器化应用在受控环境中运行。
使用方法:
- 在命名空间添加标签
security.cpaas.io/enabled
。
基于 Argo Rollouts 的产品化方案
基于开源 Argo Rollouts 的产品化方案,赋能用户对发布流程进行精细化控制。通过渐进式和可控的部署策略,最大限度减少新功能或版本上线带来的业务中断或失败风险,显著降低发布风险。
核心能力与价值:
- 蓝绿部署:通过在现有生产环境旁部署新版本,实现零停机更新。测试完成后,可即时或快速切换流量至新版本。
- 金丝雀部署:逐步引入新版本,将少量(如 5%)生产流量导向新版本,观察性能和稳定性。基于预设指标(如错误率、延迟),系统可自动增加流量或回滚,限制潜在问题影响范围。
- 平台认证 Argo Rollout Chart:用户可直接下载社区开源 Argo Rollouts,或选择通过 Alauda Cloud 获取平台认证版本。
Alauda Container Platform Registry:与平台用户权限深度集成
为提供更安全便捷的镜像管理体验,轻量级镜像仓库与平台现有用户权限体系实现深度集成。
核心能力与价值:
- 与平台用户体系深度集成:镜像仓库无缝集成平台用户认证和基于角色的访问控制(RBAC)。开发者、测试人员和管理员可直接使用现有平台账号,无需额外配置或单独账号管理。平台自动将用户在命名空间内的权限映射为镜像仓库的访问权限,例如用户只能在其有权限的“特定命名空间”中推拉镜像。
- 更顺畅的命令行操作:支持通过 CLI 工具进行镜像的
pull
和 push
操作,大幅提升操作效率和便捷性。
注意:
- 仅支持通过解决方案安装 Alauda Container Platform Registry。
基于 KEDA 的自动扩缩容方案
为使应用智能响应实际负载,平台提供基于 KEDA(Kubernetes Event-driven Autoscaling)的自动扩缩容方案。
核心能力与价值:
- 事件驱动弹性伸缩:KEDA 支持 70 多种类型的 scaler,自动扩缩容应用(如 Deployment、Job 等)。除传统 CPU 和内存利用率外,还可监控消息队列长度(Kafka、RabbitMQ 等)、数据库连接数、HTTP 请求率及自定义指标。
- 平台认证 KEDA Operator:可通过 Alauda Cloud 下载并安装平台认证版本。
方案:
- 产品提供两种方案:基于 Prometheus 指标的自动扩缩容和缩容至零。
跨集群应用灾备方案(Alpha)
平台新增基于 GitOps 的跨集群应用灾备(DR)方案,显著提升应用弹性和可用性。
核心能力与价值:
- 多样化灾备模型:灵活支持全球高并发需求的 Active-Active(AA-DR)、优化资源利用的 Active-Standby 双活(AS-DR)以及严格保证数据一致性的 Active-Passive(AP-DR)。
- 自动化 GitOps 同步:结合 ApplicationSet 和 Kustomize,实现跨集群配置自动同步,确保灾备环境始终处于就绪状态。
- 灵活流量管理:利用第三方提供的 DNS 和 GSLB 功能,实现智能健康检查驱动的流量切换和快速故障切换,最大限度减少服务中断。
- 多维度数据同步:方案提供数据库级、存储级和应用级等多种同步方式指导,确保集群间数据最终一致,为业务连续性奠定基础。
- 简化故障切换流程:明确故障检测、流量切换、状态提升和服务恢复等详细步骤,保障灾难发生时高效有序的故障切换。
注意:
- 灾备方案中的数据同步与客户业务特性和数据量密切相关,差异较大,实际实施需结合具体场景定制。
依赖组件全面升级,提升稳定性与安全性
本次发布升级以下核心组件:
- KubeVirt 升级至 v1.5.2
- Ceph 升级至 18.2.7
- MinIO 升级至 RELEASE.2025-06-13T11-33-47Z
其他开源依赖也同步至最新社区版本,修复大量已知问题和安全漏洞,确保系统稳定可靠。
虚拟化功能增强,提升业务连续性与安全性
基于虚拟化环境的实际应用需求,本次更新引入多项关键增强:
- 高可用迁移:节点故障时自动将虚拟机迁移至健康节点,保障业务不中断。
- 虚拟机克隆:快速从现有虚拟机创建新虚拟机,大幅提升部署效率。
- 虚拟机模板:支持将现有虚拟机转换为模板,实现类似配置环境的快速批量部署。
- 可信计算(vTPM):虚拟机支持可信计算功能,增强整体安全性。
详细使用说明和操作指南已更新至用户手册。
基于 COSI v2 的对象存储服务,提供更灵活高效的存储管理
容器对象存储接口(COSI)升级至 v2(alpha),带来以下改进:
- 多集群访问:支持同时访问多个不同的 Ceph 或 MinIO 存储集群,实现更高效的集中管理。
- 细粒度配额管理:支持对不同存储类别灵活设置配额,优化资源利用。
- 权限管理增强:支持创建多种用户访问权限,包括读写、只读和仅写模式。
- 匿名访问支持:Ceph COSI 驱动支持匿名访问,通过 Ingress 配置快速实现外部 HTTP 程序访问。
ALB 进入维护模式
WARNING
ALB 将停止新功能开发,仅接受维护和安全修复。4.1 版本支持 ingress-nginx,4.2 版本支持 Envoy Gateway。
未来规划:
- ingress 用户直接使用 ingress-nginx
- 新功能仅支持 GatewayAPI
- 除非有强需求(如项目端口分配),避免提及 ALB 专属能力
GatewayAPI 当前不支持的 ALB 专属功能:
- 基于端口的网关实例分配
- 基于 IP 和 IP 范围的流量转发
- 负载均衡的 EWMA 算法
- WAF 使用
- 规则级别监控视图
使用 ingress-nginx 提供 Ingress 功能
引入社区主流的 Ingress 控制器实现,替代现有基于 ALB 的 Ingress 场景。
核心能力与价值:
- 兼容主流社区实践,避免沟通歧义
- Ingress UI 支持自定义注解,充分利用 ingress-nginx 丰富扩展能力
- 修复安全问题
Kube-OVN 支持新型高可用多活出口网关
新出口机制解决了以往集中式网关的局限性。新出口网关具备:
- 通过 ECMP 实现主动-主动高可用,支持水平吞吐扩展
- 通过 BFD 实现亚秒级故障切换
- 复用底层模式,出口网关 IP 与节点解耦
- 通过命名空间选择器和 Pod 选择器实现细粒度路由控制
- 通过节点选择器实现灵活的出口网关调度
支持 AdminNetworkPolicy 类型的集群网络策略
Kube-OVN 支持社区新集群网络策略 API,允许集群管理员无需在每个命名空间配置,即可强制执行网络策略。
相较于之前集群网络策略的优势:
- 社区标准 API(替代内部 API)
- 与 NetworkPolicy 无冲突(优先级高于 NetworkPolicy)
- 支持优先级设置
详情见:Red Hat Blog on AdminNetworkPolicy
弃用与移除功能
Docker 运行时移除
- 之前平台虽非新集群默认运行时,但仍提供 Docker 运行时镜像。ACP 4.1 起,默认不再提供 Docker 运行时镜像。
模板应用移除
- Application → Template Application 入口已正式移除。请确保所有模板应用升级为“Helm Chart Application”后再进行升级。
修复的问题
此次发版无相关问题。
已知问题
- 在从 3.18.0 升级到 4.0.1 时,如果 global 集群使用内置镜像仓库且开启了 protect-secret-files 开关,执行升级脚本可能会超时报错。目前暂无可用的临时解决方案。
- 偶发情况下,Pod 可能卡在 Terminating 状态且无法被 containerd 删除。尽管 containerd 执行了删除操作,但容器仍处于伪运行状态。containerd 日志显示 "OCI runtime exec failed: exec failed: cannot exec in a stopped container: unknown",而容器状态显示为 Running。此问题在 containerd 1.7.23 版本中极少发生(仅观察到一次),触发时只影响单个 Pod。如遇此情况,可通过重启 containerd 作为临时解决方法。这是 containerd 社区已知问题,详见 https://github.com/containerd/containerd/issues/6080。
- 将集群升级到 Kubernetes 1.31 时,集群中的所有 Pod 将会重启。这是由于 Kubernetes 1.31 中对 Pod Spec 字段的变更所导致,无法避免。更多详情,请参阅 Kubernetes 问题报告:https://github.com/kubernetes/kubernetes/issues/129385