VMware Cloud Foundation简称 VCF是博通旗下面向企业级私有云场景的一体化基础架构平台而VCF 9.1版本迭代后新增了多款支持后置部署的运维类组件。在云计算运维领域这类集群初始部署完成后再追加安装的工具、服务统一被称作Day-N 组件。这些组件可以根据企业业务需求灵活选配为 VCF 集群补充日志管理、实时监控、网络诊断、多租户自动化等能力。但在实际落地运维中不少技术人员会遇到一个核心问题当业务架构调整、组件功能不再使用或是需要重构集群环境时VCF 自带的生命周期管理界面LCM UI并未提供图形化的一键卸载功能无法通过可视化界面完成可选 Day-N 组件的移除。针对这一官方功能短板VMware 在配套知识库文档中提供了专用 Python 清理脚本成为目前卸载这类组件的唯一标准方案。本文基于官方技术文档结合实际运维场景全面拆解 VCF 9.1 中各类可选 Day-N 组件的架构特点、前置准备、分步卸载流程以及风险规避要点区分不同部署形态组件的操作差异手把手讲解如何使用【cleanup_component.py】脚本完成卸载覆盖【日志管理】、【实时指标】、【VCF 网络运维工具 (VON)】、【VCF 自动化 (VCFA)】等主流组件帮助运维人员安全、完整地完成组件下线操作。一、VCF 9.1 可选 Day-N 组件功能与分类介绍在 VCF 集群完成初始架构部署后用户可按需部署多款后置 Day-N 组件VCF 9.1 主推的四款核心可选组件各有分工也是日常运维中最常需要卸载的服务下面逐一介绍其功能与部署形态【日志管理】该组件是 VCF 平台的统一日志中心其前身是独立工具【VCF Operations for Logs】在 9.1 版本中完成架构整合直接内嵌至【VCF Operations】运维平台内部。它负责全集群虚拟机、物理节点、后台服务的日志收集、检索、归档与故障分析是运维排障的核心工具。该组件依托 VCF 管理服务VCFMS运行属于标准平台内置服务组件。【实时指标】主打高精度集群性能监控能力数据采集精度最高可达 2 秒能够毫秒级抓取硬件资源、虚拟机负载、网络流量、后台进程等全维度运行指标适用于对监控实时性、告警灵敏度要求较高的生产私有云环境。需要特别注意的是该服务并非单一进程而是由实时指标主服务和实时指标存储服务两个独立子组件组合而成卸载时需要完整移除两者。【VCF 网络运维工具 (VON)】英文全称为 VCF Operations for Networks简称 VON是面向网络场景的专用运维组件。它主打网络可视化与故障诊断能力部署后可实现全网拓扑展示、链路状态检测、异常流量分析、网络故障定位等功能大幅降低大型 VCF 集群的网络运维难度。和前两类组件不同VON 不依托 VCFMS 运行采用传统 OVA 虚拟设备镜像独立部署拥有专属虚拟机架构形态差异直接导致其卸载指令完全不同。【VCF 自动化 (VCFA)】英文全称为 VCF Automation简称 VCFA是面向多租户模式的现代化自助服务平台。借助该组件云平台管理员可以开放自助资源申请入口各租户能够自主创建、管理、释放云资源减少人工运维介入提升私有云运营效率。VCFA 是本次所有组件中架构最复杂的一款不仅在 VCFMS 中注册了多项关联服务底层还搭建了专属的 VCFMS 集群与多台虚拟机卸载流程分为多个阶段操作门槛最高。除以上四大核心组件外在 VCF 集群的附加实例后续新增的集群节点区别于首次部署的主实例中还会存在【仓库服务】、【身份代理】等可选后置组件这类组件同样归属通用服务范畴可使用同一套脚本指令完成卸载。同时官方明确划分了不同实例的可卸载范围主 VCF 实例集群首个部署节点仅支持卸载【日志管理】、【实时指标】、VON、VCFA 四类组件附加 VCF 实例后续扩容新增节点可卸载【实时指标】、【仓库服务】、【身份代理】等附加实例专属组件。运维操作前务必先确认当前集群实例类型避免误操作。二、组件卸载前置准备工作正式执行卸载命令前需要完成脚本获取、环境配置、权限校验三大准备工作这是保障卸载流程顺利运行的基础缺一不可。2.1 核心工具获取官方清理脚本由于 VCF LCM 界面无卸载入口所有 Day-N 组件的卸载都依赖官方提供的【cleanup_component.py】Python 脚本。首先需要从 VMware 官方知识库文档中下载该脚本文件并妥善存放至后续执行操作的主机中。该脚本是整套操作的核心载体所有查询、删除指令都基于此文件运行。2.2 脚本运行环境要求存放并执行脚本的主机无需特殊配置满足以下基础条件即可系统已部署完整 Python 运行环境主流 Python3 全版本均可兼容无依赖库缺失问题主机与目标 VCF 集群、VCF 管理服务节点、vCenter Server 网络互通相关访问端口正常放行执行脚本的账号拥有文件运行、网络访问权限。额外补充如果卸载对象是 VON 或 VCFA脚本运行过程中会自动联动 vCenter Server 删除关联虚拟机因此后续必须配置 vCenter 的管理员账号密码仅卸载【日志管理】、【实时指标】等通用组件时vCenter 账号可选择性忽略。2.3 统一配置环境变量为了避免重复输入冗长的集群地址、账号密码减少手动输入带来的失误建议提前在执行主机中定义全局环境变量统一管理所有连接参数。参考官方示例配置如下运维人员可根据自身实际环境的域名、账号、密码进行修改VCF_FLEET_FQDNvcf-flt01.vcf.lab VCFMS_RUNTIME_FQDNvcf-msr01.vcf.lab VCFMS_USERNAME*受保护账号* VCFMS_PASSWORDVMware1!VMware1! VCENTER_USERNAME*受保护账号* VCENTER_PASSWORDVMware1!VMware1!参数详细释义VCF_FLEET_FQDNVCF 集群全局完整域名FQDN用于定位目标集群VCFMS_RUNTIME_FQDNVCF 管理服务VCFMS运行节点域名是平台核心服务入口VCFMS_USERNAME / VCFMS_PASSWORDVCF 管理服务的登录账号与密码所有组件操作的基础权限VCENTER_USERNAME / VCENTER_PASSWORDvCenter Server 管理员账号与密码卸载 VON、VCFA必填。环境变量配置完成后后续所有命令均可直接调用变量简化操作流程。三、分类型组件分步卸载实操流程根据部署架构与运行载体的差异VCF 9.1 可选 Day-N 组件分为三大类别对应三套完全独立的脚本指令体系下面按类别逐一讲解完整操作步骤、终端命令以及关键注意事项。3.1 第一类通用服务组件日志管理、实时指标、仓库服务、身份代理这类组件统一归类为vsp-component类型依托 VCFMS 运行也是部署范围最广的组件包含【日志管理】、【实时指标】、附加实例的【仓库服务】与【身份代理】。整套操作分为查询组件 ID和执行卸载两个核心步骤。3.1.1 步骤一查询可卸载组件及唯一 ID在删除组件前必须先获取目标组件的全局唯一 ID脚本提供了列表查询指令在终端中执行以下命令python cleanup_component.py list vsp-component --fleet-fqdn${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username${VCFMS_USERNAME} --vcf-services-runtime-password${VCFMS_PASSWORD}命令执行完成后终端会自动输出当前集群内所有支持卸载的组件清单并同步展示每一个组件对应的 ID。脚本会自动过滤集群内置核心组件不会展示无法卸载的服务从根源避免误删关键程序。结合前文提到的实例规则根据自身是主实例还是附加实例筛选目标组件 ID 并记录。3.1.2 步骤二根据组件 ID 执行卸载操作将上一步获取的组件 ID 替换至命令中执行删除指令即可完成组件卸载。我们以卸载【日志管理】为例示例组件 ID95ed2c95-82a3-40c5-a5b8-9580e89b23a3执行以下命令python cleanup_component.py delete vsp-component --fleet-fqdn${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username${VCFMS_USERNAME} --vcf-services-runtime-password${VCFMS_PASSWORD} --component-id95ed2c95-82a3-40c5-a5b8-9580e89b23a3核心避坑提醒【实时指标】服务由两个独立子组件组成两个组件拥有不同 ID必须依次执行两次删除命令将两个子组件全部卸载。如果仅删除其中一个会出现后台进程残留、端口占用、平台持续告警等异常问题无法实现完整下线。3.2 第二类【VCF 网络运维工具 (VON)】卸载流程VON 是典型的 OVA 镜像部署组件不依赖 VCFMS 运行拥有独立虚拟机因此需要使用专属的ova-component指令集整套流程分为查询 OVA 组件 ID、脚本卸载组件、手动清理平台集成配置三步操作复杂度高于通用组件。3.2.1 步骤一查询 OVA 类型组件 ID执行专属列表查询命令识别 VON 对应的组件 IDpython cleanup_component.py list ova-component --fleet-fqdn${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username${VCFMS_USERNAME} --vcf-services-runtime-password${VCFMS_PASSWORD}终端输出清单后找到【VCF 网络运维工具 (VON)】对应的 ID 并记录。3.2.2 步骤二执行 VON 组件卸载由于 VON 存在独立虚拟机卸载过程需要联动 vCenter 清理虚拟机资源因此命令中必须追加 vCenter 账号密码参数。使用记录的组件 ID示例 IDe1033a3a-9675-324c-9c43-0efc7dc56796执行删除命令python cleanup_component.py delete ova-component --fleet-fqdn${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username${VCFMS_USERNAME} --vcf-services-runtime-password${VCFMS_PASSWORD} --vcenter-username${VCENTER_USERNAME} --vcenter-password${VCENTER_PASSWORD} --component-ide1033a3a-9675-324c-9c43-0efc7dc56796脚本运行期间会自动连接 vCenter完成 VON 虚拟机的关停、删除工作全程无需人工干预虚拟机操作。3.2.3 步骤三手动清理【VCF Operations】集成配置脚本仅负责程序与虚拟机的卸载不会自动清除平台层面的集成关联。在脚本执行成功后务必登录【VCF Operations】运维界面按照以下路径手动删除残留配置操作(Operate) → 管理(Administration) → 集成(Integrations) → 账户(Accounts) → 网络适配器(Networks Adapter)进入对应页面后删除 VON 相关的集成账户与适配器配置彻底消除平台残留关联避免后续出现集成报错、页面加载异常等问题。3.3 第三类【VCF 自动化 (VCFA)】卸载流程VCFA 是架构最复杂的组件底层搭载专属 VCFMS 集群与多台虚拟机整体卸载分为两大阶段、四个子步骤同时存在严格的运行环境限制第二阶段操作必须在 SDDC Manager 虚拟机内部执行且必须使用 root 超级管理员账号。3.3.1 第一阶段卸载 VCFMS 中注册的关联服务VCFA 在 VCF 管理服务中注册了两个核心组件【VCF 自动化】主组件、【迁移服务引擎】需要先将这两个组件从 VCFMS 中注销这是卸载的前置环节。沿用 3.1.1 中的list vsp-component命令查询并记录两个组件的独立 ID分两次执行删除命令逐个卸载组件示例命令如下# 卸载VCF自动化主组件 python cleanup_component.py delete vsp-component --fleet-fqdn${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username${VCFMS_USERNAME} --vcf-services-runtime-password${VCFMS_PASSWORD} --component-idcf46b049-c58e-40db-b422-ad08652f2da7 # 卸载迁移服务引擎组件 python cleanup_component.py delete vsp-component --fleet-fqdn${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username${VCFMS_USERNAME} --vcf-services-runtime-password${VCFMS_PASSWORD} --component-ida933ede9-67ef-4c3a-8adb-5e9fa9a84d29确认两个组件均卸载完成后再进入下一阶段操作。3.3.2 第二阶段卸载 VCFA 底层专属 VCFMS 集群该阶段是 VCFA 卸载的核心操作环境有硬性要求先通过 SCP 等文件传输工具将【cleanup_component.py】脚本上传至SDDC Manager 虚拟机登录虚拟机后切换为root用户所有命令均在此环境下执行。子步骤 1查询集群组件 ID执行集群专属查询指令获取 VCFA 底层 VCFMS 集群的组件 IDpython cleanup_component.py list vsp-cluster --fleet-fqdn${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username${VCFMS_USERNAME} --vcf-services-runtime-password${VCFMS_PASSWORD}记录终端输出的集群 ID。子步骤 2执行集群卸载与虚拟机清理使用集群 ID示例 IDd9fa0d38-7b00-45b6-89d0-4acbb378e763执行删除命令脚本会自动联动 vCenter删除 VCFA 集群对应的所有虚拟机资源python cleanup_component.py delete vsp-cluster --fleet-fqdn${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username${VCFMS_USERNAME} --vcf-services-runtime-password${VCFMS_PASSWORD} --vcenter-username${VCENTER_USERNAME} --vcenter-password${VCENTER_PASSWORD} --component-idd9fa0d38-7b00-45b6-89d0-4acbb378e763命令执行完毕后代表 VCFA 整套服务、集群、虚拟机已全部完成卸载。四、全局运维注意事项与风险规避结合官方要求与实操经验整理多条关键规则帮助运维人员规避操作风险保障集群稳定运行严格区分集群实例类型操作前先确认当前是主 VCF 实例还是附加实例两类实例可卸载的组件范围不同不要盲目执行删除命令避免触碰集群核心服务。严禁碎片化卸载关联组件存在依赖关系的组件如【实时指标】的两个子组件、VCFA 的两个注册服务必须整套卸载仅删除单个组件会造成服务残留、端口占用、后台异常等问题。权限与运行环境合规卸载 VON、VCFA 时vCenter 账号必须具备虚拟机删除、集群管理的高权限VCFA 第二阶段强制要求在 SDDC Manager 虚拟机内以 root 身份运行外部主机、普通用户均无法完成操作。同时提前校验 Python 环境完整性防止脚本启动失败。遵循固定操作顺序对于多步骤组件VON、VCFA必须按照「查询 ID→脚本卸载→界面清理」的顺序执行VCFA 必须先卸载上层注册服务再卸载底层集群顺序颠倒会直接导致卸载失败。事前做好备份与业务停服正式卸载前建议备份 VCF 全局配置、vCenter 虚拟机配置若目标组件正在承载业务需先停止业务、断开租户连接避免意外业务中断。五、总结VCF 9.1 新增的多款 Day-N 可选组件从日志监控、网络诊断到多租户自动化全方位拓展了私有云平台的运维能力但受限于 LCM 可视化界面的功能缺失组件卸载只能依托官方【cleanup_component.py】Python 脚本实现。不同部署架构的组件对应不同的脚本指令体系依托 VCFMS 的通用服务使用vsp-component指令OVA 独立镜像部署的 VON 使用ova-component指令多层集群架构的 VCFA 则需要结合vsp-component与vsp-cluster两类指令并分阶段在不同主机中完成操作。在整套运维流程中区分组件架构、确认集群实例类型、把控账号权限、遵守操作顺序是四大核心关键点。运维人员只要严格按照本文的流程与规范执行就能安全、完整地完成各类可选 Day-N 组件的卸载工作让 VCF 私有云平台保持架构整洁、运行稳定。