01-正文
本章节下载: 01-正文 (4.35 MB)
本文档主要介绍H3C百业灵犀大模型使能平台(简称使能平台)的安装、部署、卸载等功能。
本文档中的设备显示信息、Web页面截图、版本信息、参数配置界面均为举例,请以实际环境为准。
· NingOS 1.0.2403:NingOS 的1.0.2403版本操作系统。
· Matrix:基于Kubernetes,实现了对Docker容器的编排调度。主要用于Kubernetes集群的搭建,微服务的部署,以及系统、Docker容器、微服务等的运维监控。
· Kubernetes:简称K8s,是一个开源的容器编排引擎,用于对容器化应用进行自动化部署、扩缩和管理。
· Docker:是一个开源的容器编排引擎,用于对容器化应用进行自动化部署、扩缩和管理。
· GPU:图形处理器(Graphics Processing Unit),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备上进行图像和图形相关运算工作的微处理器。
· GUI:图形用户界面(Graphical User Interface),是指采用图形方式显示的计算机操作用户界面。
· Master节点:集群主节点。一个集群必须包含3个Master节点(单机模式下仅需一个Master节点),集群将从3个Master节点中自动选举出一台作为主用Master节点,其它Master节点为备用Master节点。当集群的主用Master节点故障时,将在备用Master节点中重新选出新的主用Master节点,接管原主用Master节点的业务,避免业务中断。主用Master 和备用Master的作用如下:
¡ 主用Master节点:负责管理和监控集群中的所有节点,北向业务虚IP会下发至主用Master节点上,所有Master节点共同承担业务的运行。
¡ 备用Master节点:仅承担业务的运行,不负责管理和监控其它节点。
· Pod:Kubernetes最小的调度和管理单位。Pod是一组运行在同一节点上的容器集合,它们共享相同的网络命名空间、存储资源和其他资源。
· Worker节点:集群业务节点。Worker节点仅承担业务,不参与主用Master节点的选举。Worker节点为可选节点,当Master上的业务已经达到资源和性能瓶颈,如CPU和内存使用率居高不下,业务响应慢,节点上Pod 个数达到或接近300个限制等,可通过增加Worker 节点提升集群的性能和业务处理能力。
· YUM源:Linux操作系统中的软件包管理器YUM(Yellowdog Updater, Modified)所使用的软件仓库。YUM源是包含一系列软件包的在线仓库,提供各种软件和工具的安装包。通过配置YUM源,用户可以方便地使用YUM命令来管理软件包,从在线仓库中下载并安装需要的软件包。
· nvidia-container-runtime(NVIDIA运行时工具):在容器化环境中提供GPU加速和管理功能的运行时工具,它的主要作用是提供对NVIDIA GPU的容器级别的访问和管理。
· nvidia-device-plugin(NVIDIA设备插件):Kubernetes容器编排系统的一个插件,用于在Kubernetes集群中管理和调度NVIDIA GPU设备。
· cuDNN(CUDA Deep Neural Network library,NVIDIA开发的深度神经网络库):一种针对GPU加速的深度学习的软件库,提供高性能、低延迟的深度神经网络操作。
使能平台基于Matrix安装,支持一个Master节点的单机部署模式和三个Master节点+N个Worker节点(N≥0)的集群部署模式,集群部署模式下支持Worker节点扩容。
Matrix节点包括Master节点和Worker节点,每台服务器部署为一个Matrix节点。
使能平台安装部署注意事项如下:
· 推荐将服务器的下一次启动模式配置为UEFI模式。
· 安装操作系统时,请勿同时使用KVM给多个服务器安装同一镜像。
· H5 KVM性能不稳定,可能出现加载镜像停止或缓慢等问题,建议使用Java KVM挂载镜像安装操作系统,即NingOS 1.0.2403操作系统。
· 安装过程中禁止输入Scroll Lock键,否则可能会导致安装失败。
· 安装过程中异常断电会导致部分服务安装失败,请重新安装以保证功能完整性。
· Matrix安装部署过程中,请勿进行开启或关闭防火墙的操作。
· 集群部署完成后,请勿修改系统时间,否则可能导致集群异常。
使能平台安装部署流程如表2-1所示。
步骤 |
具体操作 |
备注 |
准备服务器 |
单机部署模式准备1台服务器 集群部署模式准备至少3台服务器 |
|
安装操作系统 |
在服务器上安装NingOS 1.0.2403操作系统 |
必选 |
服务器基础配置 |
在服务器上进行安装部署前的基础配置 |
必选 |
部署Matrix集群 |
在服务器上安装Matrix并创建Matrix集群 |
必选 |
安装GPU驱动及相应工具包 |
安装适配的GPU驱动程序及工具包 |
必选 |
安装使能平台组件包 |
登录Matrix界面部署使能平台组件安装包 |
必选 |
软件授权 |
在服务器部署License Server、安装授权 |
必选 |
资源类型 |
适配型号 |
服务器 |
R4900G3、R4900G5、R5300G6 |
存储设备 |
服务器磁盘 |
操作系统 |
NingOS 1.0.2403 |
Matrix |
D014SP03 |
GPU |
Nvidia T4 (R4900G3、R4900G5)或天数 V100 (R5300G6) |
表3-1 服务器配置要求(单节点模式)
硬件资源 |
配置要求 |
服务器类型 |
64位x86架构服务器。建议使用如下H3C自研服务器:R4900G3、R4900G5、R5300G6 |
CPU |
32核2.2Ghz主频及以上 |
内存 |
256GB以上 |
网卡 |
2端口25G OCP网卡*1 |
存储 |
· 系统盘:1TB SSD*2,配置RAID 1 · 数据盘:3.84TB本地SSD硬盘*2,配置RAID 1 |
GPU |
天数V100或Nvidia T4,至少两块 |
表3-2 服务器配置要求(3+N机集群模式)
节点类型 |
硬件资源 |
配置要求 |
管理节点(3个) |
服务器类型 |
64位x86架构服务器。建议使用如下H3C自研服务器:R4900G3、R4900G5、R5300G6 |
CPU |
32核2.2Ghz主频及以上 |
|
内存 |
256GB以上 |
|
网卡 |
2端口25G OCP网卡*1 |
|
存储 |
· 系统盘:1TB SSD*2,配置RAID 1 · 数据盘:3.84TB本地SSD硬盘*2,配置RAID 1 |
|
业务节点(N个) |
CPU |
32核2.2Ghz主频及以上 |
内存 |
256GB以上 |
|
网卡 |
2端口25G OCP网卡*1 |
|
存储 |
· 1TB SSD *2,配置RAID 1 · 数据盘:3.84TB本地SSD硬盘*2,配置RAID 1 |
|
GPU |
天数V100或Nvidia T4,至少两块 |
请检查待安装的操作系统版本是否正确。本文均以NingOS 1.0.2403为例介绍安装部署步骤。
请检查系统时间已配置完成。
用户不需要安装客户端软件,使用浏览器即可访问使能平台。推荐使用的浏览器为Google Chrome 98、Firefox 78及以上版本,最低分辨率显示宽度为1600。
安装部署使能平台的IP地址,规则如表3-3所示。
表3-3 IP地址明细
IP地址规划 |
用途 |
备注 |
Master节点1IP地址 |
为安装了操作系统的Master节点分配的IP地址 |
必选 加入同一集群的所有Master节点的IP地址必须处于同一网段 单机部署模式只需要部署一个Master节点 |
Master节点2IP地址 |
为安装了操作系统的Master节点分配的IP地址 |
|
Master节点3IP地址 |
为安装了操作系统的Master节点分配的IP地址 |
|
北向业务虚IP地址 |
通过Matrix页面部署的应用的统一外部访问地址 |
必选 北向业务虚IP必须在Master节点所处的网段内 |
Worker节点IP地址 |
为Worker节点分配的IP地址 |
可选 Worker节点的IP地址必须与加入同一集群的Master节点的IP地址处于同一网段 |
需要准备的安装包如表3-4所示。其中version为版本号,platform为CPU架构类型。
安装包执行顺序:
NingOS操作系统安装包->Matrix集群安装包->基础组件安装包->使能平台服务安装包-->使能平台知识库服务安装包->License server服务安装包。
安装包名称 |
功能说明 |
说明 |
|
NingOS-version.iso |
H3C自研的NingOS操作系统的安装包 |
必选 |
|
Matrix_version_platform.zip |
Matrix集群安装包 |
必选 |
|
LICENSE_SERVER-version.zip |
License server服务安装包 |
必选 |
|
H3C_Linseer_Hub-Service.zip (本压缩包不能直接上传到Matrix平台安装部署,需要先解压缩获取各组件安装包后,再逐个上传及部署) |
linseer-hub-base-version.zip |
基础组件安装包,用于部署Elasticsearch数据检索服务、Mysql数据库服务、Redis数据库服务、Milvus向量数据库服务、Rocketmq消息中间件服务 |
必选 |
linseer-hub-service-version.zip |
使能平台服务安装包,用于部署使能平台管理端Web前端服务、管理端后端服务、API服务、License Client服务、服务编排前端和后端服务 |
必选 |
|
linseer-hub-embedding-nvidia-version.zip |
使能平台知识库服务安装包(Nvidia GPU) |
使用Nvidia GPU资源时,必选 |
|
linseer-hub-embedding-iluvatar-version.zip |
使能平台知识库服务安装包(天数GPU) |
使用天数GPU资源时,必选 |
|
nvidia.zip |
nvidia-container-runtime.zip 为nvidia-container-runtime安装包 |
使用Nvidia GPU资源时,必选 |
|
nvidia-device-plugin.zip 为nvidia-device-plugin安装包 |
使用Nvidia GPU资源时,必选 |
||
NVIDIA-Linux-x86_64-525.147.05.run 为Tesla T4显卡驱动安装包 |
使用GPU资源时,必须安装显卡驱动安装包 请参见安装GPU驱动及相应工具包查看并下载适配版本的显卡驱动 |
||
models.zip为知识库服务模型依赖包,包括bge-large-zh-v1.5、bge-reranker-large两个模型文件 |
必选 |
||
site-packages- iluvatar.zip为使能平台知识库服务(天数GPU)依赖包 |
使用天数GPU时,必选 |
||
site-packages-nvidia.zip为使能平台知识库服务(Nvidia GPU)依赖包 |
使用Nvidia GPU时,必选 |
||
sync_models_packages.sh,执行该脚本,将知识库服务模型和知识库服务依赖包同步至Matrix集群各个节点的/home/h3c/linseer-hub目录下 |
必选 |
||
iluvatar.zip |
天数GPU插件包 |
使用天数GPU时,必选 需安装iluvatar.zip解压缩后目录下的k8s插件 |
|
init_scripts.zip |
linseer_hub_data_dir_create.sh为使能平台创建本地数据目录脚本 |
挂载数据盘之后,执行该脚本,创建使能平台本地数据目录 |
(1) 在本地PC机上安装JDK,推荐版本为8u181。
(2) 如图4-1所示,单击[开始]菜单选择“配置Java”,进入JAVA控制面板。
(3) 把HDM的URL加入“例外站点”列表。如图4-2所示。
a. 选择“安全”页签,单击<编辑站点列表>按钮进入“例外站点”列表。
b. 在“例外站点”列表对话框中单击<添加>按钮,。
c. 输入HDM的URL,单击<确定>按钮完成添加。
d. 单击JAVA控制面板上的<确定>按钮完成设置。
HDM(Hardware Device Management,设备管理系统)用于远程管理服务器。
登录HDM操作步骤如下:
(1) 将网线连接到服务器的HDM专用网口,确保本地PC与服务器之间网络可达。
(2) 在本地PC浏览器地址栏中输入“https://HDM专用网口IP地址”,按<Enter>键打开登录页面。输入用户名和密码,单击<登录>按钮登录服务器HDM Web页面,如图4-3所示。
图4-3 登录服务器HDM Web页面示意图
· HDM Web操作页面、默认HDM专用网口IP地址、默认用户名/密码等与服务器型号和HDM版本有关,详细信息请参见对应版本的服务器HDM用户指南。
· 对于本文示例版本,默认HDM专用网口IP地址为192.168.1.2/24,默认用户名/密码为admin/Password@_。
· 若已修改默认HDM专用网口IP地址、用户名/密码,请以修改后的HDM专用网口IP地址、用户名/密码登录。
本步骤用于使用Java集成远程控制台连接服务器。通过JViewer或KVM远程连接软件,您可以在远程进行配置管理服务器、安装操作系统等操作。
对于R5300 G5/R5500 G5/R5500 G6/R5350 G6服务器,连接远程控制台的操作步骤如下:
(1) 在HDM Web页面单击顶部[远程服务]菜单项,再单击左侧导航树中的[远程控制台]进入远程控制台页签。单击<启动KVM>按钮下载KVM软件,如图4-4所示。
(2) 如图4-5所示,在弹出的提示框中单击<保留>按钮,开始下载KVM软件。
(3) 将已下载的KVM.Jnlp文件拷贝至JDK的安装目录“C:\Program Files\Java\jdk1.8.0_181\bin”下。
(4) 按键盘<Shift>键,同时鼠标右键单击文件夹空白处,在下拉菜单中选择“在此处打开Powershell窗口”,如图4-6所示。
(5) 在命令窗口执行命令javaws KVM.jnlp并按回车键,如图4-7所示。
图4-7 执行命令
(6) 在安全警告窗口中点击<继续>按钮。如图4-8所示。
(7) 成功连接远程控制台,可显示远程控制台窗口,如图4-9所示。
(8) 在远程控制台窗口单击[虚拟介质 -> 虚拟介质向导]菜单项,弹出虚拟介质对话框,如图4-10所示,单击<浏览>按钮。
(9) 选择本地的操作系统镜像文件(.iso格式),单击<打开>按钮。如图4-11所示。
(10) 在弹出的提示信息对话框内单击<确定>按钮,即可成功挂载镜像文件,如图4-12所示。
· 设置BIOS从CD/DVD启动需通过键盘操作。
· 不同型号服务器参数配置界面有所不同,本节仅以R5500 G5服务器为例。
· 参数配置界面可能会不定期更新,请以设备实际显示为准。
(1) 单击选择[电源 -> 立即重启]菜单项,重启服务器,如图4-13所示。
(2) 服务器重启后,按键盘<DEL>键或<ESC>键进入BIOS设置界面,如图4-14所示。
图4-14 进入BIOS设置界面
(3) 通过按键盘<←><→>键移动选择[Boot]菜单项,按<Enter>键设置BIOS,如图4-15所示。
(4) 设置Boot启动模式。
a. 通过按键盘<↑><↓>键移动选择“Boot mode select”配置项,按<Enter>键设置Boot启动模式,如图4-16所示。
图4-16 设置Boot启动模式(1)
b. 在弹出的“Boot mode select”对话框中,按<Enter>键选择“UEFI”。如图4-17所示。
图4-17 设置启动Boot 模式(2)
(5) 设置Boot启动项。
a. 通过按键盘<↑><↓>键移动选择“Boot Option #1”配置项,按<Enter>键设置Boot启动项,如图4-18所示。
图4-18 设置Boot启动项(1)
b. 在弹出的“Boot Option #1”对话框中,按<Enter>键选择“CD/DVD”,如图4-19所示。
图4-19 设置Boot启动项(2)
(6) 通过键盘<←><→>键选择[Exit]菜单项,按<Enter>键保存设置,如图4-20所示。
(7) 在弹窗的对话框中选择“YES”,保存设置并退出,如图4-21所示。
本节以从未安装过任何操作系统的服务器为例,请使用LinSeer RT配套的NingOS-v3-1.0.2403 ISO文件安装操作系统。
(1) ISO镜像文件加载完成后,进入语言选择界面。
(2) 选择安装语言,此处以“中文”为例,单击<继续(C)>按钮,进入安装信息摘要界面,如图4-22所示。
(3) 在安装信息摘要界面的本地化区域单击“日期和时间(T)”链接,进入日期和时间界面,如图4-23所示。
(4) 设置系统的日期和时间,如图4-24所示。选择地区为“亚洲”,城市为“上海”,单击<完成>按钮,返回安装信息摘要界面。
(5) 在安装信息摘要界面的本地化区域单击“键盘(K)”链接,进入键盘布局界面,如图4-25所示。
(6) 安装信息摘要界面的软件区域“软件选择(S)”选择基本环境为“最小安装”,如图4-26所示。
(7) 在安装信息摘要界面的系统区域,单击“安装目的地(D)”链接,进入安装目标位置界面。设置安装目标位置,如图4-27所示。在本地标准磁盘区域选择目标磁盘。在存储配置区域选择“自定义(C)”,单击<完成>按钮,进入手动分区界面。
在“新挂载点将使用以下分区方案(N)”下拉列表中选择分区方案,支持选择“标准分区”和“LVM”,建议选择“标准分区”。
· 使用“LVM”分区。
在“设备类型”下拉列表中选择“LVM”,并依次创建各分区。
· 使用“标准分区”。
手动创建磁盘分区,如图4-28所示。磁盘分区的具体信息如表4-1所示,支持手动修改配置信息。
¡ 设备类型:选择“标准分区”,并单击图标,在弹出窗口中进行如下配置后,单击<添加挂载点>按钮。
¡ 挂载点:输入挂载点目录名称。
¡ 期望容量:输入磁盘容量并指定容量单位,例如“GiB”、“MiB”。
¡ 文件系统(Y):在下拉列表中选择推荐的文件系统。
¡ 设备:单击<修改(M)…>按钮,在弹出的配置挂载点窗口中,选择分区所挂载的磁盘后,单击<选择>按钮。
boot相关分区不能设置为LVM,否则分区将会配置失败。
分区名称 |
预设容量 |
适用模式 |
文件系统 |
备注 |
/ |
1 TB |
BIOS模式/UEFI模式 |
ext4 |
磁盘空间充足时,可适当增大 |
/var/lib/docker |
350 GiB |
BIOS模式/UEFI模式 |
ext4 |
磁盘空间充足时,可适当增大 |
/var/lib/ssdata |
200 GiB |
BIOS模式/UEFI模式 |
ext4 |
磁盘空间充足时,可适当增大 |
/var/lib/etcd |
50 GiB |
BIOS模式/UEFI模式 |
ext4 |
磁盘空间充足时,可适当增大 |
/boot |
1024 MiB |
BIOS模式/UEFI模式 |
ext4 |
|
swap |
1024 MiB |
BIOS模式/UEFI模式 |
swap |
|
/boot/efi |
200 MiB |
UEFI模式 |
EFI System Partition |
根据服务器的BIOS启动模型选择创建对应分区,Legacy:/biosboot UEFI:/boot/efi |
/linseerFileShare(默认名称) |
1 TB |
BIOS模式/UEFI模式 |
ext4 |
单机环境需要创建该分区,磁盘空间充足时,可适当增大 集群环境使用NFS存储,不需要划分该分区 |
各主要分区的作用如下:
¡ /:Matrix使用,包括K8s、Harbor和各组件上传的安装包,该分区的容量和各组件上传的镜像大小有关,需要确定各组件占用的磁盘容量大小,在此基础上扩缩容。
¡ /var/lib/docker/:与Docker的运行相关,需要根据实际运行情况确定容量大小。
¡ /var/lib/ssdata/:供Kafka、ZooKeeper使用。
¡ /linseerFileShare(默认名称):推荐预设容量为1TB。
- 单机部署模式下,/linseerFileShare供推理组件使用,作为模型仓库的共享目录。
- 3机集群部署模式、3+N机集群部署模式下,使用外置的NFS存储空间供推理组件使用。
各部署模式下的“/linseerFileShare”磁盘空间分配详情,如表4-2所示。
表4-2 “/linseerFileShare”磁盘空间分配
组件 |
目录名 |
存储空间大小计算方式 |
默认大小 |
模型仓库 |
/$(sharePath)/model_preset,默认名称为“/linseerFileShare” |
· LinSeer_Model文件:132 GiB · LinSeer_Model_Lite文件:15 GiB |
300 GiB |
在弹出的更改摘要窗口中,单击<接受更改>按钮,返回安装信息摘要界面,如图4-29所示。
(1) 选择管理员帐户设置。使用root用户作为管理员帐户,无需创建新用户。
a. 在安装信息摘要界面用户设置区域单击“Root账户”配置项设置root用户作为管理员帐户,如图4-23所示。
该功能用于选择安装Matrix并创建集群时使用的用户名,如需部署Matrix集群,需为集群中的所有节点选择相同的用户名。
b. 选择”启用root账户”并设置root用户密码,单击<完成>按钮,返回安装信息摘要界面,如图4-30所示。
图4-30 设置root用户密码
c. 在安装信息摘要界面可查看root用户已作为管理员帐户,该用户拥有所有功能的操作权限,如图4-31所示。
图4-31 使用root用户作为管理员帐户
(2) 在系统区域单击“网络和主机名(N)”链接,进入网络和主机名界面。
(3) 在主机名文本框中输入主机名后,单击<应用>按钮,如图4-32所示。
· 请勿使用默认主机名(localhost、localhost.localdomain、localhost4、localhost4.localdomain4、localhost6、localhost6.localdomain6)。主机名称最长63个字符,仅支持小写字母、数字、连字符和小数点,不能以0开头且全为数字,不能以0x、连字符、小数点开头,以连字符、小数点结尾。
· 建立Matrix集群时,必须保证集群内各个节点的主机名互不相同,且符合主机名的命名规则,否则将会导致集群建立失败。
· Matrix集群部署前,若需要修改节点的主机名,可在节点操作系统的命令行界面,通过hostnamectl set-hostname hostname命令进行修改,其中hostname为修改后的主机名。新主机名将在节点重启后生效。
· Matrix集群部署完成后,请不要再对操作系统的主机名进行修改。
(4) 在网络和主机名配置界面可配置网卡。单击<配置>按钮,在弹出的网络配置窗口中进行网卡配置。单击“常规”页签,勾选“自动以优先级连接(A)”项,“所有用户都可以连接这个网络(U)”项保持默认勾选,如图4-33所示。
(5) 配置Matrix节点的IPv4地址。
单击“IPv4设置”页签,在“方法(M)”下拉框中选择“手动”,在地址区域单击<添加(A)>按钮,配置服务器的IPv4地址(规划的Matrix节点IP),配置完成后,单击<保存>按钮保存配置,如图4-34所示。
· 配置IPv4地址时必须指定网关,否则在创建集群时可能出现问题。
· Matrix单独使用一个网口,不允许在此网口上配置子接口及子IP。
· Matrix节点其它网口的IP地址,不能和建立集群使用的IP处于同一网段。
· 不允许在操作系统中配置DNS服务器。
(6) 网络配置完成后,手动启用指定物理网卡,如图4-35所示。单击<完成>按钮,返回安装信息摘要界面。
(1) 在本地电脑控制端窗口执行命令ping ip_address,检查配置的IP地址是否连通。其中,ip_address为IPv4设置页签下配置的IP地址。若可ping通,则继续进行后续步骤,否则返回IPv4设置页签,检查掩码网关等信息是否配置正确。
(2) 在图4-36所示的安装信息摘要界面中单击<开始安装>按钮,开始安装操作系统。
(3) 安装完成后,单击<重启系统(R)>按钮。进入BIOS设置界面,设置BIOS从Hard Disk启动,即设置Boot启动项时,在弹出的“Boot Option #1”对话框中,按<Enter>键选择“Hard Disk”,如图4-37所示。具体步骤与设置BIOS从CD/DVD启动类似,请参见“4.2 设置BIOS从CD/DVD启动”。
图4-37 设置Boot启动项
(4) 保存退出后,服务器再次自动重启,重启后的界面如图4-38所示。
(1) 在服务器上执行timedatectl命令,查看服务器的时区是否为“Shanghai”或“Beijing”。
[root@matrix ~]# timedatectl
Local time: 四 2023-12-07 16:56:52 CST
Universal time: 四 2023-12-07 08:56:52 UTC
RTC time: 四 2023-12-07 16:56:52
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
Warning: The system is configured to read the RTC time in the local time zone.
This mode cannot be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.
If at all possible, use RTC in UTC by calling
'timedatectl set-local-rtc 0'.
(2) 如果时区不正确,请执行timedatectl set-timezone Asia/Shanghai命令重新设置时区为“Shanghai”或“Beijing”。
[root@matrix ~]# timedatectl set-timezone Asia/Shanghai//以将时区设置为shanghai为例
(1) 执行date命令,查看系统时间。
[root@matrix ~]# date
2023年 11月 16日 星期四 14:46:24 CST
(2) 如果系统时间与当前网络时间不同,请执行date -s命令将系统时间修改为与当前网络时间一致。
[root@matrix ~]# date -s "2023-11-17 11:00:00"
(3) 再次执行date命令,查看校准后的系统时间,确保与当前网络时间保持一致。
[root@matrix ~]# date
2023年 11月 17日 星期五 11:00:00 CST
(1) 在服务器上执行systemctl stop firewalld.service命令关闭防火墙。
[root@matrix ~]# systemctl stop firewalld.service
(2) 执行systemctl status firewalld.service命令查看防火墙状态,确保防火墙已关闭。
[root@matrix ~]# systemctl status firewalld.service
○ firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)//防火墙已关闭
Docs: man:firewalld(1)
(3) 执行systemctl disable firewalld.service命令设置防火墙开机不启动。
[root@matrix ~]# systemctl disable firewalld.service
(1) 执行sestatus命令查看selinux状态(默认为开启状态)。
[root@matrix ~]# sestatus
(2) 关闭selinux。
a. 执行vi命令分别创建etc/sysconfig/selinux文件。
[root@matrix ~]# vi /etc/sysconfig/selinux
b. 通过键盘输入“i”进入编辑界面,将配置“SELINUX=enforcing”改为“SELINUX=disabled”。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
c. 按键盘上的<ESC>键,再输入“:wq”,退出配置并保存文件。
:wq
(3) 执行reboot命令重新启动系统。
reboot
(4) 系统重启后,再次执行sestatus命令,确保selinux状态为关闭。
sestatus
通过挂载操作系统ISO镜像的方式来配置本地YUM源。
(1) 执行mkdir命令,创建ISO镜像文件存放与挂载目录。
[root@matrix01 ~]# mkdir /media/{iso,cdrom}
(2) 通过FTP工具,将ISO镜像文件上传至服务器/media/iso目录下
(3) 在服务器上执行mount命令将ISO镜像挂载至/media/cdrom 目录。
[root@matrix01 iso]# mount /media/iso/NingOS-v3-1.0.2403-x86_64-dvd.iso /media/cdrom
mount: /media/cdrom: WARNING: source write-protected, mounted read-only.
服务器重启后,ISO镜像目录可能会被取消挂载,如果需要继续使用本地YUM源的方式安装依赖包,请重新挂载ISO镜像文件。
(4) 执行如下命令,将默认提供的配置文件移动位置
[root@matrix01 ~]# cd /etc/yum.repos.d
[root@matrix01 ~]# mkdir bakup
[root@matrix01 ~]# mv *.repo bakup
(5) 在服务器/etc/yum.repos.d/路径下新建NingOS.repo文件。
a. 进入服务器的目录/etc/yum.repos.d/。
[root@matrix ~]# cd /etc/yum.repos.d/
[root@matrix ~]# vi NingOS.repo
b. 通过键盘输入“i”进入编辑界面,增加以下内容:
[NingOS_repo]
name=NingOS_repo
baseurl=file:///media/cdrom/
gpgcheck=0
enabled=1
[NingOS_repo_updates]
name=NingOS_repo
baseurl=file:///media/cdrom/
gpgcheck=0
enabled=1
c. 按键盘上的<ESC>键,再输入“:wq”,退出配置并保存文件。
:wq
(6) 执行yum clean all && yum makecache命令清空YUM源缓存。
[root@matrix ~]# yum clean all && yum makecache
6 files removed
NingOS 369 MB/s | 3.4 MB 00:00
Metadata cache created.
执行以下步骤,创建使能平台/linseer_hub_data数据目录,并将数据盘挂载到该目录下。
(1) 执行lsblk命令查看系统中可用的磁盘。磁盘vdb与vdc尚未挂载目录,均为可用的磁盘。
本节仅以vdb为例介绍数据盘挂载到指定目录(/linseer_hub_data)的详细步骤,实际部署过程中,请注意修改命令中磁盘的名称。
[root@matrix ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 5G 0 rom
vda 252:0 0 500G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 498.7G 0 part
├─h3linux-root 253:0 0 253G 0 lvm /
├─h3linux-swap 253:1 0 15.7G 0 lvm
└─h3linux-home 253:2 0 230G 0 lvm /home
vdb 252:16 0 1.0T 0 disk
vdc 252:32 0 1.0T 0 disk
(2) 创建物理卷。执行pvcreate命令将磁盘创建为物理卷。
[root@matrix ~]# pvcreate /dev/vdb
(3) 创建卷组。执行vgcreate命令创建一个名为linseer_hub_vg的卷组,并将物理卷添加到该卷组中。
[root@matrix ~]# vgcreate linseer_hub_vg /dev/vdb
(4) 创建逻辑卷。执行lvcreate命令创建一个名为linseer_hub_lv的逻辑卷,指定该逻辑卷所属的卷组。
[root@matrix ~]# lvcreate -l 100%FREE -n linseer_hub_lv linseer_hub_vg
(5) 格式化逻辑卷。使用mkfs命令格式化新创建的逻辑卷。
[root@matrix ~]# mkfs.xfs /dev/linseer_hub_vg/linseer_hub_lv
注意:文件系统类型必须要为xfs
(6) 挂载逻辑卷。
[root@matrix ~]# mkdir /linseer_hub_data
[root@matrix ~]# mount /dev/linseer_hub_vg/linseer_hub_lv /linseer_hub_data
(7) 设置开机自动挂载逻辑卷。将逻辑卷添加到/etc/fstab 文件中,从而实现逻辑卷在系统启动时自动挂载。
[root@matrix ~]# echo "/dev/linseer_hub_vg/linseer_hub_lv /linseer_hub_data xfs defaults 0 0" >> /etc/fstab
(8) 查看挂载结果。完成上述操作后,执行reboot命令重启服务器,待重启完成后,执行lsblk命令查看挂载结果,数据盘vdb已成功挂载到指定目录/linseer_hub_data下。
[root@matrix ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 5G 0 rom
vda 252:0 0 500G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 498.7G 0 part
├─h3linux-root 253:0 0 253G 0 lvm /var/lib/kubelet/pods/dd010433-c2f6-4687-a1ad-dd78330ff2c8/volume-subpaths/config/helm-wrapper/0
│ /var/lib/kubelet/pods/49c2a7bf-6e5b-4397-8f95-4970025c6d39/volume-subpaths/multus-cfg/kube-multus/2
│ /
├─h3linux-swap 253:1 0 15.7G 0 lvm
└─h3linux-home 253:2 0 230G 0 lvm /home
vdb 252:16 0 1.0T 0 disk
└─linseer_hub_vg-linseer_hub_lv
253:3 0 1.0T 0 lvm /linseer_hub_data
vdc 252:32 0 1.0T 0 disk
安装Matrix依赖包。
[root@matrix ~]# yum install -y java
[root@matrix ~]# yum install -y ntp
[root@matrix ~]# yum install -y docker
[root@matrix ~]# yum install -y chrony
(1) 获取Matrix软件安装包,并将软件包通过FTP工具上传至服务器的待安装目录(例如/root)下。
(2) 进入Matrix软件包(.zip文件)的存放路径,解压缩并安装Matrix。软件包的名称格式为Matrix_version-platform.zip,其中version为版本号,platform为CPU架构类型。下面以x86_64版本为例进行安装。
[root@matrix ~]# unzip Matrix_V900R001B07D008_x86_64.zip
[root@matrix ~]# cd Matrix-V900R001B07D008-x86_64
[root@matrix Matrix-V900R001B07D008_x86_64]# ./install.sh
Installing...
[install] -----------------------------------
[install] Matrix-V900R001B07D008_x86_64
[install]
[install] Linux 5.10.0-136.12.0.86.4.hl202.x86_64
[install] -----------------------------------
[install] CAUTION: Installation failed for OS incompatibility.
Matrix can be installed only on a device running :
H3Linux Release 1.1.2 and 1.3.0,
Linux Release 1.1.2 and 1.3.1,
Red Hat Enterprise Linux Server release 7.6, 7.7(Maipo) and 8.4, 8.6 (Ootpa),
Kylin Linux Advanced Server release V10 (Azalea and Sword),
CentOS Linux release 7.6.1810 and 7.7.1908(Core),
BigCloud Enterprise Linux release 7.7.2005 (Core and AltArch),
Linux 2.0.2 LTS
[INFO] Continue anyway? (Y/N) : Y
…略…
Complete!
(3) 通过命令systemctl status matrix验证Matrix服务是否安装成功。若安装成功,则将在Active 字段后显示运行信息为active (running)。剩余节点执行同样操作即可。
[root@matrix ~]# systemctl status matrix
● matrix.service - Matrix Server
Loaded: loaded (/usr/lib/systemd/system/matrix.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2023-10-24 08:01:46 CST; 2 weeks 5 days ago
Main PID: 702359 (karaf)
Tasks: 549 (limit: 3355442)
Memory: 2.3G
CGroup: /system.slice/matrix.service
├─ 702359 /bin/sh /opt/matrix/bin/karaf server
└─ 703187 /usr/bin/java -XX:+UnlockDiagnosticVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/matrix/heapdumps/ -XX:OnOutOfMemoryError=/opt/matrix/k8s/disaster-reco>
Nov 13 02:56:35 matrix sudo[916772]: pam_unix(sudo:session): session closed for user root
Nov 13 02:56:39 matrix sudo[917311]: root : PWD=/opt/matrix ; USER=root ; COMMAND=/bin/bash -c source /etc/profile; /opt/matrix/k8s/monitorscript/check_node_service_2m.sh
Nov 13 02:56:39 matrix sudo[917311]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Nov 13 02:56:39 matrix sudo[917311]: pam_unix(sudo:session): session closed for user root
Nov 13 02:57:14 matrix sudo[920771]: root : PWD=/opt/matrix ; USER=root ; COMMAND=/bin/bash -c source /etc/profile; /opt/matrix/k8s/monitorscript/check_config_dir_file_3m.sh
Nov 13 02:57:14 matrix sudo[920771]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Nov 13 02:57:14 matrix sudo[920771]: pam_unix(sudo:session): session closed for user root
Nov 13 02:57:15 matrix sudo[920998]: root : PWD=/opt/matrix ; USER=root ; COMMAND=/bin/bash -c source /etc/profile; /opt/matrix/k8s/monitorscript/check_docker_config.sh
Nov 13 02:57:15 matrix sudo[920998]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Nov 13 02:57:15 matrix sudo[920998]: pam_unix(sudo:session): session closed for user root
Matrix所有节点均使用同一个安装包进行安装,在页面上进行配置时再区分Master节点与Worker节点。
· 当使用内置NTP服务器作为时钟同步源时,在部署集群之前,需确保所有节点的系统时间和当前时间保持一致。
· 当使用外置NTP服务器作为时钟同步源时,在部署集群之前,需确保外置NTP服务器的时间与当前时间保持一致。
· 如果NTP服务器网络故障或时间不准确,则可能会导致Matrix集群部署失败。
· 可在服务器上执行以下命令查看、修改节点系统时间:date命令查看系统时间、date -s yyyy-mm-dd命令修改系统时间的年月日、date -s hh:mm:ss命令修改系统时间的时分秒。
· 完成Matrix集群环境部署后,禁止修改系统时间。
(1) 在浏览器中输入Matrix的登录地址,进入如图6-1所示的登录页面。登录地址格式为:https://ip_address:8443/matrix/ui/。其中ip_address为Master节点IP地址,8443为缺省端口号。
未部署集群之前,ip_address可以是任意一个规划为Master节点的IP地址。
图6-1 Matrix登录界面
(2) 输入用户名和密码(默认用户名为admin,密码为Pwd@12345,若安装操作系统设置过密码,则按设置的填写)后,单击<登录>按钮,默认进入Matrix的集群部署向导页面。
在Matrix的集群部署向导页面中配置Matrix集群参数,如图6-2和图6-3所示,集群参数详细介绍如表6-1所示。完成集群参数的配置后,单击<应用>按钮。
图6-2 Matrix集群设置(一)
图6-3 Matrix集群设置(二)
参数 |
说明 |
集群内部虚IP |
用于集群内各节点之间通信的IP地址,该地址必须在Master节点所处的网段内 |
北向业务虚IP |
集群对外提供服务的IP地址,该地址必须在Master节点所处的网段内 |
Service IP地址池 |
用于为Service分配IP地址,不能与部署环境中的其它网段冲突。默认地址为10.96.0.0/16,一般保持默认值 |
容器IP地址池 |
用于为容器分配IP地址,不能与部署环境中的其它网段冲突。默认地址为177.177.0.0/16,一般保持默认值 |
集群网络模式 |
集群网络模式有两种: · 单子网:集群内所有节点、虚IP必须在相同网段内,否则将无法互相通信。如果使用本地环境部署LinSeer,请选择本模式 · 单子网-VXLAN:集群内所有节点、虚IP必须在相同网段内,否则将无法互相通信。如果使用云上环境部署LinSeer,请选择本模式,否则Pod之间可能无法通信,会导致部署失败 |
NTP服务器 |
用于保证集群内各节点系统时间的一致性,支持选择内置服务器和外置服务器。选择外置服务器时,需要配置NTP服务器地址,且该地址不可与集群内各节点的IP地址冲突 本文档使用内置服务器作为NTP服务器,则部署集群时会首先进行时间同步,集群部署完成后,三台Master节点会定时同步时间,从而保证集群内各节点的系统时间保持一致 |
外置DNS服务器 |
用于解析K8s集群外部的域名,格式为IP:Port,可根据实际需要配置外置DNS服务器。本文档中不配置此项 容器解析域名时,集群外部的域名无法被内置DNS服务器解析,本系统将把需要解析的外部域名随机转发给一台外置DNS 服务器来解析 外置DNS服务器最多可以配置10个,各外置DNS服务器要求具有相同的DNS解析能力,并可以独立满足外部域名解析需求、无主备之分、无先后顺序之分 建议所有的DNS服务器都能够访问根域,可使用命令行nslookup -port={port}-q=ns . {ip}查看是否可以访问 |
自定义虚IP |
(暂不支持)在南北向业务隔离的情况下,设备需要使用固定的IP和集群通信 |
单机部署模式下,仅需增加一个Master节点即可部署集群。集群部署模式下,需要增加三个Master节点后,再部署集群。
(1) 配置集群参数后,单击<下一步>按钮,进入创建集群页面,如图6-4所示。
(2) 单击Master节点区域的增加图标,弹出增加节点窗口。
(3) 在弹出的节点窗口中,配置节点参数,如图6-5所示。配置参数后,单击<应用>按钮,完成增加Master节点操作。
¡ 类型:显示为“Master”不可修改。
¡ IP地址:规划的Master节点的IP地址。
¡ 用户名:节点操作系统的用户名,为安装NingOS系统时设置的root用户名。
¡ 密码:节点操作系统的用户密码,为安装NingOS系统时设置的root用户密码。
(4) 单击<开始部署>按钮,开始部署集群,如图6-6所示。
(5) 部署成功后,会显示各Master节点。
¡ 单机部署成功页面如图6-7所示,Master节点左上角显示标记。
¡ 集群中所有节点的进度达到100%时,表示集群部署成功,如图6-8所示。
集群部署成功后,主Master节点左上角显示标记,其余未被标记的Master节点为备用Master节点。
在使用知识库服务时,需要用到服务器的GPU资源。因此,必须安装GPU驱动程序及相关依赖包。如果这些驱动程序和依赖包已经安装,可以跳过本节步骤。
安装适配的GPU驱动程序及工具包能确保显卡在操作系统中被正确识别,并能提供多任务并行处理、大规模数据处理等功能。
安装适配的GPU驱动程序能确保显卡在操作系统中被正确识别,并能提供多任务并行处理、大规模数据处理等功能。Matrix集群中存在NVIDIA显卡的节点都需要安装对应的显卡驱动。
在服务器上执行lspci -k | grep -A 2 -E "(VGA|3D)"命令查看显卡型号。
[root@matrix ~]# lspci -k | grep -A 2 -E "(VGA|3D)"
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
Subsystem: Red Hat, Inc QEMU Virtual Machine
Kernel driver in use: cirrus
登录NVIDIA官网,并进入“驱动程序下载”栏目下载显卡驱动。
(1) 登录NVIDIA官网:https://www.nvidia.cn/Download/index.aspx?lang=cn
(2) 请设置驱动参数。
a. 参见图7-1设置NVIDIA驱动程序下载参数。
b. 请根据实际环境设置操作系统参数,H3Linux 2.0.2操作系统选择“Linux 64-bit”。
c. 单击<搜索>按钮。
下载显卡驱动时,请确保选择版本为12.0及以上的CUDA Toolkit,否则可能会导致知识库服务无法正常运行。
表7-1 显卡与CUDA Toolkit版本对应关系表
产品类型 |
产品系列 |
产品家族(含显卡型号) |
驱动版本 |
CUDA Toolkit版本 |
Tesla |
T-Series |
Tesla T4 |
NVIDIA-Linux-x86_64-525.147.05.run |
CUDA 12.0 |
(3) 如图7-2所示,搜索到目标显卡驱动后,单击<下载>按钮下载显卡驱动。
Nouveau是Linux自带的显卡驱动,需要禁用,否则安装NVIDIA显卡驱动时会提示冲突。
(1) 输入lsmod | grep nouveau命令,若显示如下信息则表示Nouveau已被启用,需要禁用Nouveau。
[root@matrix ~]# lsmod | grep nouveau
nouveau 1869689 0
mxm wmi 13021 l nouveau
wmi 21636 2 mxm_wmi,nouveau
video 24538 l nouveau
i2c_algo_bit 13413 l nouveau
ttm 114635 2 cirrus,nouveau
drm_kms_helper 179394 2 cirrus,nouveau
drm 429744 5 ttm,drm_kms_helper,cirrus,nouveau
(2) 禁用Nouveau。
a. 执行vi命令分别创建如下两个文件。
[root@matrix ~]# vi /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
[root@matrix ~]# vi /lib/modprobe.d/nvidia-installer-disable-nouveau.conf
b. 通过键盘输入“i”进入编辑界面,输入如下内容:
blacklist nouveau//屏蔽 nouveau
options nouveau modeset=0//如果不加本行配置,字符界面下,可能导致显示器黑屏,无法安装驱动
c. 按键盘上的<ESC>键,再输入“:wq”,退出配置并保存文件。
:wq
(3) 更新initramfs镜像(img格式)文件
a. 通过mv命令重命名镜像文件(作为备份)。
[root@matrix ~]# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
b. 通过dracut命令更新镜像文件信息。
[root@matrix ~]# dracut /boot/initramfs-$(uname -r).img $(uname -r)
(4) 通过reboot命令重启设备后,再次输入lsmod | grep nouveau命令,显示信息为空,则表示Nouveau已被禁用。
[root@matrix ~]# lsmod | grep nouveau
[root@matrix ~]#
(1) 配置本地YUM源,分别执行如下命令安装相关依赖包。
[root@matrix ~]# yum install -y gcc
[root@matrix ~]# yum install -y kernel-devel
[root@matrix ~]# yum install -y make
(2) 将显卡驱动安装包通过FTP工具上传至服务器的待安装目录(例如/root)下。
(3) 在服务器上执行chmod +x NVIDIA-Linux-x86_64-525.147.05.run命令将显卡驱动安装包的权限改为可执行。
[root@matrix ~]# chmod +x NVIDIA-Linux-x86_64-525.147.05.run
(4) 安装显卡驱动
a. 执行./NVIDIA-Linux-x86_64-525.147.05.run命令安装显卡驱动。
[root@matrix ~]# ./NVIDIA-Linux-x86_64-525.147.05.run
b. 安装过程中各步骤均点击<YES>或者<OK>按钮,直到显卡驱动安装完成。
(5) 执行nvidia-smi命令,若显示信息如下说明显卡驱动安装成功。
[root@matrix ~]# nvidia-smi
Mon Nov 13 03:39:19 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A100-SXM... On | 00000000:25:00.0 Off | 0 |
| N/A 31C P0 62W / 400W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100-SXM... On | 00000000:2B:00.0 Off | 0 |
| N/A 34C P0 61W / 400W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 2 NVIDIA A100-SXM... On | 00000000:63:00.0 Off | 0 |
| N/A 34C P0 63W / 400W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 3 NVIDIA A100-SXM... On | 00000000:68:00.0 Off | 0 |
| N/A 32C P0 62W / 400W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 4 NVIDIA A100-SXM... On | 00000000:9F:00.0 Off | 0 |
| N/A 32C P0 62W / 400W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 5 NVIDIA A100-SXM... On | 00000000:A4:00.0 Off | 0 |
| N/A 35C P0 65W / 400W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 6 NVIDIA A100-SXM... On | 00000000:E2:00.0 Off | 0 |
| N/A 35C P0 64W / 400W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 7 NVIDIA A100-SXM... On | 00000000:E8:00.0 Off | 0 |
| N/A 33C P0 62W / 400W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
Matrix集群中存在显卡的节点都需要安装nvidia-container-runtime。
(1) 将NVIDIA运行时工具离线安装包nvidia-container-runtime.zip ,通过FTP工具上传至服务器的待安装目录(例如/root)下。
(2) 执行unzip命令解压缩离线安装包。
[root@matrix ~]# unzip nvidia-container-runtime.zip
Archive: nvidia-container-runtime.zip
inflating: nvidia-container-runtime/libnvidia-container-tools-1.13.5-1.x86_64.rpm
inflating: nvidia-container-runtime/libnvidia-container1-1.13.5-1.x86_64.rpm
inflating: nvidia-container-runtime/nvidia-container-runtime-3.13.0-1.noarch.rpm
inflating: nvidia-container-runtime/nvidia-container-toolkit-1.13.5-1.x86_64.rpm
inflating: nvidia-container-runtime/nvidia-container-toolkit-base-1.13.5-1.x86_64.rpm
(3) 执行cd命令进入离线安装包文件夹。
[root@matrix ~]# cd nvidia-container-runtime
(4) 执行rpm -Uvh --force --nodeps *.rpm命令安装软件包。
[root@matrix rpm ~]# rpm -Uvh --force --nodeps *.rpm
警告:libnvidia-container1-1.13.5-1.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID f796ecb0: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:nvidia-container-toolkit-base-1.1################################# [ 20%]
2:libnvidia-container1-1.13.5-1 ################################# [ 40%]
3:libnvidia-container-tools-1.13.5-################################# [ 60%]
4:nvidia-container-toolkit-1.13.5-1################################# [ 80%]
5:nvidia-container-runtime-3.13.0-1################################# [100%]
(5) 分别执行如下命令检查NVIDIA运行时工具安装情况。如显示如下信息,则表示该工具安装成功。
[root@matrix ~]# whereis nvidia-container-runtime
nvidia-container-runtime: /usr/bin/nvidia-container-runtime /etc/nvidia-container-runtime
Matrix集群中存在显卡的节点都需要将容器默认运行时修改为NVIDIA运行时。
(1) 修改/etc/docker/daemon.json文件。
a. 执行vi命令修改文件。
[root@matrix ~]# vi /etc/docker/daemon.json
b. 通过键盘输入“i”进入编辑界面,在文件开头增加配置(见灰显信息)。
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
},
"live-restore": true,
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries": ["matrix-registry.h3c.com:8088", "matrix-registry-master1.h3c.com:8088"],
"bridge": "none",
"log-driver": "json-file",
"log-opts": {"max-size": "50m", "max-file": "3"}
}
c. 按键盘上的<ESC>键,再输入“:wq”,退出配置并保存文件。
:wq
(2) 执行systemctl restart docker命令重启docker服务,使NVIDIA设备插件生效。
[root@matrix ~]# systemctl restart docker
(1) 通过FTP等工具将nvidia-device-plugin.zip安装包上传到服务器(例如/root目录)。
(2) 进入目录并执行unzip命令解压缩安装包。
[root@matrix ~]# unzip nvidia-device-plugin.zip
(3) 执行cd命令进入安装包解压缩后的目录。
[root@matrix ~]# cd nvidia-device-plugin
(4) 执行命令加载镜像文件。
[root@matrix ~]# docker load -i k8s-device-plugin.tar
如果在Matrix平台上删除了Matrix节点,重新添加该节点时,需要执行命令重新导入镜像,否则会导致Pod启动失败。
(5) 根据集群部署环境的实际情况选择合适的方式部署nvidia-device-plugin.yml。
¡ 如果集群所有服务器都支持GPU,按照步骤(6)部署。
¡ 如果集群只有部分服务器支持GPU,按照步骤(7)部署。
(6) 集群所有服务器都支持GPU时,请在任一个Master节点上执行kubectl apply –f命令部署nvidia-device-plugin.yml文件,其他节点无需重复部署。例如:
[root@matrix ~]# kubectl apply -f nvidia-device-plugin.yml
(7) 如果集群只有部分服务器支持GPU时,请为每个GPU服务器节点创建yml文件,通过yml文件内的name字段区分。
a. 在任一个Master节点上,为各个GPU服务器节点创建nvidia-device-plugin.yml文件,文件名称不能重复。
b. 执行kubectl get node --show-labels命令查看集群GPU服务器节点的nodeid(灰显信息)。
[root@matrix ~]# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
matrix01 Ready control-plane,master 47d v1.21.14 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix01,kubernetes.io/os=linux,master=master1,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=,node=node1,platform=plat,role=master
matrix02 Ready control-plane,master 48d v1.21.14 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix02,kubernetes.io/os=linux,master=master2,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=,node=node2,platform=plat,role=master
matrix03 Ready control-plane,master 48d v1.21.14 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix03,kubernetes.io/os=linux,master=master3,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=,node=node3,platform=plat,role=master
matrix04 Ready <none> 4d22h v1.21.14 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix04,kubernetes.io/os=linux,node=node4,role=worker,worker=worker1
c. 修改各个yml文件的name字段,修改后的文件示例如下(灰显信息为修改后的内容),确认无误后保存。
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: nvidia-device-plugin-daemonset-node1 //各GPU服务器节点名称不要重复
namespace: kube-system
spec:
selector:
matchLabels:
name: nvidia-device-plugin-ds
updateStrategy:
type: RollingUpdate
template:
metadata:
labels:
name: nvidia-device-plugin-ds
spec:
nodeSelector:
node: node1 //GPU服务器节点的nodeid,通过上一步骤可查询
tolerations:
- key: nvidia.com/gpu
operator: Exists
effect: NoSchedule
# Mark this pod as a critical add-on; when enabled, the critical add-on
# scheduler reserves resources for critical add-on pods so that they can
# be rescheduled after a failure.
# See https://kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/
priorityClassName: "system-node-critical"
containers:
- image: nvcr.io/nvidia/k8s-device-plugin:v0.14.0
name: nvidia-device-plugin-ctr
env:
- name: FAIL_ON_INIT_ERROR
value: "false"
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
volumeMounts:
- name: device-plugin
mountPath: /var/lib/kubelet/device-plugins
volumes:
- name: device-plugin
hostPath:
path: /var/lib/kubelet/device-plugins
d. 在任意一个Master节点上执行kubectl apply –f命令部署各个GPU服务器节点的yml文件。例如:
[root@matrix ~]# kubectl apply -f nvidia-device-plugin-node2.yml
(8) 执行kubectl get pod -n kube-system -o wide | grep plugin命令查询Pod运行状态,如果各GPU服务节点的Pod均为running状态,则表示nvidia-device-plugin插件安装成功。
[root@matrix ~]# kubectl get pod -n kube-system -o wide | grep plugin
nvidia-device-plugin-daemonset-9jrb8 1/1 Running 2 47d 177.177.173.14 matrix <none> <none>
在服务器上执行kubectl describe node命令,查看nvidia.com/gpu字段可以显示GPU数量,则表示GPU识别正常。如GPU识别异常,请尝试重启服务器后,再次执行命令查看GPU识别情况。
[root@matrix ~]# kubectl describe node matrix //matrix为服务器主机名称
Name: matrix
Roles: control-plane,master
...
Capacity:
cpu: 255
ephemeral-storage: 3748905484Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 1055870908Ki
nvidia.com/gpu: 8
pods: 300
rdma/hpc_shared_devices_ens11f1np1: 1k
rdma/hpc_shared_devices_ens12f1np1: 1k
rdma/hpc_shared_devices_ens13f1np1: 1k
rdma/hpc_shared_devices_ens14f1np1: 1k
rdma/hpc_shared_devices_ens15f1np1: 1k
rdma/hpc_shared_devices_ens16f1np1: 1k
rdma/hpc_shared_devices_ens17f1np1: 1k
rdma/hpc_shared_devices_ens18f1np1: 1k
Allocatable:
cpu: 240
ephemeral-storage: 3454991288335
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 1045282748Ki
nvidia.com/gpu: 8
pods: 300
rdma/hpc_shared_devices_ens11f1np1: 1k
rdma/hpc_shared_devices_ens12f1np1: 1k
rdma/hpc_shared_devices_ens13f1np1: 1k
rdma/hpc_shared_devices_ens14f1np1: 1k
rdma/hpc_shared_devices_ens15f1np1: 1k
rdma/hpc_shared_devices_ens16f1np1: 1k
rdma/hpc_shared_devices_ens17f1np1: 1k
rdma/hpc_shared_devices_ens18f1np1: 1k
...
请按需向技术支持获取对应版本的天数智铠驱动组件安装包,详细版本信息请参见表7-2。
产品类型 |
产品家族(显卡型号) |
IX-ML版本 |
驱动版本 |
CUDA版本 |
天数智铠 |
Iluvatar MR-V100 |
4.0.0 |
4.0.0 |
CUDA 10.2 |
(1) 配置本地YUM源,依次执行如下命令安装相关依赖包。
[root@localhost ~]# yum install -y elfutils-libelf-devel
[root@localhost ~]# yum install kernel-devel
[root@localhost ~]# yum install make
[root@localhost ~]# yum install -y python3-pip
[root@localhost ~]# yum install -y kmod
[root@localhost ~]# yum install -y make
[root@localhost ~]# yum install -y ncurses-libs
(2) 通过FTP工具上传partial_install_cuda_header.tar,并执行如下命令解压缩。
[root@localhost ~]# tar -zvxf partial_install_cuda_header.tar.gz
partial_install_cuda_header/
partial_install_cuda_header/README.MD
partial_install_cuda_header/.git/
partial_install_cuda_header/.git/description
partial_install_cuda_header/.git/index
partial_install_cuda_header/.git/branches/
partial_install_cuda_header/.git/objects/
partial_install_cuda_header/.git/objects/pack/
partial_install_cuda_header/.git/objects/pack/pack-41ad15857b08769635c68468207e266f951706e1.pack
partial_install_cuda_header/.git/objects/pack/pack-41ad15857b08769635c68468207e266f951706e1.idx
partial_install_cuda_header/.git/objects/info/
partial_install_cuda_header/.git/hooks/
...
(3) 进入解压目录,执行sh install_cuda_header.sh命令,完成部署CUDA工具。
[root@localhost ~]# cd partial_install_cuda_header/
[[root@localhost partial_install_cuda_header]# ll
总用量 12
drwxr-xr-x 5 root root 4096 12月 28 2022 cuda
-rwxr-xr-x 1 root root 901 12月 28 2022 install-cuda-header.sh
-rw-r--r-- 1 root root 1084 12月 28 2022 README.MD
[root@localhost partial_install_cuda_header]# sh install_cuda-header.sh
(4) 创建并编辑/etc/yum.conf配置文件,在文件中最后一行添加“exclude=kernel*”,禁用系统自动更新。
a. 执行vi命令创建文件。
[root@localhost ~]# vi /etc/yum.conf
b. 通过键盘输入字符“i”进入编辑界面,输入如下内容:
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
multilib_policy=all
exclude=kernel*
c. 按键盘上的<ESC>键,再输入“:wq”,退出配置并保存文件。
:wq
(5) 安装软件栈(Docker安装⽅式)。
a. 通过FTP工具上传文件corex-docker-installer-4.0.0-10.2-ubuntu20.04-py3.10-x86_64.run。
b. 进入文件目录,执行bash命令部署天数智铠驱动。
[root@localhost ~]# bash corex-docker-installer-4.0.0-10.2-ubuntu20.04-py3.10-x86_64.run
...
五、软件的所有权与著作权
5.1 本软件,包括与其中包含的所有知识产权,除5.2条所述外,均为天类
本软件的复制。本软件及其所有复制品(全部或部分,以任何形式)的所
秘密信息向您授予任何明确或暗含的权利。
Do you accept the EULA?
accept/decline/quit: _
c. 输入“accept”完成确认。
Do you accept the EULA?
accept/decline/quit: accept
(6) 安装Core X:进入安装界面后,按键盘<Space>键勾选“Install driver”,按<↑><↓>键移动选择选择“Install”,最后按<Enter>键确认操作。
Corex v3.2.1 Docker Instal
[ * ] Install driver
[ ] Disable dkms Disable use of dkms
Module Secret Key Private Key File to sign driver module
Module Public Key Public Key File to sign driver module
Set Cuda Path
Set Image Name
Install
(7) 执行ll /usr/local命令查看Core X的版本号。
[root@localhost ~]# ll /usr/local
总用量 52
drwxr-xr-x. 2 root root 4096 3月 20 14:31 bin
drwxr-xr-x 5 root root 4096 2月 4 08:40 corex-4.0.0
lrwxrwxrwx 1 root root 20 2月 4 08:30 cuda -> /usr/local/cuda-10.2
drwxrwxrwx 5 root root 4096 6月 24 2022 cuda-10.2
drwxr-xr-x. 2 root root 4096 8月 8 2022 etc
drwxr-xr-x. 2 root root 4096 8月 8 2022 games
drwxr-xr-x. 5 root root 4096 1月 22 16:43 h3diag
drwxr-xr-x. 2 root root 4096 8月 8 2022 include
drwxr-xr-x. 3 root root 4096 3月 20 14:30 lib
drwxr-xr-x. 4 root root 4096 3月 20 14:30 lib64
drwxr-xr-x. 2 root root 4096 8月 8 2022 libexec
drwxr-xr-x. 2 root root 4096 8月 8 2022 sbin
drwxr-xr-x. 5 root root 4096 1月 22 16:43 share
drwxr-xr-x. 2 root root 4096 8月 8 2022 src
(8) 增加环境变量:
a. 执行vi ~/.bashrc命令进入.bashrc文件,根据查到的版本号“corex-4.0.0”在最后一行增加灰显内容:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export OS_TYPE=1
export PATH=$PATH:/usr/local/corex-4.0.0/bin
export LD_LIBRARY_PATH=/usr/local/corex-4.0.0/lib
export KUBECONFIG=/etc/kubernetes/admin.conf
b. 执行source ~/.bashrc命令,完成环境变量配置。
[root@localhost ~]# source ~/.bashrc
(9) 安装完成后执行ixsmi命令,若有如下显示信息则表示说显卡驱动安装成功。
[root@localhost ~]# ixsmi
Timestamp Wed Mar 27 08:02:20 2024
+-----------------------------------------------------------------------------+
| IX-ML: 4.0.0 Driver Version: 4.0.0 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------|
| GPU Name | Bus-Id | Clock-SM Clock-Mem |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Iluvatar MR-V100 | 00000000:1B:00.0 | 1500MHz 1600MHz |
| 0% 34C P0 34W / 150W | 25486MiB / 32768MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Iluvatar MR-V100 | 00000000:1C:00.0 | 1500MHz 1600MHz |
| 0% 34C P0 35W / 150W | 25486MiB / 32768MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 Iluvatar MR-V100 | 00000000:1F:00.0 | 1500MHz 1600MHz |
| 0% 33C P0 34W / 150W | 114MiB / 32768MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 3 Iluvatar MR-V100 | 00000000:23:00.0 | 1500MHz 1600MHz |
| 0% 35C P0 35W / 150W | 114MiB / 32768MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 4 Iluvatar MR-V100 | 00000000:35:00.0 | 1500MHz 1600MHz |
| 0% 35C P0 34W / 150W | 114MiB / 32768MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 5 Iluvatar MR-V100 | 00000000:36:00.0 | 1500MHz 1600MHz |
| 0% 36C P0 34W / 150W | 114MiB / 32768MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 6 Iluvatar MR-V100 | 00000000:39:00.0 | 1500MHz 1600MHz |
| 0% 34C P0 34W / 150W | 114MiB / 32768MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 7 Iluvatar MR-V100 | 00000000:3D:00.0 | 1500MHz 1600MHz |
| 0% 34C P0 34W / 150W | 114MiB / 32768MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Process name Usage(MiB) |
(1) 通过FTP等工具将iluvatar.zip上传到Matrix集群任一Master节点上(例如/root目录)。
(2) 进入目录并执行unzip命令解压缩安装包。
[root@matrix ~]# unzip iluvatar.zip
(3) 执行cd命令进入安装包解压缩后的目录。
[root@matrix ~]# cd iluvatar
(4) 执行docker load -i命令加载镜像文件。
[root@matrix ~]# docker load -i k8s-device-plugin.tar
(5) 执行kubectl apply –f命令部署iluvatar-device-plugin文件。只需在一个节点上部署,其他节点无需重复操作。
[root@matrix ~]# kubectl apply -f iluvatar-device-plugin.yml
(6) 执行以下命令查看插件部署状态,如果运行状态为Running,则表示插件部署成功。
[root@matrix ~]# kubectl get pod -n kube-system -o wide | grep iluvatar
iluvatar-device-plugin-jhcx7 1/1 Running 16 12d 177.177.224.232 matrix159 <none> <none>
(7) 确认GPU识别正常。在服务器上执行kubectl describe node命令,查看“iluvatar.ai/gpu”字段。如果可以正常显示GPU数量,则表示GPU识别正常。如未显示GPU数量,则表示GPU识别异常,请尝试重启服务器后,再次执行本命令查看GPU识别情况。
[root@matrix11 ~]# kubectl describe node
Name: matrix11
Roles: control-plane,master
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=matrix11
kubernetes.io/os=linux
master=master1
node=node1
node-role.kubernetes.io/control-plane=
node-role.kubernetes.io/master=
node.kubernetes.io/exclude-from-external-load-balancers=
platform=plat
role=master
Annotations: kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
node.alpha.kubernetes.io/ttl: 0
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Fri, 12 Jul 2024 12:06:50 +0800
Taints: <none>
Unschedulable: false
Lease:
HolderIdentity: matrix11
AcquireTime: <unset>
RenewTime: Thu, 18 Jul 2024 10:42:04 +0800
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
NetworkUnavailable False Tue, 16 Jul 2024 15:58:30 +0800 Tue, 16 Jul 2024 15:58:30 +0800 CalicoIsUp Calico is running on this node
MemoryPressure False Thu, 18 Jul 2024 10:41:24 +0800 Fri, 12 Jul 2024 12:06:49 +0800 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Thu, 18 Jul 2024 10:41:24 +0800 Fri, 12 Jul 2024 12:06:49 +0800 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Thu, 18 Jul 2024 10:41:24 +0800 Fri, 12 Jul 2024 12:06:49 +0800 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Thu, 18 Jul 2024 10:41:24 +0800 Fri, 12 Jul 2024 21:40:44 +0800 KubeletReady kubelet is posting ready status
Addresses:
InternalIP: 10.114.164.14
Hostname: matrix11
Capacity:
cpu: 112
ephemeral-storage: 1055762868Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
iluvatar.ai/gpu: 3
memory: 1055845592Ki
pods: 300
Allocatable:
cpu: 105
ephemeral-storage: 972991057538
hugepages-1Gi: 0
hugepages-2Mi: 0
iluvatar.ai/gpu: 3
memory: 1045257432Ki
pods: 300
...
(1) 如果/home/h3c/linseer-hub目录不存在,则需要先执行mkdir –p命令创建目录/home/h3c/linseer-hub。
[root@matrix01 linseer-hub]# mkdir -p /home/h3c/linseer-hub
(2) 解压安装包中的embedding-packages.zip后,通过FTP工具将embedding-packages中的models.zip、site-packages- iluvatar.zip(天数GPU适用)、site-packages-nvidia.zip(Nvidia GPU适用)、sync_models_packages.sh上传至任一Master节点的/home/h3c/linseer-hub目录下。
(3) 解压缩依赖包。
¡ 若Matrix为单节点模式,执行unzip命令将models.zip、site-packages- iluvatar.zip(天数GPU适用)、site-packages-nvidia.zip(Nvidia GPU适用)解压。
[root@matrix01 linseer-hub]# cd /home/h3c/linseer-hub
[root@matrix01 linseer-hub]# unzip models.zip
[root@matrix01 linseer-hub]# unzip site-packages-iluvatar.zip//天数GPU适用
[root@matrix01 linseer-hub]# unzip site-packages-nvidia.zip//Nvidia GPU适用
¡ 若Matrix为集群模式,执行sync_models_packages.sh脚本将models.zip、site-packages- iluvatar.zip(天数GPU适用)、site-packages-nvidia.zip(Nvidia GPU适用)复制到Matrix集群所有节点的/home/h3c/linseer-hub目录下,并且解压缩。
[root@matrix01 linseer-hub]# cd /home/h3c/linseer-hub
[root@matrix01 linseer-hub]# sh sync_models_packages.sh
执行脚本前,请请确认Matrix集群内部已实现免密认证,即执行脚本无需输入密码。如果未实现免密认证,执行脚本时需要输入服务器root账号密码。
通过FTP工具将安装包中的init_scripts.zip上传至任一Master节点上,解压后,执行linseer_hub_data_dir_create.sh脚本创建使能平台数据目录。
[root@matrix linseer-hub]# unzip init_scripts.zip
[root@matrix linseer-hub]# cd init_scripts
[root@matrix linseer-hub]# sh linseer_hub_data_dir_create.sh
· 执行脚本前,请确认Matrix集群是否已符合以下条件:
· Matrix集群内部已实现免密认证,即执行脚本无需输入密码,如果未实现免密认证,执行脚本时需要输入服务器root账号密码。
· 每个节点上的根目录下都存在/linseer_hub_data目录,并已挂载对应的数据盘。
仅在集群部署模式下,需要添加节点标签,确保使能平台对应的Pod能够部署到指定的节点上。
执行kubectl get node命令查看Matrix节点详细信息。
[root@matrix ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
matrix01 Ready control-plane,master 21d v1.21.0
matrix02 Ready control-plane,master 20d v1.21.0
matrix03 Ready control-plane,master 20d v1.21.0
matrix04 Ready <none> 17d v1.21.0
matrix05 Ready <none> 16d v1.21.0
执行kubectl get nodes --show-labels命令查看Matrix节点标签信息。
[root@matrix ~]# kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
matrix01 Ready control-plane,master 21d v1.21.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix01,kubernetes.io/os=linux,master=master1,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=,node=node1,platform=plat,role=master,servicetype=linseer-server
matrix02 Ready control-plane,master 20d v1.21.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix02,kubernetes.io/os=linux,master=master2,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=,node=node2,platform=plat,role=master,servicetype=linseer-server
matrix03 Ready control-plane,master 20d v1.21.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix03,kubernetes.io/os=linux,master=master3,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=,node=node3,platform=plat,role=master,servicetype=linseer-server
matrix04 Ready <none> 17d v1.21.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix04,kubernetes.io/os=linux,node=node4,role=worker,worker=worker1
matrix05 Ready <none> 16d v1.21.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=matrix05,kubernetes.io/os=linux,node=node5,role=worker,worker=worker2
在集群模式下部署MySQL、Redis、RocketMQ、Milvus等平台组件时,这些中间件以多副本形式运行,并将数据保存到本地磁盘。为了确保每个副本每次启动时都能部署到固定的节点,请在Master节点上添加有序节点标签。
以名称分别为matrix01、matrix02、matrix03的3个Master节点为例,执行kubectl label node 节点名称 标签名称命令添加有序节点标签:
[root@matrix ~]# kubectl label node matrix01 linseer-hub-node-number=linseer-hub-node-0
node/matrix01 labeled
[root@matrix ~]# kubectl label node matrix02 linseer-hub-node-number=linseer-hub-node-1
node/matrix02 labeled
[root@matrix ~]# kubectl label node matrix03 linseer-hub-node-number=linseer-hub-node-2
node/matrix03 labeled
Master节点名称必须与“8.3.2 查看Matrix节点标签信息”中获取到的名称完全相同,有序节点标签的key值(例如linseer-hub-node-number)和value值(例如linseer-hub-node-0)均需使用示例中的值,不支持修改。
集群部署模式下,一部分Pod需要通过有序节点标签调度到指定的节点,另一部分Pod则通过添加通用标签来调度到指定的节点上。
执行kubectl label node 节点名称 servicetype=标签名称命令添加节点标签。
[root@matrix ~]# kubectl label node matrix01 servicetype=linseer-server
node/matrix01 labeled
通用节点名称为“8.3.2 查看Matrix节点标签信息”中获取的名称,节点标签的key值(固定为“servicetype”)不支持修改,value值(例如linseer-server)可以根据实际情况修改。通过Matrix部署使能平台时,在参数部署页面上配置的节点标签值需要和此处配置的值保持一致。
如果需要删除节点标签,请执行kubectl label node节点名称 标签名称-命令。
[root@matrix ~]# kubectl label node matrix01 servicetype-
node/matrix01 labeled
(1) 在浏览器中输入Matrix的登录地址,进入如图8-1所示的登录页面。登录地址格式为:https://ip_address:8443/matrix/ui/。其中ip_address为Master节点IP地址,8443为缺省端口号。
采用集群部署模式时,未部署集群之前,ip_address可以是任意一个规划为Master节点的IP地址。
图8-1 Matrix登录界面
(2) 输入用户名和密码(默认用户名为admin,密码为Pwd@12345,若安装操作系统设置过密码,则按设置的填写)后,单击<登录>按钮进入概览页面,如图8-2所示。
对于较大的组件安装包,可以通过FTP等方式,上传到集群各个Master节点的/opt/matrix/app/install/packages目录下,然后在Matrix页面进行解析完成安装部署。
(1) 如图8-3所示,在概览页面选择顶部“部署”页签,单击左侧[应用]菜单项进入部署应用页面,单击<部署应用>按钮。
图8-3 Matrix集群部署应用页面
(2) 单击<上传>按钮,弹出部署应用对话框。
图8-4 准备上传安装包
(3) 在部署应用对话框中选择安装包,并单击<上传>按钮上传以下安装包:
¡ linseer-hub-base-version.zip
¡ linseer-hub-service-version.zip
¡ linseer-hub-embedding-nvidia-version.zip
¡ linseer-hub-embedding-iluvatar-version.zip
使能平台知识库服务安装包存在两个版本,一个用于适配天数GPU,一个用于适配Nvidia GPU,需要根据服务器显卡型号上传对应版本安装包。
(4) 重复上述步骤,直到上传完所有安装包。
部署各使能平台安装包时,均需要修改基本应用参数。
基本应用参数包括“global.nodeSelector.enabled”和“global.nodeSelector.label”。
基本应用参数设置方法如下:
· global.nodeSelector.enabled:表示是否配置节点调度,根据网络规划选择“true”或“false”。
¡ 选择“false”,表示部署的Pod由集群采用默认的调度策略进行调度。
¡ 选择“true”,且“global.nodeSelector.label”参数设置了节点标签名称时,系统将根据节点标签进行调度。
· global.nodeSelector.label:表示节点标签名称。请先按照如下步骤添加节点标签,再在本处填写对应的节点标签名称。
需要注意的是:
· 通过应用参数“global.nodeSelector.label”设置的节点标签名称,必须与8.3.3 2. 添加通用节点标签加节点标签名称保持一致,否则会导致Pod启动失败。所有组件均部署完成后,在服务器上执行kubectl get pod -n linseer-hub命令查看组件的Pod状态为“Pending”,则表示Pod启动失败。
[root@matrix ~]# kubectl get pod -n linseer-hub
NAME READY STATUS RESTARTS AGE
linseer-hub-base-elasticsearch-master-0-0 0/1 Pending 0 14d
linseer-hub-base-elasticsearch-master-1-0 0/1 Pending 0 14d
linseer-hub-base-elasticsearch-master-2-0 0/1 Pending 0 14d
...
· 安装包执行顺序:基础组件安装包->使能平台服务安装包-->使能平台知识库服务安装包。
· 使能平台服务部署成功后,如果要修改应用参数,需要在Matrix平台上卸载相关应用并重新部署。
(1) 如图8-6所示,选择已上传的安装包,单击<下一步>按钮,开始解析安装包。
(2) 安装包解析完成后,系统自动选中解析后的组件包,如图8-7所示,单击<下一步>按钮跳过配置共享存储和配置数据库两个步骤,进入配置参数页面。
(3) 在配置参数页面,单击编辑按钮修改应用参数,完成参数修改后,单击<部署>按钮部署安装包。各组件安装包需要修改的应用参数有所不同。
¡ 设置基础组件安装包的应用参数,如图8-8所示:
- global.architecture:选择部署模式,包含standalone(单机模式)和replication(集群模式)。
- global.nodeSelector.enabled:根据网络规划选择配置节点调度为“true”或“false”,详细介绍请参见“8.6.1 基本应用参数介绍”。
- global.nodeSelector.label:输入节点标签名称。请确保已添加节点标签,再在本处填写对应的标签名称,详细介绍请参见“8.6.1 基本应用参数介绍”。
- global.externalS3.url:输入S3存储地址(http://ip:port)。使用外置S3存储时,注意存储服务器和Matrix服务器时间必须保持一致,否则会导致S3存储数据写入失败。
- global.externalS3.accessKey:输入S3存储服务的访问密钥Access Key。
- global.externalS3.secretKey:输入S3存储服务的密钥Secret Key。
- global.externalS3.bucketName:输入S3存储服务默认存储桶Bucket。
- global.dns:输入DNS地址,使用外置S3存储且地址为域名时,注意修改本配置。
¡ 设置使能平台服务安装包的应用参数,如图8-9、图8-10、图8-11、图8-12所示。
- global.replicaCount:输入Pod的副本个数。
- global.nodeSelector.enabled:根据网络规划选择配置节点调度为“true”或“false”,详细介绍请参见“8.6.1 基本应用参数介绍”。
- global.nodeSelector.label:输入节点标签名称。请确保已添加节点标签,再在本处填写对应的标签名称,详细介绍请参见“8.6.1 基本应用参数介绍”。
- linseer-hub-apiserver.nodeSelector.enabled:根据网络规划确认是否需要为API server配置节点调度功能,选择“true”或“false”。本参数功能与参数global.nodeSelector.enabled类似,详细介绍请参见“8.6.1 基本应用参数介绍”。
- linseer-hub-apiserver.nodeSelector.label:输入API server节点标签。请确保已添加节点标签,再在本处填写对应的标签名称。本参数功能与参数global.nodeSelector.label类似,详细介绍请参见“8.6.1 基本应用参数介绍”。
- global.dns:输入DNS地址。
- global.milvus.host:输入Milvus地址。
- global.milvus.port:输入Milvus端口号。
- global.milvus.username:输入Milvus用户名。
- global.milvus.password:输入Milvus密码。
- global.es.uris::输入Elasticsearch访问地址(ip:port)。
- global.es.username:输入Elasticsearch账号名。
- global.es.password:输入Elasticsearch密码。
- global.externalS3.url:输入S3访问地址(http://ip:port格式)。使用外置S3存储时,注意存储服务器和Matrix服务器时间必须保持一致,否则会导致S3存储数据写入失败。。
- global. externalS3.accessKey:输入S3存储服务的访问密钥Access Key。
- global. externalS3.secretKey:输入S3存储服务的密钥Secret Key。
- global.pgsql.host:输入pgsql数据库连接地址。
- global.pgsql.port:输入pgsql数据库端口号。
- global.pgsql.username:输入pgsql数据库用户名。
- global.pgsql.password:输入pgsql数据库密码。
- global.pgsql.server.dbname:输入使能平台的管理端数据库名称。
- global.pgsql.flow.dbname:输入使能平台的编排服务数据库名称。
- global.redis.host:输入redis服务的连接地址。
- global.redis.port:输入redis服务端口号。
- global.redis.password:输入redis服务密码。
对于使用第三方pg数据库服务:
· 请确保提供的用户名密码能正常连接,通常需要数据库管理员创建一个默认与用户名同名的数据库。
· 需要提前创建llmep_aigc_flow、llmep_server、licc三个数据库,并确保提供的用户名有对这三个数据库的建库、建表、字段修改、数据读写权限。
¡ 编辑使能平台知识库服务安装包的应用参数:
- nodeSelector.enabled:根据网络规划选择配置节点调度为“true”或“false”。本参数功能与参数global.nodeSelector.enabled类似,详细介绍请参见“8.6.1 基本应用参数介绍”。
- nodeSelector.label:输入节点标签名称。请确保已添加节点标签,再在本处填写对应的标签名称。本参数功能与参数global.nodeSelector.label类似,详细介绍请参见“8.6.1 基本应用参数介绍”。
- gpu.enabled:根据网络规划选择是否使用GPU资源。
- cudaDevices:指定使用的GPU序号,默认随机选择1个,多个GPU之间用英文分号隔开。例如0;1;2。
- replicaCount:输入Pod的副本个数。
- milvus.host:输入Milvus地址。
- milvus.port:输入Milvus端口号。
- milvus.username:输入Milvus用户名。
- milvus.password:输入Milvus密码。
- es.uris:输入Elasticsearch连接地址(ip:port)。
- es.username:输入Elasticsearch账号。
- es.password:输入Elasticsearch密码。
- externalS3.url:输入S3连接地址(http://ip:port)。使用外置S3存储时,注意存储服务器和Matrix服务器时间必须保持一致,否则会导致S3存储数据写入失败。
- global. externalS3.accessKey:输入S3存储服务的访问密钥Access Key。
- global. externalS3.secretKey:输入S3存储服务的密钥Secret Key。
- dns:输入DNS地址。
- global.pgsql.host:输入pgsql数据库连接地址。
- global.pgsql.port:输入pgsql数据库端口号。
- global.pgsql.username:输入pgsql数据库用户名。
- global.pgsql.password:输入pgsql数据库密码。
- global.pgsql.server.dbname:输入使能平台的管理端数据库名称。
- global.redis.host:输入redis服务的连接地址。
- global.redis.port:输入redis服务端口号。
- global.redis.password:输入redis服务密码。
对于使用第三方pg数据库服务:
· 请确保提供的用户名密码能正常连接,通常需要数据库管理员创建一个默认与用户名同名的数据库。
· 需要提前创建llmep_aigc_flow、llmep_server、licc三个数据库,并确保提供的用户名有对这三个数据库的建库、建表、字段修改、数据读写权限。
图8-13 修改使能平台知识库安装包的应用参数(一)
图8-14 修改使能平台知识库安装包的应用参数(二)
图8-15 修改使能平台知识库安装包的应用参数(三)
图8-16 修改使能平台知识库安装包的应用参数(四)
(4) 单击<部署>按钮,等待安装包部署完成,如图8-17所示。
(5) 如图8-18所示,在弹出的对话框中单击<确定>按钮后,进入部署完成后的页面。
(6) 重复上述步骤,直到完成部署所有安装包,如图8-19所示。
待所有组件均部署完成后,在服务器上执行kubectl get pod -n linseer-hub命令查看各组件的Pod状态均为“Running”或“Completed”,表示系统已正常运行。
[root@matrix ~]# kubectl get pod -n linseer-hub
NAME READY STATUS RESTARTS AGE
linseer-hub-base-elasticsearch-master-0-0 1/1 Running 0 23h
linseer-hub-base-elasticsearch-master-1-0 1/1 Running 0 23h
linseer-hub-base-elasticsearch-master-2-0 1/1 Running 0 23h
linseer-hub-base-etcd-0-0 1/1 Running 0 23h
linseer-hub-base-etcd-1-0 1/1 Running 1 23h
linseer-hub-base-etcd-2-0 1/1 Running 0 23h
linseer-hub-base-kafka-controller-0-0 1/1 Running 0 23h
linseer-hub-base-kafka-controller-1-0 1/1 Running 2 23h
linseer-hub-base-kafka-controller-2-0 1/1 Running 0 23h
linseer-hub-base-milvus-attu-5f7dffcc5-lnbzp 1/1 Running 0 23h
linseer-hub-base-milvus-datacoord-ccf65c969-g8r79 1/1 Running 5 23h
linseer-hub-base-milvus-datanode-7566bcd89f-bq4bc 1/1 Running 5 23h
linseer-hub-base-milvus-indexcoord-767ccf8f84-chntv 1/1 Running 0 23h
linseer-hub-base-milvus-indexnode-5759bd6f98-frghp 1/1 Running 5 23h
linseer-hub-base-milvus-proxy-75c5768c8c-j2rnw 1/1 Running 5 23h
linseer-hub-base-milvus-querycoord-5548fd65d7-bq4qz 1/1 Running 5 23h
linseer-hub-base-milvus-querynode-76c447bb4d-7mzw9 1/1 Running 4 23h
linseer-hub-base-milvus-querynode-76c447bb4d-kjbg5 1/1 Running 5 23h
linseer-hub-base-milvus-querynode-76c447bb4d-lbncw 1/1 Running 3 23h
linseer-hub-base-milvus-rootcoord-586d4d999c-7hjrm 1/1 Running 5 23h
linseer-hub-base-minio-0-0 1/1 Running 0 23h
linseer-hub-base-minio-1-0 1/1 Running 0 23h
linseer-hub-base-minio-2-0 1/1 Running 0 23h
linseer-hub-base-minio-3-0 1/1 Running 0 23h
linseer-hub-base-minio-4-0 1/1 Running 0 23h
linseer-hub-base-minio-5-0 1/1 Running 0 23h
linseer-hub-base-postgresql-ha-pgpool-78446df774-8zbqh 1/1 Running 3 23h
linseer-hub-base-postgresql-ha-postgresql-0-0 1/1 Running 0 23h
linseer-hub-base-postgresql-ha-postgresql-1-0 1/1 Running 4 23h
linseer-hub-base-postgresql-ha-postgresql-2-0 1/1 Running 0 23h
linseer-hub-base-redis-master-0 1/1 Running 0 23h
linseer-hub-base-redis-replicas-0-0 1/1 Running 0 23h
linseer-hub-base-redis-replicas-1-0 1/1 Running 0 23h
pg-pod-checker-28896135-xm8kk 0/1 Completed 0 11m
pg-pod-checker-28896140-jb6d8 0/1 Completed 0 6m22s
pg-pod-checker-28896145-pf59s 0/1 Completed 0 81s
(1) 在浏览器中输入使能平台的登录地址“https://ip_address:37077”,其中ip_address为北向业务虚IP地址,进入使能平台登录页面,如图8-20所示。
(2) 输入用户和密码(默认用户名admin,密码为Admin@h3c)后,单击<立即登录>按钮,进入使能平台主页,如图8-21所示。
使能平台部署完成后即可试用。
使能平台提供License管理功能,可为产品管理授权。关于License Server服务部署的详细介绍,请参见《H3C License Server安装指导》。关于产品授权的详细介绍,请参见《License支持情况说明》和《License使用指南》。
(1) 在浏览器中输入Matrix的登录地址进入登录页面,输入用户名和密码,单击<登录>按钮登录Matrix。关于登录Matrix的详细介绍,请参见“8.4 登录Matrix”。
(2) 如图10-1所示,选择[应用]菜单项打开应用列表,单击各个组件操作行的按钮,在操作提示框中单击<确定>按钮完成卸载。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!