Klustron 集群安装指南
Klustron 集群安装指南
本文采用集群管理系统安装脚本来安装集群管理系统
注意:如无特别说明,文中的版本号可以使用任何已发布版本的版本号代替。所有已发布版本详见:Release Notes
一、Klustron 环境信息
 注:本安装手册实践中所使用的 Linux 版本为 CentOS 7.9 64bit
 注:本安装手册实践中所使用的 Linux 版本为 CentOS 7.9 64bit
二、安装前准备工作
2.1 [kunlun1,kunlun2,kunlun3] 清理系统安装自带的 MariaDB。
此步骤为可选的预防步骤,建议直接跳过,发生第三方库版本冲突时再重新执行即可。之所以要清理MariaDB是为了避免在某些版本的Linux发行版中,在很小的概率下,Klustron 使用的部分 第三方库 与MariaDB 使用的第三方库发生版本冲突,之前有Klustron用户报告过这样的冲突。类似的,也可能有其他软件与Klustron发生类似的组件版本冲突,万一发生时就需要清除那个软件。
如果用户服务器上面的MariaDB 不能清理,那么可以先跳过此步骤,因为真正发生版本冲突的几率极低。
使用 root 用户运行下面的命令:
yum remove postfix
rpm -e mariadb-libs
2.2 [kunlun1,kunlun2,kunlun3] 关闭每台服务器的防火墙。
这是因为Klustron数据库的安装工具需要在copy Klustron的程序文件到多台服务器,以及ssh连接到各个服务器执行操作系统命令。当Klustron集群安装完毕后,可以重新启用防火墙,并且务必开放Klustron组件监听的端口,这些端口由Klustron安装程序在用户指定的端口范围内自动分配。用户可以在集群启动运行后,检查所使用的端口,从而在防火墙中允许Klustron的组件监听这些端口。
在 root 用户下执行命令:
systemctl stop firewalld
systemctl disable firewalld
2.3 [kunlun1,kunlun2,kunlun3] 创建 kunlun 组和 kunlun 用户。
强烈建议系统管理员在部署Klustron集群的各个服务器上面创建专用的操作系统用户用于启动和运行Klustron 各个组件,而不是使用现有的操作系统用户。并且Klustron的各组件的数据目录的所有者也将是这个用户。这样才符合Klustron的数据安全的基本条件。
为了描述方便,本文标记系统管理员在各个部署Klustron数据库集群的服务器上面专门创建的用户名为kunlun。为了确保数据安全,系统管理员应该禁止其他普通读写访问 kunlun用户的数据目录。
使用 root 执行命令创建Klustron的操作系统用户kunlun并设置用户密码:
useradd --create-home --shell /bin/bash kunlun
passwd kunlun
2.4 [kunlun1,kunlun2,kunlun3] 创建软件安装目录 /kunlun, 并将目录的属组设置为 kunlun:kunlun。
使用 root 执行下面的命令:
mkdir /kunlun
chown -R kunlun:kunlun /kunlun
2.5 [kunlun1,kunlun2,kunlun3] 修改操作系统参数。
当Klustron数据库系统负载较高或者存储的数据量较大时,通常需要打开大量的文件,因此需要下述设置。
使用 root 执行下面的命令。
vi /etc/security/limits.conf
#加入下面的行:
* soft nofile 65536
* hard nofile 200000	
2.6 [kunlun1,kunlun2,kunlun3] 使 kunlun 用户可以使用 sudo 免密执行 root 命令。
仅在要安装Klustron集群的所有服务器上面安装Klustron集群期间临时需要此权限,因为Klustron安装工具需要在安装Klustron集群期间,copy Klustron组件的文件到这些服务器上面,以及ssh连接到各个服务器执行如下段所述的一些命令。当Klustron集群安装完成后,可以在所有这些服务器上撤销kunlun用户的此权限。
下文引用到了3.1节的Klustron集群部署配置文件模板JSON文件中的部分片段,所以建议读者先扫一眼3.1 节的JSON 文件,再从此处继续阅读。
当前安装工具会自动在每台工作机器上创建工作目录(即machines配置里面的basedir), 以及修改目录Owner等操作, 当传递了--sudo给安装工具(setup_cluster_manager.py), 它就会以sudo的方式执行这些特权命令,以避免安装过程因为指定的kunlun 用户权限不足而失败。 如果在部署Klustron集群的各个服务器上面,设置的工作目录(basedir), 都是kunlun用户(即machines配置里面指定的user)具有权限去创建和管理的,那么这个kunlun用户可以不需要设置免密sudo。
另外,安装 XPanel 的服务器上面需要运行docker, 所以需要在这台机器上给kunlun 用户添加免密运行docker的sudo权限,而不需要完整的免密sudo权限。并且此权限需要始终保留,安装完成后不能撤销。
使用 root 执行下面的命令。
vi /etc/sudoers
#在最后加上下面的内容:
Kunlun ALL=(ALL) NOPASSWD: ALL
2.7 [kunlun1,kunlun2,kunlun3] 配置 kunlun1 的用户 kunlun 到kunlun2,kunlun3 用户 kunlun 的 ssh 免密鉴权。
由于与2.6节相同的原因,需要此节所属步骤。并且,管控服务器(即运行安装工具的服务器,在本例中为 kunlun1)上的kunlun用户的公钥文件,需要始终存在于Klustron集群所使用的服务器,这样才可以执行集群整体或者其中部分组件的启停等操作。
以kunlun用户登录服务器kunlun1执行下面的命令:
ssh-keygen -t rsa
运行该命令后,在所有需要输入的地方直接回车就可以了。成功后会在kunlun用户的home目录下的.ssh目录中生成 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa 是存放私钥的文件,而 id_rsa.pub 则为存放公钥的文件。
将 kunlun1 服务器的kunlun用户的公钥复制到 kunlun1, kunlun2 和 kunlun3 服务器上
ssh-copy-id -i  .ssh/id_rsa.pub kunlun@192.168.40.151
ssh-copy-id -i  .ssh/id_rsa.pub kunlun@192.168.40.152
ssh-copy-id -i  .ssh/id_rsa.pub kunlun@192.168.40.153
在 kunlun1 上执行命令验证 kunlun 用户到 kunlun1,kunlun2 和 kunlun3 的免密登陆
ssh 192.168.40.151 date
ssh 192.168.40.152 date
ssh 192.168.40.153 date
2.8 [kunlun1,kunlun2,kunlun3] 安装 python2,git 和 wget 等工具。
使用root执行下面的命令:
yum -y install python git wget yum-utils 
2.9 [kunlun1] 由于计划在 kunlun1 上部署 xpanel,需要提前安装和部署docker。
使用 root 执行下面的命令:
清除系统自带的 docker 相关的 rpm
yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
切换阿里镜像
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 docker 社区版
yum -y install docker-ce docker-ce-cli containerd.io
启动 docker,并设置其随操作系统自启动
systemctl start docker
systemctl enable docker
2.10 [kunlun1] 创建目录/softwares并赋予相应的权限,之后用来存放 Klustron 相关的安装介质。
使用 root 执行下面的命令:
mkdir /softwares
2.11 [kunlun1] 使用 git 拉取最新的代码,将其存放在/softwares目录下。
使用 root 用户执行(这里假设安装的是最新的1.3.2,其他的参见以前版本的安装文档):
cd /softwares
git clone -b v1.3.2 https://gitee.com/zettadb/cloudnative.git
2.12 [kunlun1] 下载安装需要的软件包。
使用 root 执行下面的命令:
cd /softwares/cloudnative/cluster
python setup_cluster_manager.py --action=download --downloadsite=devsite --downloadtype=release
三、Klustron 安装
3.1 [kunlun1] 使用 kunlun 用户修改文件 /softwares/cloudnative/cluster/cluster_and_node_mgr.json ,加入相关的配置信息
{
    "machines":[
        {
            "ip":"192.168.40.151",
            "basedir":"/kunlun",
            "user":"kunlun"
        },
        {
            "ip":"192.168.40.152",
        	"basedir":"/kunlun",
            "user":"kunlun"
        },
        {
            "ip":"192.168.40.153",
            "basedir":"/kunlun",
            "user":"kunlun"
        }
    ],
    "meta":{
    	"ha_mode": "rbr",
        "nodes":[
         {
         "ip":"192.168.40.151"
                },
                {
         "ip":"192.168.40.152"
                },
                {
         "ip":"192.168.40.153"
                }
        ]
    },
    "cluster_manager": {
           "nodes": [
        {
         "ip": "192.168.40.151"
        },
        {
         "ip": "192.168.40.152"
        },
        {
         "ip": "192.168.40.153"
        }
        ]    
    },
    "node_manager": {
           "nodes": [
        {
         "ip": "192.168.40.151"
        },
        {
         "ip": "192.168.40.152"
        },
        { 
         "ip": "192.168.40.153"
        }
        ]    
    },
    "xpanel": {
    "ip": "192.168.40.151",
    "image": "registry.cn-hangzhou.aliyuncs.com/kunlundb/kunlun-xpanel:VERSION"
    }
}
3.2 [kunlun1] 生成安装脚本。
使用 kunlun 用户执行下面的命令
cd /softwares/cloudnative/cluster
python setup_cluster_manager.py --autostart --config=cluster_and_node_mgr.json --action=install 
3.3 [kunlun1] 运行安装脚本。
使用 kunlun 用户执行下面的命令
bash -e /softwares/cloudnative/cluster/clustermgr/install.sh
如果脚本运行出现错误,则参考3.4对安装的中间结果进行清理,待修复了问题之后重新执行安装脚本。
3.3 [kunlun1] 生成启动数据库脚本。 使用 kunlun 用户执行下面的命令
cd /softwares/cloudnative/cluster
python setup_cluster_manager.py --autostart --config=cluster_and_node_mgr.json --action=start
bash -e /softwares/cloudnative/cluster/clustermgr/start.sh
3.4 [kunlun1] 生成关闭数据库脚本。 使用 kunlun 用户执行下面的命令
cd /softwares/cloudnative/cluster
python setup_cluster_manager.py --autostart --config=cluster_and_node_mgr.json --action=stop
bash -e /softwares/cloudnative/cluster/clustermgr/stop.sh
**3.5 **[kunlun1] 如果步骤3.3运行安装脚本失败,则可以通过下面的命令生成清理脚本,并运行清理步骤。
使用 kunlun 用户执行下面的命令
cd /softwares/cloudnative/cluster
python setup_cluster_manager.py --autostart --config=cluster_and_node_mgr.json --action=clean
bash /softwares/cloudnative/cluster/clustermgr/clean.sh
3.6 登陆 XPanel 控制台。在能访问192.168.40.151的机器上打开浏览器,输入地址:http://192.168.40.151:18080/KunlunXPanel/#/login?redirect=%2Fdashboard
初次登录用户名和密码是:super_dba/super_dba ,初次登陆需要修改 super_dba 密码。
登录后,首页显示如下: _
3.7 点击左边控制栏“计算机管理”“计算机列表”,显示下面的界面。
检查所有的机器处于在线状态 
3.8 增加集群。
点击“集群管理”,“集群列表”,再点击“新增”按钮 _
添加集群参数如下图: _ 点击“确认”,查看创建集群任务的完成情况。
 点击“确认”,查看创建集群任务的完成情况。

 完成集群安装后,就可以使用数据库了。
 完成集群安装后,就可以使用数据库了。
