今天我们将探讨关于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. DRF-Throttle组件源码分析及改编源码

    1. 限流组件源码分析 注意:以下源码为方便理解已进行简化,只保留了与限流组件相关的代码.注释前的数字代表执行顺序. SimpleRateThrottle类的源码解析: 2. 实践:编写一个限流类 f ...

  2. Linux再学!

    第三篇Linux入门 一.linux基本指令 1.Linux根目录为/,后续路径用/分隔,如/home/admin 2.Linux命令 基础格式: command: 命令本身 -options:[可选 ...

  3. linux开启快捷键,牛逼的狠~

    vim env_show #!/bin/bash echo '-----------A------------- XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ...

  4. GIt分布式管理工具

    Git(分布式版本控制工具) Git的学习是不依赖我们前面学习的知识,就算没有学习java也可以学习 Git就是一个类似于百度云盘的仓库 重点是要掌握使用idea操作Git,企业用的最多,一般不会去使 ...

  5. 成本立降50%!在EKS上借助Karpenter部署大模型

    原文链接: https://aws.amazon.com/cn/blogs/containers/scaling-a-large-language-model-with-nvidia-nim-on-a ...

  6. Linux禁止某个sudo用户修改root密码

    (1) 假设被禁止的sudo用户名为 user (2) 禁止user用户使用passwd命令更改密码(非最终配置) vim /etc/sudoers 加入 user ALL=(root)!/usr/b ...

  7. H5 新增表单

    1.提示占位 placeholder <input type="text" name="userName" placeholder="请输入用户 ...

  8. .NET Core 堆结构(Heap)底层原理浅谈

    .Net托管堆布局 加载堆 主要是供CLR内部使用,作为承载程序的元数据. HighFrequencyHeap 存放CLR高频使用的内部数据,比如MethodTable,MethodDesc. 通过i ...

  9. Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE)

    Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE) Opening the doors and windows 0-click RCE on the Tesla Mod ...

  10. Kettle用查出来的数据自动创建表

    ​Kettle在表输入的时候,写好很复杂的SQL,有种场景,就是想把这个很复杂的查出来的数据,自动创建一个表. 其实,操作步骤不复杂. 跟着我来做就是了. 1,新建表输出,Shift按住,从表输入拖动 ...