更新时间:2022-08-12 11:26:34

一、安装前准备工作
1. 初始化AnyDATA认知智能框架工作目录

执行 mkdir /AnyDATA,创建ADF 2.0安装路径:

挂载一块数据盘(磁盘空间大于等于500GB,转速不能小于7200转)在/AnyDATA目录下。在步骤可在集群的所有机器上执行。磁盘具体挂载方法可参见FAQ中如何挂载磁盘。挂载完磁盘,查看路径的方法如下图。在AnyDATA软件中图数据库orientdb对磁盘io要求比较高,所以用户在部署阶段规划orientdb安装到哪台机器上,并在该节点上/AnyDATA/data/orientdb-<节点名字>目录挂载高性能磁盘。


2. 修改hostname
修改hostname便于未来对服务器的维护且在安装proton时,多节点要求所有节点名称不同,因此修改hostname是一个好习惯。
单节点部署需要修改主机名称,如何修改主机名称参见FAQ;
多节点部署,需要将所有机器的hostname修改成不一致,如何修改hostname参见FAQ;
修改完成之后,使用命令:
reboot重启服务器,具体可参见FAQ。
单节点,多节点判断需要在用户设计之初进行决定。用户决定安装的节点数目,如果没有特殊需求,推荐单节点部署。

3. 创建/var/lib/docker目录并单独挂盘
执行mkdir -p /var/lib/docker创建目录;
docker的数据默认存储在/var/lib/docker目录下,io请求多。默认与k8s的etcd使用同一块磁盘,ectd的io请求超时。为了解决io请求过多造成io超时的问题,将/var/lib/docker单独挂盘。具体硬盘挂载方法可查看FAQ手册。


二、安装 Proton-cs

注:以下操作无特殊提示均需在所有节点上执行 

1. 放置proton安装包

放置proton安装包到所需要安装的服务器的/root任意目录下,在此图当中放在了 /root/proton 目录下,使用命令 ls 查看安装包名字。我们记为 protonPackageName,当出现图中样式时,命令执行完成。

2. 解压 Proton 离线包

使用命令 tar zxvf protonPackageName 解压压缩包,注意此处 protonPackageName 为压缩包名称,参考步骤1出现图中样式时,命令执行完成。

3. 查看解压后包名称

使用命令 ls 查看解压后的安装包名称。我们记为 protonInstallPackageName,当出现图中样式时,命令执行完成。

4. 进入安装包目录

使用命令 cd protonInstallPackageName 进入安装目录,并使用命令 ls 查看安装包目录是否如下图所示。此处 protonInstallPackageName 代表解压缩后安装包命令。当出现图中样式时,命令执行完成。

5. 安装proton环境

执行下面的命令
systemctl start firewalld
systemctl enable firewalld
打开防火墙
使用命令 python install_proton_deps.py 安装proton环境。推荐手动敲入该命令,在出现图中样式时,命令执行完成。

6. 初始化k8s

(1)生成密钥
在需要部署的机器上生成密钥使用命令 ssh-keygen -t rsa ,该命令用来生成当前节点服务器的密钥。嵌入该命令之后,一直回车直至出现图中样式即可。
在出现图中样式时,命令执行完成。
(2)​​​​配置免密登录

配置所有节点彼此的免密钥登录,配置方法如下。输入命令 ssh-copy-id hostIP此处hostIP 表示除当前服务器外的其他服务器IP。如何查看服务器IP,参见FAQ。
在出现图中样式时,命令执行完成。


Tips:
  • 部分在云上部署AnyDATA服务无法拿到用户密码,在这种情况下,我们提供手动配置免密钥方式,详情参见 FAQ。

  • 在输入密码位置,输入当前服务器的密码,输入密码不做显示,注意密码的输入正确

(3)初始化proton
根据节点不同,选中一台机器,运行如下命令。命令当中的 NodeIP 分别代表不同节点的IP。此处需要根据不同机器信息发生改变。

A:单节点部署

kubesuite init \
     --kube-master=NodeIP \
     --identity-file=/root/.ssh/id_rsa \
     --bip=172.33.0.1/16 \
     --pod-network-cidr=192.169.0.0/16 \
     --service-cidr=10.96.0.0/12 \
     NodeIP

B:多节点部署

kubesuite init \
     --kube-master=NodeIP1 \
     --identity-file=/root/.ssh/id_rsa \
     --bip=172.33.0.1/16 \
     --pod-network-cidr=192.169.0.0/16 \
     --service-cidr=10.96.0.0/12 \
     NodeIP1   NodeIP2  NodeIP3
 

命令解释

  • kube-master    用来选中master节点,将需要作为master节点的IP写在此处

  • NodeIP1 ~ NodeIPN  代表要部署机器的IP
  • 其余为默认值,配置时不用修改
Tips:
  • 如果是在云上部署,此处的 NodeIP 代表内网IP,如果不小心使用错误,参考FAQ。先重设 proton,再使用内网IP重新部署
  • 所有节点均需要安装,如下操作若无体术提示,即需要在 master 节点上运行
 
7. 查看 kubectl 命令是否可用
使用命令 kubectl version,至此 proton-cs 环境即安装完成。
在出现图中样式时,命令执行完成。

8. 解压AnyDATA认知智能框架的安装部署包
将AD的安装部署包kg-k8s.tar.gz放到/AnyDATA文件下,执行 tar zxvf kg-k8s.tar.gz进行解压。
出现如下图显示内容时,解压已完成。

三、安装部署AnyDATA认知智能框架

注:若之前安装过AnyDATA服务,执行步骤四,升级即可;若想要重新安装AnyDATA服务,请先卸载AnyDATA服务,然后运行本章节即可。

1. 执行install.sh安装脚本

2. 安装基础服务

1. 安装NTP时钟同步服务

2. 安装镜像服务


3. 集群节点同步镜像

4.nfs server(需要用户提供,如果没有可以自行搭建)
(1)
安装并检查NFSRPS服务。
yum install nfs-utils rpcbind -y
rom -qa nfs-utils rpcbind

(2)启动RPC服务和NFS服务,必须先启动RPC服务,然后再启动NFS服务。
systemctl start rpcbind
systemctl start nfs
ps -ef|grep rpc
ps -ef|grep nfs
lsof -i:111
rpcinfo -p localhost

(3)设置开机自启动并检查。
systemctl enable rpcbind
systemctl enable nfs
systemctl list-unit-files --type=service|grep "enabled" egrep "rpebind|nfs"

(4)创建共享目录。
mkdir /AnyDATA/nebula-dataio-dirs
chown -R nfsnobody.nfsnobody /AnyDATA/nebula-dataio-dirs
ls -1d /AnyDATA/nebula-dataio-dirs

(5)配置共享/data目录
cat>>/etc/exports

(6)平滑重启NFS服务并检查服务

systemctl reload nfs
cat /var/lib/nfs/etab

(7)本地查看挂载目录

showmount -e 


3. 安装持久化服务
持久化安装提供两种安装方式:
(1)标准安装
(2)华为云安装
用户可以输入序号1、2选择安装方式。

1.标准安装
上图选择1进行标准持久化服务的安装,安装过程如下图,根据下图提示输入正确值,第一次安装不会出现下面删除数据的选项。
多节点部署需要设置dataio存储类型为nfs,并填入上一步骤提供的nfs server的ip地址。



2.华为云安装
华为云部署是持久化服务部署的一种方式,其中MySQL、Redis、MongoDB都是由华为云提供好的实例,无需自己部署。但用户需要本地部署Opensearch。

(1)在华为云申请RDS、DCS和DDS服务并创建好实例,其中RDS支持单机和主备、DDS支持副本集,DCS支持主备模式;
(2)选择2,进行华为云信息配置。



4. 安装AnyDATA认知智能框架

1.按照提示填入AnyDATA服务的http和https端口号

2.填入安装图数据库的节点名字
示例装在proton1上面,故文件夹叫做AnyDATA/data/orientdb- proton1并且在安装orientdb的时候指定该节点作为orientdb安装节点。


如图所示使用图上给的ip:port访问会进入登录页面,ADF 2.0软件部署结束。

5. 配置https证书,合法访问AnyDATA页面
1.准备好待换的证书文件,证书文件和秘钥文件分别命名为_.aishu.cn.cer和_.aishu.cn .key,上传到主节点的某目录如/root。


2.删除kg-gateway-certs,然后使用准备好的证书和私钥创建新的kg-gateway-certs,依次执行的命令如下:


kubectl delete secret kg-gateway-certs  -n anydata
kubectl create secret generic kg-gateway-certs  --from-file={证书目录}/_.aishu.cn.cer --from-file={私钥目录}/_.aishu.cn.key  -n anydata
 
    如果证书和私钥文件没有更名为_.aishu.cn.cer和_.aishu.cn.key,例如为aishu.cer和aishu.key。则2命令需要改成如下:

kubectl create secret generic kg-gateway-certs  --from-file=_.aishu.cn.cer={证书目录}/aishu.cer --from-file=_.aishu.cn.key={私钥目录}/aishu.key  -n anydata 
 
3.重启kg-gateway,执行命令如下:

kubectl scale --replicas=0 deploy/kg-gateway -n anydata 
kubectl scale --replicas={kg-gateway原副本数} deploy/kg-gateway -n anydata
 
4.在重启前可通过如下命令获取kg-gateway原副本数:


READY显示的是当前准备好的副本和要求总副本数。

四、AnyDATA升级操作

注:在运行升级操作之前,你的机器一定是安装过AnyDATA服务的,才能使用本章节的命令安装。

1.拉取安装包
注:如果你想要将安装包拉取到AnyDATA安装目录,即/AnyDATA目录下,请确保拉取之前使用rm命令删除旧安装包。

使用命令 wget {packageName}拉取对应安装包到/root/目录下,或传输所提供安装包到/root目录下,此处packageName为包名称。


2.解压安装包
注:解压命令需解压到/AnyDATA目录下,若此目录存在,且不为空,需要使用命令删除文件

使用命令:rm -rf ad/basic-services/dbs/obs/install.sh unistall.sh
使用命令 tar zxvf {packageName}解压安装包到/AnyDATA/安装目录。


最后解压目录如下

3.升级
若为第一次安装AnyDATA服务,即不需要升级。详细参考步骤三。
解压命令需解压到 /AnyDATA 目录下,若此目录存在且不为空,需要使用命令删除如下文件。
命令:
rm -rf ad/ basic-services/ dbs/ install.sh uninstall.sh
升级脚本所在目录,如下图所示。

在{path}/ad安装目录下,使用命令./upgrade.sh运行升级脚本即可。这里面{path}为上图脚本所在目录。
下图为升级脚本使用后的表现样例。


参数说明:
是否与AnyShare融合部署:Y是与AnyShare的模块化部署。N不是与AnyShare的模块化部署;
需要备份的数据库名称:输入数据库名即可;
请输入数据库用户名:需要备份使用的用户名;
请输入数据库密码:需要备份使用的用户名密码

4. 日志
部署日志存放在/AnyDATA/log目录下。详细路径地址为:


若有升级失败,需参考次日志处理解决办法。
常见问题处理办法参考FAQ。