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;
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启动超算驱动器