部署高可用版 NineData 服务
本文档介绍 NineData 5.0.0 的高可用部署方式。历史版本的部署步骤请在页面顶部的版本下拉菜单中切换到“历史版本”查看。
高可用集群至少需要 3 个 Master 节点。请先完成第一个 Master 和其余 Master 节点的安装,再执行集群初始化。
步骤一:安装第一个 Master
在第一个 Master 节点进入包含 install.sh 的安装包目录,执行:
./install.sh --data-dir=<数据目录> --etcd-data-dir=<etcd目录> \
--params='-e NIUP=Disable -e NODE_NAME=<节点名称>' --commands='--cluster-init'
参数说明:
--data-dir:NineData 集群数据目录。--etcd-data-dir:ETCD 数据目录。可将其放在独立磁盘上,以减少磁盘 IO 对 ETCD 稳定性的影响。NIUP=Disable:安装节点时不执行初始化;待 Master 节点全部安装完成后再初始化。NODE_NAME:节点名称,在同一集群中不能重复;未指定时由安装程序生成随机名称。--commands='--cluster-init':初始化 ETCD。
步骤二:添加 Master 节点
在已安装的 Master 节点获取集群 Token:
docker exec -it ninedata cat /u01/k3s/server/token在每个待添加的 Master 节点进入包含
install.sh的安装包目录,执行以下命令:./install.sh --data-dir=<数据目录> --etcd-data-dir=<etcd目录> \
--params='-e NIUP=Disable -e NODE_NAME=<节点名称> -e ROLE=Server -e SERVER_HOST=https://<Master节点IP>:6443 -e TOKEN=<认证Token>'SERVER_HOST使用第一个 Master 节点的地址,TOKEN使用上一步获取的集群 Token。每个节点的NODE_NAME必须唯一。ETCD 数据目录建议使用独立磁盘。
步骤三:添加 Agent 节点
在待添加的 Agent 节点进入包含 install.sh 的安装包目录,执行:
./install.sh --data-dir=<数据目录> \
--params='-e NODE_NAME=<节点名称> -e ROLE=Agent -e SERVER_HOST=https://<Master节点IP>:6443 -e TOKEN=<认证Token>'
其中 SERVER_HOST 使用第一个 Master 节点的地址,TOKEN 使用集群 Token,NODE_NAME 在集群中必须唯一。
步骤四:初始化高可用集群
在 Master 节点进入 NiUP 命令行,启用高可用组件:
docker exec -it ninedata niup
niup> config put minioCluster true
niup> config put metadbCluster true
niup> config put kafkaCluster true
确认所有 Master 节点安装完成后,在 Master 节点执行初始化:
docker exec -it ninedata niup
niup> install start
可使用以下命令查看初始化任务状态和进度:
niup> install status
niup> install log
确认集群初始化完成后,再进行服务验证或扩容。
步骤五:扩展核心服务
集群初始化完成后,可在 Master 节点执行以下命令,将核心服务扩展为 3 个副本:
docker exec -it ninedata kubectl scale deploy jzcloud-console --replicas=3
docker exec -it ninedata kubectl scale deploy jzcloud-console-frontend --replicas=3
docker exec -it ninedata kubectl scale deploy coredns -n kube-system --replicas=3
执行后请检查 Deployment 和 Pod 状态,确认副本已达到目标值。