直播间介绍
本期要给大家演示MatrixOne数据库的快速部署。本次演示的内容分为三部分,第一部分为MatrixOne数据库的二进制包单机部署,第二部分为Matrixone数据库的mo_ctl工具部署,第三部分为Matrixone数据库的k8s集群部署。当然Matrixone数据库的部署方式除了以上这三种外,还有其他的方式,比如源码编译的部署方式,大家感兴趣的话,下去之后可以查询相关文档去研究部署。
1. 二进制包单机部署 点击查看详情 #1 环境硬件配置要求 那么我们开始演示第一部分内容:二进制包单机部署。在演示之前,我们要确保我们的环境硬件配置达到要求。如图所示,我们此次演示的环境只要达到开发和测试环境的配置要求即可,我们查看当前演示环境的硬件配置,为32核、31G内存、硬盘230G+,显然达到要求,那么我们就可以开始用Matrixone的二进制包进行单机部署。 #2 开始安装 那么我们开始演示第一部分内容:二进制包单机部署。在演示之前,我们要确保我们的环境硬件配置达到要求。如图所示,我们此次演示的环境只要达到开发和测试环境的配置要求即可,我们查看当前演示环境的硬件配置,为32核、31G内存、硬盘230G+,显然达到要求,那么我们就可以开始用Matrixone的二进制包进行单机部署。 ▶ 2.1 下载安装包 首先下载Matrixone二进制包,这里提供了三种下载方式,分别为wget命令下载、curl(客噢)命令下载、Matrixone官网页面下载;wget命令下载的话,需要系统装有wget命令行工具,curl命令下载的话,需要系统装有curl命令行工具,没有的话,需要自行安装。 这里,我们已经提前下载好Matrixone 1.0.0-rc1版本的安装包。 ▶ 2.2 解压、启动 接着我们开始解压,解压完成之后我们就可以开始启动Matrixone,启动前,我们可以对配置进行自定义修改,配置文件就在解压后的etc目录里,那我们此次演示就不再修改配置,直接用默认的配置进行启动。我们执行启动命令,启动正常,然后netstat命令查看6001端口,端口存在,ok,那们就可以连接Matrixone数据库了。 ▶ 2.3 连接 Matrixone 因为Matrixone是兼容msyql的,所以我们就可以利用Mysql客户端连接Matrixone数据库,连接端口为6001,连接用户默认root,默认密码111,建议MySQL 客户端版本为 8.0.30及以上版本,当然其他版本也能连接,但不推荐。成功连接Matrixone之后,我们就可以体验Matrixone数据库的强大功能,至此,Matrixone二进制包单机部署就此结束。 2. mo_ctl 工具部署 点击查看详情 #1 环境硬件配置要求 接下来,我们开始演示利用mo_ctl工具部署Matrixone数据库,mo_ctl工具部署Matrixone也是单机部署,所以它对环境的硬件配置要求跟二进制包单机部署的要求一样,除此之外,mo_ctl工具部署还依赖 MySQL Client,建议安装8.0及以上版本。我们已提前安装好MySQL clinet,那么我们就可以开始安装Matrixone了。 #2 利用mo_ctl开始安装 ▶ 2.1 下载、解压安装 首先得下载、解压Matrixone二进制包,跟二进制包单机部署一样,也是三种下载方式,我们不再赘述,此次我们也已提前下载好安装包,直接解压。 ▶ 2.2 安装mo_ctl工具 然后开始安装mo_ctl工具,mo_ctl 是一个部署安装和管理 MatrixOne 的命令行工具,使用它可以非常方便的对 MatrixOne 进行各类操作,比如:启动、停止、连接Matrixone, 我们通过wget命令一键安装mo_ctl 工具,也可以换用备用安装地址。已成功安装,那接着我们就可以用它启动Matrixone了。 ▶ 2.3 用mo_ctl启动、连接Matrixone 启动Matrixone之前,我们需要配置mo_ctl参数,通过下面这个命令将 MatrixOne 的二进制包解压目录设置到 mo_ctl 的 MO_PATH 参数上。我们刚才解压Matrixone到root目录下,所以,这里我们直接执行这个命令。然后参数配完之后,我们通过执行启动命令:mo_ctl start,来一键启动 MatrixOne 服务。(安装失败的话:启动失败了,这个版本的mo_ctl 工具还有bug,我们处理下继续启动,具体处理方式在后面QA环节里有记录)启动成功,那我们可以开始连接Matrixone。 我们通过‘mo_ctl connect’命令来一键连接 MatrixOne 服务,这条命令将调用 MySQL Client 工具自动连接到 MatrixOne,所以需要提前安装MySQL Client工具。 成功连接Matrixone之后,我们就可以开始使用Matrixone,至此,mo_ctl工具部署Matrixone就此完成。 3. K8s集群部署 点击查看详情 #1 环境准备 ▶ 1.1 体验环境的部署规划 接下来,我们开始演示k8s集群部署Matixone数据库。开始部署前,我们要做好部署前的准备工作,确保集群环境达到部署要求;具体包含节点数量、硬件配置、操作系统、能获取到docker镜像,还要关闭防火墙、关闭selinux、禁止swap分区、节点间要时间同步。 下面我们来看下体验环境的部署规划要求:需要3台服务器(来部署三节点k8s集群、单节点minio(珉哎欧),Matrixone数据库核心单副本即可),需要操作系统CentOS 7.3及以上版本,x86架构,所有节点2核8G及以上,磁盘200G以上。那我们此次的演示环境只要达到该要求即可,我们检查我们的演示服务器配置为32核、31G内存、磁盘230G+、操作系统为CentOS7.9,符合要求,其他两台也是同样的配置,我们就不再查看了。 ▶ 1.2 生产环境部署规划 下面看下最小生产环境的部署规划要求,它对硬件的配置要求要比体验环境的要求高一些,大家了解一下;再来看下推荐生产环境的部署规划要求,显然要比最小生产环境的部署规划要求更高,如果大家后面要在生产环境部署Matrixone数据库,就可以参考这些规划要求。 ▶ 1.3 所有节点操作 接着我们开始执行部署前的操作,首先要关闭防火墙,关闭selinux,关闭swap,其它两个节点也要执行。接着我们要根据规划设置主机名,225节点我们设置为master,240我们设置为node0,241我们设置为node1;然后要在master节点上将三节点的IP、主机名,添加到hosts文件,注意这一步只在master上执行。 接着我们配置:将桥接的IPv4流量传递到iptables的链,然后手动加载所置,这两步所有节点都要执行,最后我们三节点要同步时间,安装ntpdate,同步微软授时主机时间。 #2 安装docker 接着我们开始安装docker,所有节点都得安装;首先配置阿里镜像源,所有节点都得执行,然后指定版本安装docker,本次安装docker 19.03.14,我们直接执行安装命令,所有节点都得执行,然后设置开机自启并启动docker,查看下docker版本,ok没问题。接着我们配置docker镜像下载加速器,240、241也要执行,然后重启docker,至此docker安装完成。 #3 安装k8s集群 ▶ 3.1 初始化master 接着我们开始安装k8s集群,首先添加阿里云软件源,所有节点都得添加,然后所有节点安装:kubeadm、kubelet、kubectl,安装完成之后,开始初始化master。 在master节点执行kubeadm 初始化命令,这个要等一段时间,完成,初始化完成之后,我们要把kubeadm join命令复制出来,后面node节点加入时要使用;接着我们拷贝k8s认证文件,这个只需在master节点执行,完成之后我们就可以使用kubectl命令了。我们可以查看当前node,只有一个master。 ▶ 3.2 添加工作节点 然后我们开始添加工作节点,在所有工作节点执行刚才复制出来的kubeadm join命令,咱们在240、241上执行,如果这个token过期的话,我们可以执行下面命令重新生成,完成后,我们在master节点查询node,都已经加入集群,但还未准备就绪。 ▶ 3.3 部署网络插件 接着我们部署k8s网络插件calico(看尼扣),可以先wget下载好部署文件calico.yaml,然后再安装,也可以直接在线安装,那我们直接在master节点执行在线安装命令。大家在安装calico插件时,要注意calico 版本,看是否支持当前k8s版本,我们当前部署calico版本为 v3.24,支持k8s 1.22~1.25,所有是没问题的。calico部署完成后,我们查询k8s所有pod的状态,等到所有pod都为Running状态,这个得等一阵子,OK,都Running了,至此k8s集群部署成功了。 #4 部署MatrixOne集群 ▶ 4.1 master 节点部署 helm 接下来我们开始要准备部署Matrixone集群了,部署Matrixone之前,我们得先安装好相关的工具与应用。后面的所有操作都在master节点上执行。 首先我们来安装helm,helm 是一个用于管理k8s应用程序的包管理工具,我们先通过wget命令行下载helm 安装包,这里提供了两个地址,如果在国外的网络受限环境下,我们可以换成下面国内的镜像地址,这里我们已经提前下载好helm安装包,接着我们就开始解压并安装helm 安装包,完成后,我们来验证下版本,看是否安装完成,ok,那helm工具已安装完成。 ▶ 4.2 部署CSI 接着我们安装CSI,CSI 为Kubernetes 的存储插件,为 MinIO 和 MarixOne 提供存储服务。我们先通过wget命令行下载CSI安装包,这里我们已经提前下载好。直接解压,然后进入到部署目录, 执行部署命令,注意部署完成后,storageClass 会在 worker 节点的 /home/local-path-provisioner这个目录提供存储服务,你也可以修改为其它路径。 执行完成后,我们执行查询命令,CSI的pod已Running,那就说明安装成功。 然后我们设置缺省 storageClass,查询下是否设置成功,ok完成!大家部署时,如果由于网络或其他原因需要重装,那我们得先执行下面这个卸载命令,然后再重装。 ▶ 4.3 MinIO 部署 接下来我们安装MinIO, MinIO的作用是为MatrixOne 提供对象存储。首先我们添加MinIO镜像源,然后创建安装目录,进入安装目录,下载MinIO安装包,解压安装包,进入minio目录,创建minio命名空间,然后执行安装命令,这些参数都可修改,注意记住账号、密码,如果要卸载的话,执行下面卸载命令。 等待安装成功后,我们在游览器页面访问任意节点的32001端口,进入MinIO登录页面,输入刚才的账号、密码,进来后我们创建存储桶:Bucket(巴kei特),命名为minio-mo,完成创建。 ▶ 4.4 安装MatrixOne-Operator 接着我们来安装MatrixOne-Operator,MatrixOne Operator 是一个在 Kubernetes 上部署和管理 MatrixOne 集群的独立软件工具。我们先用wget命令行下载Operator安装包,这里我们已经提前下载好1.0.0版本的Operator,只需解压,然后进入安装目录,执行安装命令,查询pod,已Running,MatrixOne-Operator安装完成。 ▶ 4.5 安装 MatrixOne 最后我们开始安装我们的MatrixOne数据库,首先创建命名空间mo-hn,然后编辑Matrixone的部署文件mo.yaml,这里我们已经提前编辑好,咱们打开看看,注意里的CPU核数、内存,不要给的太小,注意dn的副本数已经填1,我们选择logService的副本数为3,tp的副本数也改为3,MatrixOne的docker镜像我们选择1.0.0-rc1,注意此处的s3路径名要与我们前面创建的minio的名称保持一致。 编辑完部署文件,我们先在Matrixone的命名空间内创建用于访问 MinIO 的 Secret 服务,执行创建命令,查看pod OK,然后我再执行matrixone的安装命令,用刚才编辑好的mo.yaml文件部署,这个得等待一段时间,我们查看mo-hn命名空间里的pod,等待所有pod都为Running状态,证明部署成功。 #5 连接MatrixOne集群 ▶ 5.1 映射service端口到 MatrixOne 节点上 接着我们准备连接Matrixone,连接之前,我们得先将Matrixone对应服务的service端口映射到MatrixOne节点上。 这里我们有两种映射方式,第一种只允许本地 master 节点访问6001端口,执行对应的命令即可,执行后,我们只能在master本机通过Mysql client访问6001端口,用户名、密码都为默认的root、111。 还有第二种方式:指定某台机器或者所有机器访问6001端口,我们本次采用者第二种方式,直接执行下面的这行命令,完成后,我们就可以在任意能访问该节点的机器上,利用Mysql客户端连接我们的Matrixone数据库,连接端口还是6001,用户名、密码都为默认的root、111,想修改默认密码的,可以在登录数据库后自行修改,我们就不再具体演示。 我们直接在本机执行连接命令,进入数据库,至此Matrixone的k8s集群部署已完成,接下来就可以体验MatrixOne数据库的强大功能。
Q&A环节 下面是QA环节,我们列举了部署过程中的常见问题以及对应的解决方案,比如,用mo_ctl工具启动Matrixone时报错、部署Minio之后pod异常并出现这种报错等等,问题下面都有对应的解决方案。 大家以后在部署Matrixone过程中,如果遇到问题,则可以在此处或者官网寻找、查看对应的解决方案,仍不能解决的话,可以联系我们的运维工程师。 好了,今天的直播就此结束,感觉大家的观看,谢谢!