发版日志

目录

4.1.4

修复的问题

  • 当使用 Alauda Container Platform Cluster Enhancer 提供的 etcd 备份功能时,如果用户配置将 etcd 备份到 S3 存储,插件无法获取 secretRef 中引用的 Secret 对象。原因是插件缺少读取 Secret 的 RBAC 权限,导致 S3 认证信息获取失败。此问题已在 ACP 4.1.4 中修复。
  • 长期未登录而被系统自动禁用的用户,在管理员手动激活后会被再次自动禁用,导致激活操作无法生效。此问题已经解决。
  • 之前 upmachinepool 资源的 status 字段会保存对应的 machine 资源,但未进行排序,导致在每次 reconcile 时都被判定为需要更新,从而造成审计数据过大。该问题现已修复。
  • 平台集群数量较多时,若使用批量设置项目配额功能为项目设置了配额后,将无法对单个集群的项目配额进行更新,此问题已修复。
  • 修复当单个节点上运行超过100个Pod时,可能导致Pod无法启动的速率限制问题。
  • 增强 Ceph灾难恢复指南,包括块存储的全面分步过程。
  • 修复了在项目导入命名空间过程中,修改Pod 安全策略配置不生效的问题。
  • 修复了在控制台中更新 Deployment 时,特定操作顺序会导致容器 lifecycle 配置意外丢失的问题。
  • 修复Multus中导致节点重启时Pod无法启动的竞态问题。

已知问题

  • 在某些情况下,用户会发现平台自动在 ResourcePatch 资源中记录的操作与用户实际对组件做的修改不一致,导致 ResourcePatch 控制器 apply 时,引发组件的非预期更改。
    临时解决方案: 用户需手动修改 ResourcePatch 资源,使其与预期变更保持一致。
  • 之前在 OperatorHub 中创建集群级别的 Instance 时,由于 web console 自动添加了 metadata.namespace 字段,导致出现 404 报错。此问题已在 ACP 4.2.0 修复。
  • 之前当集群中存在 Display Name 为空的节点时,用户在节点详情页面打开面包屑的节点下拉筛选框,会无法通过输入内容来筛选节点。此问题已在 ACP 4.2.0 修复。
  • 日志归档结束后未删除临时文件,导致磁盘无法得到释放,此问题已修复
  • 通过 YAML 创建应用时使用 defaultMode 字段导致应用创建失败。
    操作路径:容器平台 → 应用管理 → 应用列表 → 通过 YAML 创建(Create from YAML),当提交的 YAML 文件中包含 defaultMode 字段(通常用于 ConfigMap/Secret 的卷挂载权限配置)时,应用创建会失败并返回校验错误。
    解决方案:创建应用前手动移除 YAML 中所有 defaultMode 声明。
  • 当 Helm Chart 中设置了 pre-delete post-delete hook。
    执行删除模板应用,卸载 Chart 时,遇到某些原因导致 hook 执行失败,进而导致应用无法删除。需要排查原因,并优先解决 hook 执行失败的问题。

4.1.3

修复的问题

  • 修复无权限用户访问Alauda Service Mesh页面会一直转圈的问题。
  • 修复在开启 u2o 后,Pod 流表没有正确清理导致访问失败的问题
  • 修复了在平台从 v3.x 升级至 v4.x 后,若业务集群未升级,则其在新自定义监控面板中创建的监控指标无法用于 HPA 的问题。

已知问题

  • 当使用 Alauda Container Platform Cluster Enhancer 提供的 etcd 备份功能时,如果用户配置将 etcd 备份到 S3 存储,插件无法获取 secretRef 中引用的 Secret 对象。原因是插件缺少读取 Secret 的 RBAC 权限,导致 S3 认证信息获取失败。此问题已在 ACP 4.1.4 中修复。
  • 之前 upmachinepool 资源的 status 字段会保存对应的 machine 资源,但未进行排序,导致在每次 reconcile 时都被判定为需要更新,从而造成审计数据过大。该问题现已修复。
  • 平台集群数量较多时,若使用批量设置项目配额功能为项目设置了配额后,将无法对单个集群的项目配额进行更新,此问题已修复。
  • 之前在 OperatorHub 中创建集群级别的 Instance 时,由于 web console 自动添加了 metadata.namespace 字段,导致出现 404 报错。此问题已在 ACP 4.2.0 修复。
  • 之前当集群中存在 Display Name 为空的节点时,用户在节点详情页面打开面包屑的节点下拉筛选框,会无法通过输入内容来筛选节点。此问题已在 ACP 4.2.0 修复。
  • 日志归档结束后未删除临时文件,导致磁盘无法得到释放,此问题已修复
  • 修复当单个节点上运行超过100个Pod时,可能导致Pod无法启动的速率限制问题。
  • 增强 Ceph灾难恢复指南,包括块存储的全面分步过程。
  • 修复了在控制台中更新 Deployment 时,特定操作顺序会导致容器 lifecycle 配置意外丢失的问题。
  • 修复Multus中导致节点重启时Pod无法启动的竞态问题。
  • 通过 YAML 创建应用时使用 defaultMode 字段导致应用创建失败。
    操作路径:容器平台 → 应用管理 → 应用列表 → 通过 YAML 创建(Create from YAML),当提交的 YAML 文件中包含 defaultMode 字段(通常用于 ConfigMap/Secret 的卷挂载权限配置)时,应用创建会失败并返回校验错误。
    解决方案:创建应用前手动移除 YAML 中所有 defaultMode 声明。
  • 当 Helm Chart 中设置了 pre-delete post-delete hook。
    执行删除模板应用,卸载 Chart 时,遇到某些原因导致 hook 执行失败,进而导致应用无法删除。需要排查原因,并优先解决 hook 执行失败的问题。

4.1.2

修复的问题

  • 当 Operator 或 Cluster Plugin 中包含多个前端扩展时,前端扩展的左侧导航可能会出现点击无反应的问题。此前的临时解决方法是为扩展的 ConfigMap 添加注解 cpaas.io/auto-sync: "false"。该问题现已在代码层面正式修复。
  • 使用 violet upload 上传 Operator 新版本后,偶尔会出现无法安装新版本的情况。该问题已被修复。
  • global 集群升级后,未升级的业务集群中所有 Applications 以及各种类型的 Workloads 的监控面板将无法正常显示监控数据。

已知问题

  • 当使用 Alauda Container Platform Cluster Enhancer 提供的 etcd 备份功能时,如果用户配置将 etcd 备份到 S3 存储,插件无法获取 secretRef 中引用的 Secret 对象。原因是插件缺少读取 Secret 的 RBAC 权限,导致 S3 认证信息获取失败。此问题已在 ACP 4.1.4 中修复。
  • 之前 upmachinepool 资源的 status 字段会保存对应的 machine 资源,但未进行排序,导致在每次 reconcile 时都被判定为需要更新,从而造成审计数据过大。该问题现已修复。
  • 平台集群数量较多时,若使用批量设置项目配额功能为项目设置了配额后,将无法对单个集群的项目配额进行更新,此问题已修复。
  • 之前在 OperatorHub 中创建集群级别的 Instance 时,由于 web console 自动添加了 metadata.namespace 字段,导致出现 404 报错。此问题已在 ACP 4.2.0 修复。
  • 之前当集群中存在 Display Name 为空的节点时,用户在节点详情页面打开面包屑的节点下拉筛选框,会无法通过输入内容来筛选节点。此问题已在 ACP 4.2.0 修复。
  • 日志归档结束后未删除临时文件,导致磁盘无法得到释放,此问题已修复
  • 修复了在控制台中更新 Deployment 时,特定操作顺序会导致容器 lifecycle 配置意外丢失的问题。
  • 修复Multus中导致节点重启时Pod无法启动的竞态问题。
  • 修复在开启 u2o 后,Pod 流表没有正确清理导致访问失败的问题
  • 修复了在平台从 v3.x 升级至 v4.x 后,若业务集群未升级,则其在新自定义监控面板中创建的监控指标无法用于 HPA 的问题。
  • 通过 YAML 创建应用时使用 defaultMode 字段导致应用创建失败。
    操作路径:容器平台 → 应用管理 → 应用列表 → 通过 YAML 创建(Create from YAML),当提交的 YAML 文件中包含 defaultMode 字段(通常用于 ConfigMap/Secret 的卷挂载权限配置)时,应用创建会失败并返回校验错误。
    解决方案:创建应用前手动移除 YAML 中所有 defaultMode 声明。
  • 当 Helm Chart 中设置了 pre-delete post-delete hook。
    执行删除模板应用,卸载 Chart 时,遇到某些原因导致 hook 执行失败,进而导致应用无法删除。需要排查原因,并优先解决 hook 执行失败的问题。

4.1.1

修复的问题

  • 使用 violet upload 对文件夹中的多个 package 进行上传时,以前会因磁盘空间不足而失败。现已优化为自动及时清理已上传的 package,避免出现该错误。
  • 使用 violet upload 对文件夹中的多个 package 进行上传时,以前会因磁盘空间不足而失败。现已优化为自动及时清理已上传的 package,避免出现该错误。
  • 修复了在平台升级前执行 `violet push` 导致功能组件异常、阻塞升级的问题。现已将推送镜像与创建 CR分离,用户可选择仅推送镜像而不创建 CR。
  • 之前从集群卸载 Operator 后,其状态会错误地显示为 Absent,尽管实际状态仍为 Ready。用户需要通过 violet upload 手动重新上传才能恢复。此问题现已修复,Operator 在卸载后将正确显示为 Ready。

已知问题

  • 平台集群数量较多时,若使用批量设置项目配额功能为项目设置了配额后,将无法对单个集群的项目配额进行更新,此问题已修复。
  • 之前在 OperatorHub 中创建集群级别的 Instance 时,由于 web console 自动添加了 metadata.namespace 字段,导致出现 404 报错。此问题已在 ACP 4.2.0 修复。
  • 当 Operator 或 Cluster Plugin 中包含多个前端扩展时,前端扩展的左侧导航可能会出现点击无反应的问题。此前的临时解决方法是为扩展的 ConfigMap 添加注解 cpaas.io/auto-sync: "false"。该问题现已在代码层面正式修复。
  • 使用 violet upload 上传 Operator 新版本后,偶尔会出现无法安装新版本的情况。该问题已被修复。
  • 之前当集群中存在 Display Name 为空的节点时,用户在节点详情页面打开面包屑的节点下拉筛选框,会无法通过输入内容来筛选节点。此问题已在 ACP 4.2.0 修复。
  • 日志归档结束后未删除临时文件,导致磁盘无法得到释放,此问题已修复
  • 修复了在控制台中更新 Deployment 时,特定操作顺序会导致容器 lifecycle 配置意外丢失的问题。
  • 修复Multus中导致节点重启时Pod无法启动的竞态问题。
  • 修复在开启 u2o 后,Pod 流表没有正确清理导致访问失败的问题
  • 修复了在平台从 v3.x 升级至 v4.x 后,若业务集群未升级,则其在新自定义监控面板中创建的监控指标无法用于 HPA 的问题。
  • global 集群升级后,未升级的业务集群中所有 Applications 以及各种类型的 Workloads 的监控面板将无法正常显示监控数据。
  • 通过 YAML 创建应用时使用 defaultMode 字段导致应用创建失败。
    操作路径:容器平台 → 应用管理 → 应用列表 → 通过 YAML 创建(Create from YAML),当提交的 YAML 文件中包含 defaultMode 字段(通常用于 ConfigMap/Secret 的卷挂载权限配置)时,应用创建会失败并返回校验错误。
    解决方案:创建应用前手动移除 YAML 中所有 defaultMode 声明。
  • 当 Helm Chart 中设置了 pre-delete post-delete hook。
    执行删除模板应用,卸载 Chart 时,遇到某些原因导致 hook 执行失败,进而导致应用无法删除。需要排查原因,并优先解决 hook 执行失败的问题。

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,用于基于角色标签分组管理节点配置。
  • 集群安装时,自动创建两个默认的 MachineConfigPool,分别对应控制平面节点和工作节点。用户也可根据需要创建自定义 MachineConfigPool。

系统持续监控配置漂移,受影响节点会被标记为 Degraded,直到问题解决。

详细功能请参见机器配置

etcd 加密

发布:Alauda Container Platform etcd Encryption Manager
生命周期:Agnostic,异步于 ACP 发布。

为工作负载集群提供基于 AES-GCM 的 secrets 和 configmaps 的 etcd 数据加密密钥定期轮换。支持无缝重加密和密钥重载,且保持对最近 8 个密钥的向后兼容。

详情见etcd 加密

Kubernetes 证书轮换器

发布:Alauda Container Platform Kubernetes Certificates Rotator
生命周期:Agnostic,异步于 ACP 发布。

支持 Kubernetes 组件证书的自动轮换。

详情见自动 Kubernetes 证书轮换

集群增强

发布:Alauda Container Platform Cluster Enhancer
生命周期:Aligned

新功能及变更:

  • etcd 备份:将 etcd 备份功能从备份与恢复模块迁移至 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。
  • 自定义变量支持三种类型:常量、下拉选择和文本框。
    • 常量:固定值,不变。
    • 下拉选择:从预定义列表中选择。
    • 文本框:用户手动输入。
  • 统计图表支持图形模式,显示所选时间段的趋势曲线。
  • 值映射支持正则表达式和特殊值。
  • 支持面板复制,可在当前监控面板内复制图表。

租户管理

  • 项目配额支持自定义资源配额和存储类配额。
  • 插件新增指标:cpaas_project_resourcequotacpaas_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 自动继承正确安全设置。
  • 确保合规:帮助客户更好地满足内部安全策略和外部合规要求,确保容器化应用在受控环境中运行。

使用方法

  • 在 Namespace 上添加标签 security.cpaas.io/enabled

基于 Argo Rollouts 的产品化方案

基于开源 Argo Rollouts 构建的产品化方案,赋能用户对发布流程实现精细化控制。通过渐进式和可控的发布策略,最大限度减少新功能或版本上线带来的业务中断或失败风险,显著降低发布风险。

核心能力与价值

  • 蓝绿发布:通过并行部署新版本与现网环境,实现零停机更新。测试完成后,可即时或快速切换流量至新版本。
  • 金丝雀发布:逐步引入新版本,将少量(如 5%)生产流量导向新版本,观察性能和稳定性。基于预设指标(如错误率、延迟),系统可自动增加流量或回滚,限制潜在问题影响范围。
  • 平台认证的 Argo Rollout Chart:用户可直接下载社区开源 Argo Rollouts,或通过 Alauda Cloud 获取平台认证版本。

Alauda Container Platform Registry:与平台用户权限深度集成

为提供更安全便捷的镜像管理体验,轻量级镜像仓库与平台现有用户权限体系实现深度集成。

核心能力与价值

  • 与平台用户体系深度集成:镜像仓库无缝集成平台用户认证和基于角色的访问控制(RBAC)。开发、测试和管理员可直接使用平台现有账号,无需额外配置或独立账号管理。平台自动将用户在 Namespace 的权限映射到镜像仓库对应访问权限,例如用户仅能在其有权限的“特定 Namespace”中推拉镜像。
  • 命令行操作更顺畅:支持通过 CLI 工具进行镜像的 pullpush 操作,大幅提升操作效率和便捷性。

注意

  • 仅支持通过方案安装 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 的对象存储服务,提供更灵活高效的存储管理

Container Object Storage Interface (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 与节点解耦
  • 通过 Namespace 选择器和 Pod 选择器实现细粒度路由控制
  • 通过节点选择器实现灵活的出口网关调度

支持 AdminNetworkPolicy 类型的集群网络策略

Kube-OVN 支持社区新集群网络策略 API,允许集群管理员无需在每个 Namespace 配置即可强制执行网络策略。

相较于之前集群网络策略的优势

  • 社区标准 API(替代内部 API)
  • 与 NetworkPolicy 不冲突(优先级高于 NetworkPolicy)
  • 支持优先级设置

详情见:Red Hat 博客关于 AdminNetworkPolicy

弃用和移除的功能

移除 Docker 运行时

  • 之前平台虽非新集群默认运行时,但仍提供 Docker 运行时镜像。从 ACP 4.1 起,默认不再提供 Docker 运行时镜像。

移除模板应用

  • ApplicationTemplate Application 入口已正式移除。请确保所有模板应用在升级前已升级为“Helm Chart Application”。