34 PCM部署操作步骤
zhouqunjie edited this page 1 year ago

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.任务创建

在首页访问任务管理

点击创建按钮,选择超算任务,选择刚刚创建的驱动器,填写任务信息

勾选集群

选择策略