34 PCM部署操作步骤
zhouqunjie edited this page 2024-05-29 08:58:24 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PCM功能部署参考手册

本手册默认在centos7 操作系统中进行ubuntu及其他发行版可以根据操作步骤相应进行调整。

1 mysql部署及数据导入

mysql中存储了pcm组件的元数据以及任务相关的业务数据用户可以根据情况如已有mysql 以上8.0版本的服务可以直接执行1.2及之后的操作完成数据导入1.1的操作主要提供给没有mysql服务的用户使用。myslq的安装可以在1.1(a)和1.1(b)中选择一种方式即可。

1.1(a) 官方yum包安装方式

卸载已有的mariadb

yum remove -y mariadb-server mariadb mariadb-libs

下载官方发行包

此处可以在https://repo.mysql.com/ 根据操作系统版本选择相应的包来下载例如这里选择的版本是el7-11 wget https://repo.mysql.com/mysql80-community-release-el7-11.noarch.rpm

注册发行包

sudo yum install -y mysql80-community-release-el7-11.noarch.rpm

检查仓库是否已经注册

yum repolist enabled | grep "mysql.*-community.*" 查询到mysql80 server就是已经注册成功

关闭5.7 开启8.0

sudo yum-config-manager --disable mysql57-community sudo yum-config-manager --enable mysql80-community

安装mysql

sudo yum install -y mysql-community-server

启动服务

systemctl start mysqld

查看服务状态

systemctl status mysqld 状态为active(running)即为启动成功

1.1(b) rpm包下载安装方式

卸载已有的mariadb

yum remove -y mariadb-server mariadb mariadb-libs

下载对应系统版本的mysql包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar

解压

tar -xvf mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar

安装
rpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-debuginfo-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.36-1.el7.x86_64.rpm
关闭防火墙

systemctl stop firewalld

启动服务

systemctl start mysqld

查看服务状态

systemctl status mysqld 状态为active(running)即为启动成功

1.2 数据库操作

查看初始密码

grep 'temporary password' /var/log/mysqld.log 使用mysql -u root -p 登录

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Nudt!123';

配置用户外部访问
use mysql;
update user set host = '%' where user = 'root';
flush privileges;

创建PCM所需要的数据库
create database pcm;
create database pcm_auth;

然后执行exit退出mysql命令行

1.3 导入数据库文件

下载数据库脚本

wget -O pcm_auth.sql https://www.gitlink.org.cn/attachments/entries/get_file?download_url=https://www.gitlink.org.cn/api/JointCloud/pcm-coordinator/raw/deploy%2Fpcm-auth.sql?ref=master wget -O pcm.sql https://www.gitlink.org.cn/attachments/entries/get_file?download_url=https://www.gitlink.org.cn/api/JointCloud/pcm-coordinator/raw/deploy%2Fpcm.sql?ref=master

执行sql脚本导入数据

mysql -u root -p pcm < pcm.sql mysql -u root -p pcm_auth < pcm_auth.sql

2 安装部署kubekey

pcm的部署一般通过kubernetes进行编排管理所以用户如果已经拥有可用的K8S集群可以跳过2和3步骤进行后续操作。 如果需要安装K8S可以使用kubekey来实现K8S集群的快速部署通过以下的命令可以下载 KubeKey 。

wget -O kk https://www.gitlink.org.cn/api/attachments/9e08c5d4-04bc-4f71-867a-ad3dd437cdb9
chmod 755 kk

3 安装部署k8s集群

执行创建集群的命令此过程根据用户网络情况可能需要5-10分钟如遇到下载失败的情况重新执行创建命令即可

KKZONE=cn ./kk create cluster

执行可能会提示部分软件未安装直接yum安装即可 eg: sudo yum install -y conntrack sudo yum install -y socat

然后重新执行创建集群命令执行成功后可以执行kubectl get pod 验证环境

4 下载PCM yaml文件

pcm所有服务的yaml文件包下载地址在这里 或者在服务器上直接执行

wget -O yaml.tar.gz https://gitlink.org.cn/attachments/entries/get_file?download_url=https://www.gitlink.org.cn/api/JointCloud/pcm-deploy/raw/yaml.tar.gz?ref=master

下载完成解压

tar -vxf yaml.tar.gz

5 安装部署prometheus

进入yaml文件夹中 cd yaml 执行以下命令来安装Prometheus相关组件

kubectl create -f prometheus/manifests/setup/
kubectl create -f prometheus/manifests
kubectl create -f prometheus/service-monitor.yaml

6 部署鉴权、pcm-coordinator、前端服务

6.2 yaml执行完成服务、负载、配置文件的部署

修改地址

需要修改配置文件中的数据库地址为mysql服务安装的地址注意这里根据实际情况选择ip如果使用localhost可能因为服务在容器中访问不到所以如果服务部署在本地则需要使用集群的内网地址如下图中所示使用命令kubectl get svc查看k8s集群的服务clusterip然后在ifconfig中找到相同网段的那个ip进行配置如果mysql是单独部署的则采用其服务地址即可。 需要修改的分别是一下几个位置: pcm-auth.yaml中107行 pcm-core-api中80行 pcm-core-rpc中78行

一次性部署所有的文件

修改mysql为对应服务的地址后执行一下命令来创建对应的服务

鉴权模块:

主要包含PCM的权限管理功能模块 kubectl apply -f pcm-auth.yaml

C端

core-api主要包含PCM的Coordinator端的元素管理、资源汇聚、任务调度等核心功能模块 kubectl apply -f pcm-core-api.yaml core-rpc主要包含PCM的Coordinator端与各Participant端进行通信的模块未来根据情况可能调整 kubectl apply -f pcm-core-rpc.yaml

前端:

前端页面的部署yaml kubectl apply -f pcm-rip.yaml

部署情况可以通过以下命令查看 kubectl get pod

6.3 服务的滚动更新

yaml文件中默认采用最新的镜像版本进行操作pcm团队会根据定期进行将最新的版本更新到公有镜像仓库如果用户需要更新pcm服务只需重新执行apply操作即可如只需要更新对应模块则指定其yaml文件即可。

6.3.1数据库刷新

重新执行1.3中的步骤,将数据库的最新数据重新导入

6.3.2应用删除和更新创建

kubectl delete -f . kubectl apply -f .

6.3.3 清除浏览器缓存

在用户的浏览器设置中删除网站的缓存信息

7 配置驱动器、集群信息

此时前端服务可以通过服务器ip的31149端口访问到 默认账号密码为admin/Nudt@123

7.1页面创建适配器

在登录后的首页点击访问驱动器管理 填入列表中的信息注意此处的地址应该对应P端服务的地址如在同一集群内部署则可以指定为service+port的形式如果部署在异地则需要用户拿到对应的地址填入 配置成功后可以在列表中查看到对应的adapterId

7.2页面配置集群信息

点击集群关联页签,点击绑定集群 选择刚刚创建的驱动器然后填入集群的相关信息具体信息内容可与开发者沟通或者参考pcm开发手册。填写完成后点击确定保存

7.3驱动器服务配置及启动

将7.1中获取到的适配器id填入到对应P端yaml文件中的adapterId字段并将CoreUrl字段修改为当前对应C端服务的地址(可通过kubectl get svc -n pcm获取) 然后执行kubectl apply -f pcm-hpc.yaml启动超算驱动器

8.任务创建

在首页访问任务管理 点击创建按钮,选择超算任务,选择刚刚创建的驱动器,填写任务信息 勾选集群 选择策略