今天我们将探讨关于KES(KingBaseES)的集群部署方案。作为示例,我们将以读写分离(RWC)集群为例,快速在本地进行部署和安装,并深入了解KES的部署流程。在本章中,我们将采用Windows平台上的可视化部署工具来进行集群的安装和配置。然而,由于硬件资源有限,本次演示仅展示单节点的成功部署,其他节点的部署过程与此相同,重复操作将在此省略。对于有兴趣了解更多部署细节的朋友,可以参考官方文档,获取更详细的安装和配置步骤,官方文档地址如下:官方文档链接

好了,接下来我们开始部署流程的详细演示。

环境准备

由于本次演示主要集中在本地环境,因此我选择在本地安装了Docker Desktop,并通过其来运行CentOS镜像,以便快速准备所需的虚拟机环境。当然,如果你手头有真实的物理机器或虚拟化平台,完全可以直接在这些设备上进行部署,而无需依赖Docker来模拟环境。首先,我们通过Docker Hub获取并拉取所需的CentOS镜像,操作步骤如下所示:

直接拉取官方的centos即可。但是会缺少很多必要的依赖。我们直接启动一下,但是需要暴露出来相应的端口。

docker run -itd -p 20601:22 -p 8890:8890 -p 54321:54321 -v /home/jason:/home/centos --name centos8 --privileged centos /usr/sbin/init

系统环境依赖

这个centos机器基本上什么都没有,所以我们需要安装一些必要依赖,命令如下:

#repos 目录
cd /etc/yum.repos.d/ #修改centos 设置url地址
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* #手动缓存 不执行也可以
yum makecache #更新Yum
yum update -y
#到这里 yum 命令可以正常执行了

执行如图所示:

> #安装 net-tools
> yum install net-tools.x86_64 -y
>
> # 检查有无安装ssh
> yum list installed | grep openssh-server
> #安装 密码和ssh服务
> yum install passwd openssl openssh-server -y
>
> # 使用vim 查看 /etc/ssh/sshd_config 文件
> # PermitRootLogin 需要打卡
> # 监听端口:22端口 和启动的端口对应
> # 开启用户名密码验证关键字:PasswordAuthentication
> # 以上配置一般是默认的,最好查看一下
>
> # 启动 sshd
> systemctl start sshd
> # 配置开机启动
> systemctl enable sshd
>
> # 配置密码 需要确认两次 且密码不可见
> passwd root
> # 到此 docker下安装centos就完成了,且配置了ssh访问

接下来,我们看下金仓对系统的要求。

金仓环境配置

具体操作可以查看官方文档:https://bbs.kingbase.com.cn/kingbase-doc/v9/install-updata/k-deploy/k-deploy-3.html

我把自己使用到的命令基本都已经附加上去了。如图所示:

这里注意下,我们的centos8机器使用命令查看时,是为:service crond status和官方文档有所不同。

集群机器

所以基础问题都已经解决完毕,我们现在需要把已经弄好的容器打包成基础镜像为了部署集群使用,否则,需要每个镜像都要单独配置,很费劲。如图所示:

用到的命令如下:

docker ps

docker commit id name

这样你就可以正常使用这个镜像了,以后直接复制即可。

部署工具

我使用的是windows的可视化工具,具体目录如图所示:

直接双击即可。页面如图所示:

创建集群

所有准备工作准备完毕后,我们开始创建集群,首先选择我们的db压缩包,他会自动上传解压。

开启开发者模式

因为有些界面是需要开发者模式才可以进行查看,所以我们打开一下,输入密码“rdjc12#$”,选择“正常”开启开发者模式。在开发者模式下点击“开发者模式”会提示到您已经在此模式下,如下图所示:

新增节点

我们开始添加第一个节点,这里注意下,使用该工具部署集群时,所有机器都不能有KES服务,必须是一台干净的机器。如果你以前已经有了KES机器在运行,那么请重新申请一台机器。以后切换成集群后,自己迁移数据即可。

这里上传文件后,我这里报错了,显示的是上传失败,起初我以为是文件夹没有创建,但是后来我看了一下,是有这个文件夹的。如图所示:

这个我自己是因为本地没有安装zip依赖导致的,无法解压,所以安装后即可正常。

yum install zip -y

在下一步之后,默认路径需要先创建目录,否则会报错。如图所示:

mkdir -p /home/kingbase/cluster/my_cluster/xiaoyu

接下来还有一个坑就是自己挖的,这里在创建主节点时一直失败。但是信息很有限,如图所示:

找到命令后,我自己开始切换到kingbase用户登录Linux机器,并执行了相关命令。我发现了这些问题,如图所示:

发现,我在使用如下命令是可以进去的:/home/kingbase/cluster/my_cluster/xiaoyu/kingbase/bin/ksql -Uesrep -d esrep

但是一旦加上-h IP地址就失败了:

但是在集群部署的时候,这个命令是脚本自己加上去的,我改不了还。

自己后来一顿排查所有可能发生的问题原因。发现是自己的坑。这里解释一下:

出现这个错误的原因比较特殊,通常情况下,按照我们平时的流程,是不可能发生这种情况的。因为我本地的 Windows 系统已经安装了KES,并且配置的端口号是 54321。在正常情况下,当我在 Docker 中启动 Linux 容器时,我同样暴露了相同的端口号 54321。由于端口冲突,部署工具在尝试连接到 Docker 容器的数据库时,错误地连接到了本地 Windows 系统上的数据库。由于 Windows 上的数据库并没有启用免密登录配置,所以导致了连接失败的情况。

当我手动关闭了 Windows 上的 KES 服务后,部署工具可以顺利连接到 Docker 容器中的数据库,并且部署过程得以正常完成。可以参考下图中所示的配置和环境状态:

终于部署成功了,剩下的就是以此类推新增节点部署即可。

总结

在本章中,我们详细探讨了KES(KingBaseES)集群部署的整个流程,以读写分离(RWC)集群为例,通过本地环境的Docker部署和Windows平台的可视化工具进行配置与安装。虽然本次演示仅限于单节点部署,但整个过程为您提供了清晰的操作步骤和必要的系统配置。我们也深入分析了在集群部署过程中可能遇到的一些常见问题及解决方案,例如端口冲突问题,确保了部署能够顺利进行。

虽然演示的环境受限于硬件资源,但实际部署时,用户可以根据需要扩展节点,搭建更为复杂的集群结构。通过官方文档和详细的步骤说明,大家可以更好地理解和实施KES集群的部署。希望通过本章内容,能帮助读者更顺利地搭建和管理自己的KingBaseES数据库集群,为日后的高效数据管理和运维奠定基础。


我是努力的小雨,一个正经的 Java 东北服务端开发,整天琢磨着 AI 技术这块儿的奥秘。特爱跟人交流技术,喜欢把自己的心得和大家分享。还当上了腾讯云创作之星,阿里云专家博主,华为云云享专家,掘金优秀作者。各种征文、开源比赛的牌子也拿了。

想把我在技术路上走过的弯路和经验全都分享出来,给你们的学习和成长带来点启发,帮一把。

欢迎关注努力的小雨,咱一块儿进步!

KES(KingBaseES)集群部署实战的更多相关文章

  1. (十)RabbitMQ消息队列-高可用集群部署实战

    原文:(十)RabbitMQ消息队列-高可用集群部署实战 前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. Ra ...

  2. KingbaseES集群部署工具安装

    关键字: KingbaseES.Java.ClientTools 一.安装前准备 1.1 软件环境要求 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7.Windows XP ...

  3. RabbitMQ消息队列(十)-高可用集群部署实战

    前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. RabbitMQ集群基本概念 Rabbit模式大概分为以下三种 ...

  4. Elasticsearch单机双节点集群部署实战

    一.安装第一个ElasticSearch(主节点) 1.创建es用户,启动es不能使用root用户 useradd es passwd es12 root用户进入/home/es目录下 2.获取Ela ...

  5. 5000+字硬核干货!Redis 分布式集群部署实战

    原理: Redis集群采用一致性哈希槽的方式将集群中每个主节点都分配一定的哈希槽,对写入的数据进行哈希后分配到某个主节点进行存储. 集群使用公式(CRC16 key)& 16384计算键key ...

  6. Docker | redis集群部署实战

    前面已经简单熟悉过redis的下载安装使用,今天接着部署redis集群(cluster),简单体会一下redis集群的高可用特性. 环境准备 Redis是C语言开发,安装Redis需要先将Redis的 ...

  7. KingbaseES V8R6C5集群部署启动securecmdd服务配置案例

    案例说明: 对于KingbaseES V8R6C5版本在部集群时,需要建立kingbase.root用户在节点间的ssh互信,如果在生产环境禁用root用户ssh登录,则通过ssh部署会失败:在图形化 ...

  8. zookeeper学习与实战(二)集群部署

    上一篇介绍了单机版zookeeper安装,这种情况一般用于开发测试.如果是生产环境建议用分布式集群部署,防止单点故障,增加zookeeper服务的高可用. [环境介绍]       三台机器:192. ...

  9. MyCat集群部署(HAProxy + MyCat)

    本文档内容的依赖龙果学院<基于Dubbo的分布式系统架构实战>课程 二.软件版本 操作系统:CentOS-6.6-x86_64 JDK版本:jdk1.7.0_72 HAProxy版本:ha ...

  10. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

随机推荐

  1. 一文彻底熟练掌握并使用Java的NIO操作

    一.基本概念 Java NIO 是 Java 1.4 引入的,用于处理高速.高并发的 I/O 操作.与传统的阻塞 I/O 不同,NIO 支持非阻塞 I/O 和选择器,可以更高效地管理多个通道. 二.核 ...

  2. RAC:无训练持续扩展,基于检索的目标检测器 | ECCV'24

    来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: Online Learning via Memory: Retrieval-Augmented Detector Adaptation 论文地 ...

  3. 2023NOIP A层联测10 T4 子序列

    2023NOIP A层联测10 T4 子序列 题面及数据范围 Ps:链接来自accoderOJ. 考场2小时才做完 T1,抱着试一试的心态看了 T4,然后想到做法了,调了 1 个多小时没调除了,赛后发 ...

  4. 使用sqlparse解析table_name,支持子查询, left join等

    import sqlparse from sqlparse.sql import IdentifierList, Identifier from sqlparse.tokens import Keyw ...

  5. 使用 LLVM 框架创建有效的编译器,第 2 部分

    使用 clang 预处理 C/C++ 代码 无论您使用哪一种编程语言,LLVM 编译器基础架构都会提供一种强大的方法来优化您的应用程序.在这个两部分系列的第二篇文章中,了解在 LLVM 中测试代码,使 ...

  6. ArrayList源码分析(基于JDK1.6)

    不积跬步,无以至千里:不积小流,无以成江海.从基础做起,一点点积累,加油! <Java集合类>中讲述了ArrayList的基础使用,本文将深入剖析ArrayList的内部结构及实现原理,以 ...

  7. golang之errors包

    errors包常用方法 func Unwrap(err error) error // 获得err包含下一层错误 func Is(err, target error) bool // 判断err是否包 ...

  8. Blazor 组件库 BootstrapBlazor 中AutoComplete组件介绍

    AutoComplete组件介绍 AutoComplete组件和文本框基本上样子是一样的,只不过AutoComplete组件还带有一个下拉列表,可以从中选择对应的内容. 其同样继承自Bootstrap ...

  9. 理解Flink之二Window与Watermark

    Flnk作为流式计算平台,他能对源源不断发送过来的数据进行处理. 对于数据流的处理方式,可以是来一条处理一条(pipeline的方式),还可以获取一些数据然后统一处理. 对于数据流如何描述一堆数据呢? ...

  10. WPF下,控件未响应鼠标属性触发器

    WPF下,控件未响应鼠标属性触发器 记一次自定义控件调试 问题现象 问题分析 解决方式 记一次自定义控件调试 使用WPF写了个自定义控件,其中有个Button按钮,重写了样式模板 <Button ...