本帖最后由 Study_Bin 于 2025-7-1 13:03 编辑
AICP 2.1.0 + AIPaaS 1.0.3交付部署全流程经验分享 本次交付中,结合support部署指导,以及前期群内学习到的其他兄弟以前测试部署经验总结,整理了自己的上架手册。部署中发现坑点解决坑点,总结的最终上架部署手册,也有自动化交付工具使用中遇到的问题,一起分享给大家,共同交流,共同进步。 内容较多,不熟悉产品功能或相关组件名词的兄弟可以直接support学习,这儿就直接开始上架了。
交付耗时(作为参考): 1、裸金属上架:2h(基础环境部署配置、调优不计时) 2、客户环境下载所需镜像包:提前下载,不计时 3、其余流程部署:1天(早八到晚十,中间传包可休息) 4、客户企微对接应用:客户操作 5、客户培训交流:后续内容
注意:部分操作为此处环境原因,对比SPT有省略或不需要配置,还请配合SPT食用。 l AICP 2.1.0部署参考:
l AIPaaS 1.0.3部署参考: 一、部署准备1. 客户需求70B蒸馏模型+RAG检索生成,发布的RAG应用与企微对接。 2. 部署环境准备 2.1 基础环境准备参考SPT安装部署-安装准备。授权提前更新好,所需镜像、软件包、模型包都提前下载准备好哦。 1、HCI:6.11.1版本。 2、SCP:6.11.1版本。 (2) 注意2:SCP磁盘要求中,系统盘标注120GB,但实际OVA导入的系统盘为80GB,与研发确认默认的80GB就可以,不需要扩容。 (2) 注意3:如果HCI是使用的本地存储,SKE部署需要选择独立部署,即HCI上传OVA镜像再SCP纳管方式(可使用工具部署),不然SCP上传vma全新部署会出现无法选择本地存储或镜像问题。 2.2 裸金属服务器准备裸金属服务器(aServer-ES-G2305,或称显卡服务器)使用本地磁盘做LVM存储,6张显卡规划如下: 1、AICP部署70B蒸馏模型用4卡,选用DeepSeek-R1-Distill-Llama-70B,此处下载地址为魔塔社区,下载方式参考附件 ; 注意:手动下载时候有个文件(.gitattributes)不需要下载
2.3 IP规划本次项目IP使用情况如下:(非特殊说明,均使用的同网段内网IP) 1、HCI:基础平台环境搭建,根据实际情况分配。 2、SCP:1个IP。 3、裸金属服务器:1个BMC管理IP;1个管理口IP;1个业务口IP。 4、SKE:1个管理IP;1个不同网段但可和裸金属服务器业务口IP通讯的内网IP。 5、K8S集群(纳管裸金属):1个IP做集群VIP;1个IP用于配置负载均衡器,作为网关配置用于被外部调用。 6、AICP:外部调用5中配置的网关IP。 7、AIPaaS:1个IP作为管理IP;1个IP用于配置负载均衡器,作为网关配置用于调用部署的小模型。 注意:SPT关于IP数量要求说明如下(因为之前版本文档有提到建议SCP和SKE管理IP同段,另外AIPaaS部署中创建的负载均衡器使用的IP需要和裸金属服务器业务网同网段,所以以防万一,本次实施中除了一个SKE的内部通信IP,其他IP都是同一网段,也方便管理)。 二、AICP环境搭建 3. 裸金属部署本次交付先做了裸金属服务器上架,HCI环境准备好的情况下,这样部署顺序,在裸金属服务器上架接入网络后,即可离开机房在客户网络中操作。 3.1 设备到货确认此处为一体机,已经有操作系统,但非最新AICP 2.1.0的裸金属操作系统,故直接重装系统。服务器BIOS调整参考SPT。 注意:一体机服务器有4个nvme盘位,选配了1块nvme SSD,到货后带了三根SFF-8643转接线缆,以为是剩下3个盘位的转接线,正好拆机做到货验时收装上却发现没接口插槽。经确认当前Raid卡接到背板的,这是改配用的线,用不上。 3.2 裸金属服务器操作系统重装1、镜像准备:K8s_Cluster_BMS_X86_for_SKE2.1.0(20250521141131).iso 2、安装中提示格式化其他磁盘,如不需要可选择【否】,进行下一步 注意:如果是重装系统并新安装的ISO不在原先的磁盘,此时需要把就系统盘一同格式化,否则新系统会启动失败。这里选择格式化磁盘的时候一定要选择除U盘之外的所有数据盘,空格多选。 3.3 裸金属服务器网络配置此处网口规划:管理口千兆聚合;业务口万兆聚合。 1、操作系统安装中配置管理网络 (1) 因设备网口未标注eth X口,网络配置前,需要保证主机的两个管理网口都接上线,其他口不要接线,确保不会配置错管理口导致后续更改需额外更多步骤; (2) 管理业务分离场景,可以业务光口两个口互联,刷新网口配置页面看查看哪两个口接线。此处管理口eth5、eth6,业务口eth1、eth7(有两个万兆网卡,跨网卡做聚合)。 (3) 注意是空格选中网口。 注意:安装完后,点击【关机】,并拔掉U盘,然后要重新开机,注意这是关机,不是重启。 2、工具配置网络 (2) 此处管理、业务隔离,上一步中提前确认了网口,方便这儿配置。非训练场景无参数网,本地磁盘配置LVM存储无存储网。 (3) 连接信息如下: l 账号:root l 端口:22345 l 密码:默认admin+深信服密码,请联系区域原厂同事获取。 4. SKE容器服务部署 4.1 SKE镜像上传1、SCP纳管资源池(HCI):注意属性选择共享(否则只能当前用户使用此资源池)。 2、SCP上传容器服务镜像 注意:工具部署只支持HCI上传ova镜像部署,不支持SCP上传vma镜像部署。此处为SCP上传vma镜像部署,因此没使用工具部署。 (1) 登录SCP,访问镜像页面,点击【计算 - 镜像 - 高级服务镜像】; (2) 点击【上传镜像】按钮,开始上传SKE容器服务镜像; l 独立部署:HCI上传ova镜像,支持HCI本地存储。 l 纳管部署:SCP上传vma镜像,为推荐方法。
4.2 开通容器服务1、手动部署,点击开通容器服务:【SCP - 系统管理 - 服务管理 - 容器服务】。 2、配置SKE管理口、内部通信口。注意内部通信口和管理口不同段但可和裸金属服务器业务口IP通讯。
3、部署完成,在网络拓扑中查看接线方式如下图所示。
4、容器开通完成。
4.3 开通服务授权1、登录SCP云管,进入【系统管理 - 授权管理 - 服务授权】,点击【创建】,进入创建授权界面。 2、创建两个服务授权:容器服务、AI算力平台。 l 【服务类型】选择“容器服务”或“AI算力平台” l 【名称】可自定义,如“SKE容器服务授权” l 【IP地址】输入SKE容器服务管理口的IP(容器服务和AI算力平台均是填写SKE管理IP) l 【端口】默认9443,不做修改 l 【服务授权】按实际勾选即可,不清楚可直接勾选【同时授权ARM和X86】 l 【vCPU数】输入平台序列号中容器服务授权的vCPU个数,不清楚可填写最大值,会有提示最大可填写数量。 3、进入容器服务界面展示正常。 4.4 后台查看环境是否有异常1、开启ssh端口:进【容器服务 - 设置 - 远程维护】,配置运维密码并开启ssh端口。 2、后台登录: l IP:SKE配置的管理口IP l 用户名:root l ssh端口:22345 l 密码:上一步配置的运维密码+深信服密码,请联系区域原厂同事获取。 3、进入后台,执行命令 /sf/debug/platform_check ,所有检查项均无异常 5. SKE纳管裸金属 5.1 前提1、裸金属完成操作系统安装和网络配置; 2、裸金属业务平面、管理平面和SKE的管理IP互通; 5.2 K8s集群创建1、访问【计算 - 容器服务 - 设置 - Kubernetes软件包】,上传K8s软件包。
2、访问【计算 - 容器服务 - 集群管理】,点击【创建】按钮。如果是初始场景,集群列表为空,则点击【立即创建】按钮。
3、点击【使用物理机创建 Kubernetes 集群】 4、进入基本配置界面,根据提示填写完成后,点击“下一步”: l 【集群名称】集群名称,不可重名,不可用中文,一旦创建不可修改; l 【别名】集群别名,可用中英文,创建后可以改; l 【Kubernetes版本】选择K8s_Components_Bundle_XX_SKE.pkg软件包; l 【集群VIP】k8s集群的访问IP,需规划一个与用户集群(裸金属)业务网同网段IP; l 【网络插件CNI】保持默认; l 【存储插件CSI】勾选aSAN(使用本地存储)或EDS NFS(使用外置存储); l 【容器网络】Pod网络和Service网络保持默认即可。
5、进入节点配置界面,完成节点(节点即裸金属服务器)配置 (1) 控制节点配置(此处单台不需要勾选工作节点) l 【控制节点】-【节点名称】输入控制节点名称前缀和起始数字; l 【控制节点】-【数量】根据实际情况选择节点数,本处使用1节点; l 【控制节点】-【物理主机IP】填写裸金属的管理IP 6、点击“完成”,即可创建K8s集群。需要等待数分钟,完成K8s集群初始化之后就可以在<集群管理>页面看到对应的K8s集群。 5.3 工具配置LVM存储(本地磁盘)1、下载并启动纪元AICP-LVM部署工具。 2、探测SKE连通性,账号密码见4.4节。 3、连通性探测通过后,选择下一步,前往用户集群页面。 4、选择需要部署本地存储的K8s集群,会自动展示集群VIP,此处为默认账号密码。 5、跳转到检测集群界面,展示当前集群一台物理机的磁盘详细信息,只有无标签、无挂载点的磁盘才会展示到列表中,确认无误后点击下一步。 6、创建 LVM(各主机磁盘容量总和需大于1TB) (1) 自动配置场景:当集群各主机磁盘容量大于指定默认值(SPT说明为1.9TB),可以使用自动配置,默认推荐使用自动配置。此处1.7TB,尝试自动配置。 (2) 部署中,自动配置部署失败,根据报错提示需要2.7TB。 (3) 手动配置场景:手动配置场景需要选择磁盘,并LVs逻辑卷各盘容量,默认会填写好容量,如有需要时可自行调整,此处调小了日志盘1GB,否则告警所有盘容量之和大于物理硬盘可用容量。 (4) 工具配置、手动配置,配置完成。 5.4 裸金属环境检测1、后台登录裸金属节点 创建好k8s集群后,用户节点root的密码被修改为随机密码。随机密码的查看方式如下(该密码一旦生成,就是固定的,不会再次随机): (1) 登录SKE容器首页,按如下步骤开启SSH端口 (2) 使用xshell或Mobaxterm工具通过SKE的管理IP用root账号登录SKE后台,密码信息见4.4节。 (3) 输入如下命令查看节点名(集群ID)和集群名称: kubectl get uicluster -A (4) 基于上面步骤获取的集群ID和名称,输入按如下命令查看全部节点(裸金属服务器)密码 /sf/debug/ops-tools cluster --clusterName {clusterName} --tenantID {nodeNames} (5) 此处示例,获得裸金属服务器密码: /sf/debug/ops-tools cluster --clusterName k8s-v126 --tenantID tenant-da83b66b478c4ae58314340cbe9e67d1 说明:裸金属纳管后的随机密码可在裸金属后台使用如下命令可将密码恢复为原始密码(默认admin+深信服密码,请联系区域原厂同事获取。): cp /sf/cfg/shadow_backup_origin/shadow.ske_business /etc/shadow cp /sf/cfg/shadow_backup_origin/shadow-.ske_business /etc/shadow- cp /sf/cfg/shadow_backup_origin/shadow.ske_business /sf/cfg/shadow 2、裸金属环境检测 (1) 登录 SKE 界面,集群管理页面展示正常。 (2) 进入裸金属服务器后台执行如下命令,确认所有检查项均无异常。 /sf/debug/platform_check (3) 登录K8s后台查看所有进程无异常 ① 登录方式:进入SKE后台,输入命令,获取K8s用户集群密码: kubectl get uiclusters.cluster.ske-k8s.io -A | awk 'NR>1 {split($1, arr, "-"); print "/sf/debug/ops-tools cluster --clusterName " $2 " --tenantID " arr[2]}' | sh ② 进入K8s后台执行如下命令,确认所有检查项均无异常。 /sf/debug/platform_check 6. AICP部署 6.1 部署AICP平台1、AICP平台开通 (1) 使用浏览器,用SCP的管理员或SCP租户登录SCP控制台,进入【人工智能-AI算力平台】,选择本地版,点击开通,上传AICP的pkg包。 (2) 待镜像上传完毕即可二次点击【AI算力平台】进行跳转登录AICP平台。 2、配置存储 (1) 前提:5.3节已配置LVM存储。 (2) 此处为本地磁盘,选择LocalStorage存储。 3、添加算力资源池 (1) 使用浏览器,用SCP的管理员或SCP租户登录SCP控制台,【人工智能模块 - AI算力平台本地版 - 平台管理 - 资源管理 - 添加算力池】进行配置; (2) 在添加资源页面,按实际情况完成配置进行资源池添加。 ① 如使用本地存储,添加算力池需指定存储节点,如下图指定任意节点即可。 ② 本处非满血版,未勾选开启混合计算。 (3) 添加完成。 6.2 上传业务镜像1、更新兼容性tar包: (1) 使用浏览器,用SCP的管理员或SCP租户登录SCP控制台 (2) 【人工智能模块 - AI算力平台本地版 - 平台管理 - 模型和硬件兼容性 - 更新配置文件】,上传更新兼容性tar包。 注意:此处更新前v2.1.0 5.23版本,更新网盘tar包后成了v2.1.0 5.22版本,需要注意tar包版本。 2、上传系统镜像 (1) 【人工智能模块 - AI算力平台本地版 - 平台管理 - 镜像管理 - 系统镜像】,上传AICP数据面推理镜像包: (2) inference-sllm-nvidia-cuda12.1-ubuntu20.04-x86_64-202505171507.tar,上传失败 (3) 查看发现有新包,使用新包上传成功:inference-sllm-nvidia-cuda12.1-ubuntu20.04-x86_64-202506162051.tar 3、上传大模型 (1) 【人工智能模块 - AI算力平台本地版 - 模型仓库】,创建70B模型并上传。 注意:数据量大,可能客户还需要多个模型,需要提前上传。 6.3 创建日志中心需要在SKE容器服务创建日志中心,用于存放AICP平台运行训练、推理产生的相关日志。 1、登录SCP云管平台,访问【计算】—【容器服务】—【运维中心】—【日志管理】,单击【部署日志中心】,根据实际情况配置,本处默认配置。 2、关联采集集群,即关联K8s集群。 注意:此处SPT没见说明。部署中未配置发现无日志采集,检查发现需要关联K8s集群。 6.4 云原生网关配置负载均衡器外部IP是外部应用调用推理服务时直接访问的IP,该IP需与AICP的业务口通信。且不可与节点IP、VIP冲突。 1、负载均衡器配置 进入【计算- 容器服务 - 集群管理 - 集群网络 - 负载均衡器(LoadBlancer)】,点击【创建】,输入名称和外部IP地址,点击【确定】完成配置。 2、创建网关 用户想访问模型推理服务,需要为推理服务所关联的算力池创建网关实例,外部应用通过访问网关实例调用起推理服务。 (1) 进入【人工智能模块 - AI算力平台本地版 - 平台管理 - 资源管理 - 网关配置】 (2) 配置说明 l 负载均衡器:选择在SKE页面已经创建好的负载均衡器,推理任务需要通过该负载均衡器对外提供推理服务;外部业务需要与负载均衡器的IP互通。 l 规格:网关实例占用性能消耗规格,根据业务流量和环境资源选择,默认推荐1C 512MB l 副本数:网关实例数,副本数越多可承载的流量越大,根据业务流量和环境资源选择,默认推荐2副本 6.5 推理服务发布前提:兼容性tar包已更新;大模型已上传。 1、创建推理服务 (1) 用SCP的管理员或SCP租户登录SCP控制台,【人工智能模块 - AI算力平台本地版 - 模型服务 - 创建】 (2) 在创建模型推理页面,填写相关配置进行推理,基础配置和资源配置为必填,高级设置可按需进行参数设置,此处使用4卡算力。 2、创建服务完成。 6.6 推理服务调用测试1、在线体验测试正常。 2、Chatbox测试服务访问正常。 (1) 【AI算力平台 - 模型服务 - 大模型服务 - 对应服务详情 - 访问/认证】,获取到入口(对应Chatbox的API主机)、API密钥 (2) 注意API模式为Open API兼容 三、AIPaaS环境搭建 7. AIPaaS平台部署 7.1 导入云主机1、使用vma包导入云主机,云主机中运行着aipaas环境。 2、SCP的导航栏左上角点击,选择计算模块,选择“云主机”,进入云主机页面,导入vma包。 3、导入完成之后,点击“编辑云主机”,跳转到云主机编辑页面,然后选择中间的“配置与网络” (1) 在页面中的“磁盘”配置项中,点击“添加磁盘”,需要添加三块磁盘,磁盘大小分别为50GB、100GB、300GB。配置好之后,点击右下角的“确定”。 (2) 配置AIPaaS的管理IP。 7.2 后台执行部署脚本后台手动执行相应的部署脚本,部署aipaas和aipaas相关的组件。 l 账号:root l 端口:22345 l 密码:admin+深信服密码,请联系区域原厂同事获取。 1、在主机后台,执行如下命令,等待部署脚本执行完成退出。 nohup /sf/deployment/init_k8s_cluster.sh --mode install > /sf/log/today/init_k8s_cluster_nohup.log & l 注意:命令配置完界面无反应,稍作等待即可,此步骤执行时间约15分钟左右,执行完后可稍作等待再进行下步验证。 l 注意:部署完,默认会将 ssh 关闭(可以web控制台进入)。启用和禁用命令如下。用完后记得禁用ssh,更安全。 /sf/bin/ssh-acl.sh enable-ssh # 启用 ssh /sf/bin/ssh-acl.sh disable-ssh # 禁用 ssh 2、部署完成验证 (1) 验证一:日志如下为部署完成。 tail -f /sf/log/today/init_k8s_cluster_nohup.log (2) 验证二:可以看一个节点是Ready的。 kubectl get node (3) 验证三:查看pod的状态,除了milvus-pulsar-cluster-pulsar-init-xxx之外,其它都是running状态 kubectl get pod -A | grep -E 'aipaas|pentomino|milvus|opensearch|postgres|minio' 8. AIPaaS小模型部署此处用2卡小模型部署,除了部署脚本不同,其他相同。 8.1 物料准备注意:先将下面物料放至裸金属服务器后台/sf/data/appdata/aicp目录下 l 镜像包:pentomino-models.tar、pdf2text.tar l helm包:pentomino-models.tgz、pdf2text.tgz 8.2 创建网关instance1、【SCP - 计算机 - 容器服务 - 集群管理 - 负载均衡器】,创建负载均衡器。 (1) 名称:aipaas-models(这里不要修改名称,否则后续脚本也要修改)。 (2) 外部IP:和裸金属服务器业务网同网段的IP。 2、AI算力平台-资源管理-网关配置,创建名称为aipaas-models的网关,注意不要改名。 8.3 SKE后台执行脚本1、SKE后台上传aipaas-gateway-models_kaas_gateway.sh脚本,此处上传/sf/data/appdata/ 2、SKE后台执行aipaas-gateway-models_kaas_gateway.sh脚本 chmod +x aipaas-gateway-models_kaas_gateway.sh ./aipaas-gateway-models_kaas_gateway.sh 8.4 裸金属服务器后台执行脚本1、裸金属服务器后台上传 model_deploy_single_gpu.sh 脚本,此处上传/sf/data/appdata/aicp/ 2、裸金属服务器后台执行 model_deploy_double_gpu.sh 脚本 chmod +x model_deploy_double_gpu.sh ./model_deploy_double_gpu.sh 8.5 部署后检查和使用1、使用如下命令(kubectl get pods就可以),裸金属后台观察模型服务均为Running,之后aipaas可以通过模型管理进行添加小模型,接入平台使用。 kubectl get pods |grep -E 'models|pdf2text' 2、小模型访问入口 。网关IP为8.2节创建网关instance时配置的负载均衡器IP。 | | | | | | | | | | | | | | http://网关IP:30085/v1/pdfparse | | | sk-jwaRNx5UJxB9WVZf7UgdRKuMOPPRkMn_w1YgUbhb20I | 9. AIPaaS模型管理添加模型成功之后,可以让其它模块调用模型的能力,去做相应的任务(如知识库检索,应用评估等)。 9.1 添加小模型1、AICP平台-系统设置-模型管理,添加小模型,接入信息参考8.5节。 2、小模型添加完成后,测试连通性正常。 9.2 添加LLM模型【SCP - AICP平台 - 系统设置 - 模型管理】,添加LLM模型,此处为第6节AICP部署的70B推理模型。 注意:接入信息参考6.5节。 l 访问入口:http://172.16.5.84:4430/v1(AICP),访问入口只到v1 l 模型名称:DeepSeek-R1-Distill-Llama-70B l APIkey:(AICP上获取) 9.3 设置系统默认模型设置系统默认模型,配置对应模型,也可9.1和9.2节添加时直接勾选设为默认。 10. 创建应用 10.1 知识库上传1、【AIPaaS - 数据管理 - 知识库】,创建知识库,上传对应文档。 注意: l 单次最多 20 个文件; l 支持 doc、docx、txt、pdf 格式; l 单个文件大小须在 100 MB 以内; l txt 文件 20 MB 以内。 2、根据实际情况,配置数据处理。 3、配置完成,文件解析中,等待解析完成。后续可以继续上传新的文件。 10.2 创建应用1、【AIPaaS - 我的应用 - 创建】,此处创建智能RAG。 2、知识检索,关联对应知识库 3、调试预览,无问题后点击【发布】。 4、发布应用后,在发布管理可查看调用方式与接口。 10.3 自建应用网页访问测试网页访问测试。 10.4 自建应用通过企微对接 2、问题1:企微访问提示服务器证书不可信。 前提:客户有可信证书。 (2) 解决方法2:此处客户使用ngnix代理解决。 3、问题2:问题1解决后,企微访问自建应用报错“请求失败”。 解决方法:来自江小举大佬。 (1) 先执行下面这个操作,关闭pentomino的操作记录。 kubectl set env deployment/pentomino AIPAAS_MIDDLEWARE_OPERA_LOG=false --containers=pentomino -n default (2) 等待pentomino pod重启成功后,再看下 kubectl get pod -A|grep pentomino (3) 如果修改完,重启后的pod还不是running的话,请联系技术支持。 |