werwerwer
ACP Kernel 拆解与瘦身参考

ACP release-4.3 Core 裁剪方案

历史基线参考

ACP release-4.3 Core 裁剪方案 —— 终态

数据源:alauda/artifacts.git@release-4.3 (ccec0e57 / v4.3.0-156-gccec0e57),wiki 渲染快照 2026-05-03。

版本基线:基线建立于 ACP 4.3,落地目标版本为 ACP 4.4(见 ROADMAP S4)。

裁剪目标:多集群 + 应用市场(仅 operator)+ 用户权限,CNI 只留 kube-ovn,访问入口由 ALB 兜底,HA 由 alive 兜底,全部前端及 Helm 市场组件移除。

一、概要

指标裁剪前裁剪后
Core 插件数2414(−10)
去重 Harbor 仓库数12456(−68,约 −55%)
含前端镜像(frontend/*)130
含 Helm 市场组件(captain + chartmuseum)20
含 calico CNI60

二、保留的 14 个插件(终态 artifacts.yaml 应包含的仓库)

bootstrap / 平台底座

1. sentry —— Installer(Helm AppRelease 控制器,全保留)

  • ait/chart-sentry
  • ait/sentry
  • ait/imagepulljob-base

2. base —— Cluster Base(删 2 个)

  • ait/chart-base
  • ait/chart-base-init
  • ait/cluster-api-controller
  • 3rdparty/kubectl

3. base-central —— Central Base(删 4 个前端)

  • ait/chart-base-central
  • ait/chart-base-operator
  • ait/base-api
  • ait/base-operator
  • ait/cluster-transformer — 多集群扇出控制器
  • ait/erebus — 多集群 API 代理
  • ait/operator-tools
  • ait/underlord
  • 3rdparty/kubectl
  • ops/alpine

4. platform-registry —— Internal Registry(全保留)

  • ait/chart-platform-registry
  • ait/platform-registry-installer
  • ait/registry
  • ait/registry-auth
  • acp/minio-plt

用户权限(auth)

5. auth-manager-central —— global IAM(删 3 个前端)

  • ait/chart-auth-manager-central
  • ait/apollo
  • 3rdparty/kubectl
  • ops/alpine

6. auth-manager —— 业务集群 RBAC 投影(全保留)

  • ait/chart-auth-manager
  • ait/auth-controller2
  • 3rdparty/kubectl

应用市场(仅 OLM)

7. marketplace —— 集群级 OLM(全保留)

  • ait/chart-marketplace
  • ait/marketplace
  • ait/olm-registry
  • 3rdparty/operator-framework/olm
  • 3rdparty/kubectl

8. marketplace-central —— 中央 OLM 视图(删 3 个:captain + chartmuseum + 前端)

  • ait/chart-marketplace-central
  • ait/marketplace
  • acp/updater-manager
  • 3rdparty/kubectl

多集群

9. cluster-manager —— CAPI Alauda Provider(删 1 个:image-loader)

  • ait/chart-cluster-api-provider-alauda
  • ait/capi-provider-alauda-apiservice
  • ait/capi-provider-alauda-manager
  • ait/cri-containerd
  • ait/kube-node
  • tkestack/etcd
  • tkestack/kube-apiserver
  • tkestack/kube-controller-manager
  • tkestack/kube-proxy
  • tkestack/kube-scheduler
  • tkestack/pause
  • 3rdparty/kubectl

网络与访问入口

10. kube-ovn —— CNI(全保留)

  • acp/chart-cpaas-kube-ovn
  • acp/kube-ovn

11. coredns —— 集群 DNS(全保留)

  • ait/chart-coredns
  • tkestack/coredns

12. alb —— 默认 Ingress + Gateway API 实现(全保留)

  • acp/chart-alauda-alb2
  • acp/alb2
  • acp/alb-nginx

13. alive —— kube-apiserver VIP / HA(全保留)

  • acp/chart-alive
  • tkestack/keepalived
  • tkestack/keepalived-installer

证书

14. cert-manager —— TLS / mTLS 签发(全保留)

  • 3rdparty/chart-cert-manager
  • 3rdparty/cert-manager-cainjector
  • 3rdparty/cert-manager-controller
  • 3rdparty/cert-manager-webhook

三、整体移除的 10 个插件

插件原仓库数移除理由
container-platform8global 业务 UI(icarus + cyclops + 4 个 frontend),整个就是前端
acp-business9业务集群 ACP CRD/admission/CSI sidecar/container-debug;不在保留功能内
prometheus16观测监控,不在保留功能内
aiops-base5AIOps 告警/通知 + ops-core 前端
ingress-nginx-operator4ALB 已覆盖 Ingress
envoy-gateway-operator5ALB 已覆盖 Gateway API
gatewayapi-plugin3含前端 + 高级 Gateway server,不在保留功能内
calico6CNI 只保留 kube-ovn
i18n-zh2纯前端中文资源
image-registry6业务集群对外 registry,不在保留功能内(平台自身用 platform-registry)

四、保留插件中删除的 12 个组件(diff 表)

插件删除组件理由
basealauda/alauda-console控制台 SPA 后端
baseait/image-loader前端资源投递 sidecar
base-centralfrontend/portalAngular 控制台壳
base-centralfrontend/chart-frontend前端总 chart
base-centralfrontend/assets前端静态资源
base-centralfrontend/i18n前端 i18n
auth-manager-centralfrontend/console-dex登录 UI
auth-manager-centralfrontend/console-project项目管理 UI
auth-manager-centralfrontend/user-plugin用户管理 UI
marketplace-centralacp/captain多集群 Helm 控制器
marketplace-central3rdparty/chartmuseumHelm chart 仓库
marketplace-centralfrontend/app-market-plugin应用市场前端
cluster-managerait/image-loader前端资源投递 sidecar

五、保留的 56 个唯一 Harbor 仓库(按命名空间)

acp/ — 8 个

acp/alb-nginx、acp/alb2、acp/chart-alauda-alb2、acp/chart-alive、acp/chart-cpaas-kube-ovn、acp/kube-ovn、acp/minio-plt、acp/updater-manager

ait/ — 32 个

ait/apollo、ait/auth-controller2、ait/base-api、ait/base-operator、ait/capi-provider-alauda-apiservice、ait/capi-provider-alauda-manager、ait/chart-auth-manager、ait/chart-auth-manager-central、ait/chart-base、ait/chart-base-central、ait/chart-base-init、ait/chart-base-operator、ait/chart-cluster-api-provider-alauda、ait/chart-coredns、ait/chart-marketplace、ait/chart-marketplace-central、ait/chart-platform-registry、ait/chart-sentry、ait/cluster-api-controller、ait/cluster-transformer、ait/cri-containerd、ait/erebus、ait/imagepulljob-base、ait/kube-node、ait/marketplace、ait/olm-registry、ait/operator-tools、ait/platform-registry-installer、ait/registry、ait/registry-auth、ait/sentry、ait/underlord

tkestack/ — 9 个

tkestack/coredns、tkestack/etcd、tkestack/keepalived、tkestack/keepalived-installer、tkestack/kube-apiserver、tkestack/kube-controller-manager、tkestack/kube-proxy、tkestack/kube-scheduler、tkestack/pause

3rdparty/ — 6 个

3rdparty/cert-manager-cainjector、3rdparty/cert-manager-controller、3rdparty/cert-manager-webhook、3rdparty/chart-cert-manager、3rdparty/kubectl、3rdparty/operator-framework/olm

ops/ — 1 个

ops/alpine

frontend/ — 0 个

(已全部移除)

alauda/ — 0 个

(alauda-console 与 ac 都已移除)

六、落地清单(实操步骤)

下面按"改动到哪个文件 / 怎么改"分组:

6.1 仓库目录级(10 个 plugin 整体删除)

直接 git rm -r 对应目录:

rm -rf container-platform acp-business prometheus aiops-base \
       ingress-nginx-operator envoy-gateway-operator gatewayapi-plugin \
       calico i18n-zh image-registry

6.2 plugin artifacts.yaml / metadata.yaml 修改

  • base/artifacts.yaml —— 删除 alauda/alauda-console 与 ait/image-loader 两条 artifacts[]
  • base-central/artifacts.yaml —— 删除 4 个 frontend/* 条目;考虑取消 metadata.yaml 顶部的 varyByDistributeChannel: true(裁完已无 channel 差异)
  • auth-manager-central/artifacts.yaml —— 删除 3 个 frontend/* 条目
  • marketplace-central/artifacts.yaml —— 删除 acp/captain、3rdparty/chartmuseum、frontend/app-market-plugin
  • cluster-manager/artifacts.yaml —— 删除 ait/image-loader

⚠️ 仅改 artifacts.yaml 不够——packtool pack update plugin <dir> 会按 chart 实际依赖的镜像重写 artifacts.yaml,把删掉的镜像加回来。需要先去 fork chart(见 6.3)。

6.3 chart 侧 fork(必须配合)

chart需要做的事
ait/chart-base-central关掉 console / image-loader Deployment 与 Ingress;移除前端 ConfigMap
ait/chart-base同上
ait/chart-auth-manager-central关掉 user-plugin / console-dex / console-project 的前端 Deployment 与对应 ConfigMap;apollo 保留
ait/chart-marketplace-central关掉 captain + chartmuseum 子 chart / Deployment / ServiceAccount / RBAC;移除 HelmRequest 相关 CRD watcher 配置
ait/chart-cluster-api-provider-alauda移除 image-loader sidecar 引用

6.4 引用 / 依赖一致性

  • _tools.yaml —— 不动(不含上述任何 plugin 镜像)。
  • .build/scripts/verify-product-consistency.sh + compare-product-yaml.py —— 多渠道(cn / intl / 等)必须同步剪裁;如果只删 cn 不删 intl,release 流水线会 fail。
  • .build/build.yaml 的 build-plugins 任务依赖 metadata.yaml 的 categories: [core] 过滤——14 个保留插件的 metadata.yaml 都不要丢这个 category,否则会被排除在 core 安装包之外。

6.5 上游消费方(外部仓库的影响)

  • acp-cpaas-installer 安装期会依次注册 platform-registry、container-platform、katanomi-operator、asm-global、application-services-core、logcenter、prometheus / vm 等 ModulePlugin(见 wiki flows/acp-install)。删除 container-platform / prometheus 后,installer 代码里这部分 installPlugins 列表也要同步精简,否则 install 会卡在缺失的 ModulePlugin 上。
  • acp-cluster-transformer 的 ModulePlugin → ModuleInfo 扇出对去掉的插件不再生效,但本身不需要改。
  • 业务集群上若历史遗留 Application / NamespaceOverview 等 acp-business CRD 的 CR,删除 acp-business 后这些 CR 会变成"孤儿"——需要数据迁移评估。

七、保留功能能跑通的链路(验证用例)

裁剪后下列链路应仍可工作(测试时按顺序覆盖即可验证完整性):

  1. 平台 install —— setup.sh → minialauda KIND → cpaas-installer Pod → Phase 1~12(裁剪过的 installPlugins 列表)→ sentry 接管 → 14 个 plugin 全部 Reconciled。
  2. 多集群注册 —— 在 global 上 apply Cluster CR → cluster-manager 提供 CAPI 通路、base-central/erebus 路由 API、base-central/cluster-transformer 把 auth-manager / marketplace / kube-ovn / cert-manager / coredns / alb / alive ModulePlugin 扇出到新集群 → sentry 在新集群上 Reconcile AppRelease。
  3. OLM 装 operator —— 在业务集群 apply Subscription → marketplace(OLM controller)走 Subscription → InstallPlan → CSV → operator Pod Ready。
  4. 用户权限投影 —— global 上 apply User/UserBinding → auth-manager-central/apollo 写 OIDC + AccessToken → auth-manager/auth-controller2 投影到目标集群的 ClusterRole/RoleBinding。
  5. 入口 + HA —— ALB 暴露 apollo / erebus API;alive keepalived VIP 给 kube-apiserver;CN/HTTPS 由 cert-manager 签发。

八、风险与待确认

  1. 没有 console:用户/项目/Subscription 全部要靠 kubectl apply CR;如果团队仍想要 UI,需要自研最小化前端或外部 IAM/Marketplace 工具集成。
  2. 没有 storage / CSI sidecar:删 acp-business 后,Alauda 重打包的 7 个 CSI external sidecar(csi-attacher / csi-provisioner / csi-resizer / csi-snapshotter / livenessprobe / csi-node-driver-registrar / node-driver-registrar)一并消失。如业务集群要用 CSI 驱动(topolvm / rook-ceph 等),需要把这 7 个 sidecar 镜像挪到一个最小化 chart 单独打包。
  3. chart fork 工作量:6.3 的 5 个 chart 每个都要拉分支改模板,Helm hooks 里若硬编码了被删 ServiceAccount / ConfigMap 名字,要逐一排查。
  4. 多渠道一致性:所有 distribute channel(cn / intl / reseller IDs)必须同步执行同样的剪裁,否则 verify-product-consistency.sh 会拦下 release 构建。

九、元信息

项值
数据快照2026-05-07
源仓库 SHAccec0e57
源仓库 tagv4.3.0-156-gccec0e57
ACP 版本4.3
裁剪决策来源用户 2026-05-07 多轮迭代(保留多集群 + 应用市场仅 operator + 用户权限;保留 alb/alive;删除前端与 image-loader)

On this page

ACP release-4.3 Core 裁剪方案 —— 终态一、概要二、保留的 14 个插件(终态 artifacts.yaml 应包含的仓库)bootstrap / 平台底座1. sentry —— Installer(Helm AppRelease 控制器,全保留)2. base —— Cluster Base(删 2 个)3. base-central —— Central Base(删 4 个前端)4. platform-registry —— Internal Registry(全保留)用户权限(auth)5. auth-manager-central —— global IAM(删 3 个前端)6. auth-manager —— 业务集群 RBAC 投影(全保留)应用市场(仅 OLM)7. marketplace —— 集群级 OLM(全保留)8. marketplace-central —— 中央 OLM 视图(删 3 个:captain + chartmuseum + 前端)多集群9. cluster-manager —— CAPI Alauda Provider(删 1 个:image-loader)网络与访问入口10. kube-ovn —— CNI(全保留)11. coredns —— 集群 DNS(全保留)12. alb —— 默认 Ingress + Gateway API 实现(全保留)13. alive —— kube-apiserver VIP / HA(全保留)证书14. cert-manager —— TLS / mTLS 签发(全保留)三、整体移除的 10 个插件四、保留插件中删除的 12 个组件(diff 表)五、保留的 56 个唯一 Harbor 仓库(按命名空间)acp/ — 8 个ait/ — 32 个tkestack/ — 9 个3rdparty/ — 6 个ops/ — 1 个frontend/ — 0 个alauda/ — 0 个六、落地清单(实操步骤)6.1 仓库目录级(10 个 plugin 整体删除)6.2 plugin artifacts.yaml / metadata.yaml 修改6.3 chart 侧 fork(必须配合)6.4 引用 / 依赖一致性6.5 上游消费方(外部仓库的影响)七、保留功能能跑通的链路(验证用例)八、风险与待确认九、元信息