开发者学堂课程【PolarDB-X 开源分布式数据库进阶课程 :PolarDB-X 的部署与运维(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1202/detail/18163
PolarDB-X 的部署与运维
三、课程资源(运维系统)
之前课程提过 polarDB-X 目前支持多种部署方式,本次课程主要基于 polarDB-X Operator 的部署方式进行具体门类介绍,polarDB-X Operator 是 polarDB-X 在 K8s 上的一个自动化运维系统,也是生产级的一个部署方式,基于 k8s集群的底层基础设施,可以快速对 polarDB-X 集群进行运维和管理,例如基于 k8s 里面的 Deployment 对无状态的cn 还有 cdc 节点进行管理,基于 stiff sight 的方式,能够管理有状态的 GMS 或 CN 节点。除了基本的生命周期管理能力外,我们在 polarDB-X Operator 上还支持了弹性伸缩、高可用、安全可信、监控审计等运维能力,例如在v2.2版本中,重点支持了国产化的适配、全量的备份恢复、SQL 审计、参数模板、参数设置,还有备库重搭以及只读集群。在未来,也会对 polarDB-X 进行进一步的改造和完善,例如目前很多运维操作还是在命令行通过黑屏化的方式进行,在未来会提供 polarDB-X 的 Dashbord,通过白屏化的方式管理 polarDB-X 集群。同时备份能力也会进一步完善,支持自定义的备份策略,帮助自定义定期备份。支持增量备份,以及任意时间点的恢复能力。目前 polarDB-X Operator 的调度还主要依赖 K8s 的 Studio进行。所以如果在一个易购的集群或者说对于一些 io 能力更敏感的一些集群上,目前的标准力还不够细腻度化。未来也会在这方面去做进一步的优化,来支持这样的场景。
四、国产 ARM 支持
目前市场上对国产化服务器具有强烈需求,其中最主要的是对 arm 架构 CPU 的支持,因此在这次的 v2.2版本中,全面的兼容了 X86、arm 架构两种平台。这里的全面兼容不仅具有内核,还对像计算节点 cn、存储节点 dn,以及日志节点 cdc 的兼容。同时还有生态工具的兼容,例如在 k8s 上的集群运维管理平台 polarDB-X Operator 、压测工具benchmark-boot、导入导出工具 batch-tools 都完成了 arm 架构的适配。在下图是在 Doc harp 上的核心组件的镜像截图。可以看出目前已经全面的支持了 x86 和 arm 64这两种架构。通过 Doc lining fans 的方式,可以将这两种不同架构的镜像通过一个 tax 的方式进行打包,这样在不同平台上进行部署时便可以通过相同的方式进行,极大减少了运维的复杂度。
国产化平台适配演示:
下面通过云起实验室《如何在 ARM 平台部署 polarDB-X 》演示如何在 ARM 平台快速部署 polarDB-X 。
这是云起实验室的页面,这次云起实验室里面提供了《polarDB-X 开源分布式数据库进阶》的实验。首先点击加入课程,这次一共提供11个实验,每一个实验是和每节课的内容相关联,方便学习者课后通过实验的方式进行实际体验。
第一个实验如何在 ARM 平台部署一个 polarDB-X
首先点击查看详情,进入实验的详情页,点击再次实验,进入实验页面。实验全程按照实验页面左下角的操作指导框的提示进行。
按照第一步的要求创建资源。点击创建资源按钮,加载后会创建出一个 ECS。之后在刚创建 ECS 上进行后续实验操作。另外,云起实验室的登录只需要一个阿里云账号即可,并且具体操作实验以及注册账号都是免费的,大家可以免费的体验。创建完成后进入 ECS 的终端页面。在此页面会列出相关的实验的信息和云服务器的基本信息。包括 IP、用户账号等。
将左下角切换为实验手册的 tab,开始我具体实验步骤。
第一步按照步骤安装 Dcker 、kubectl 、minikube 和 helm3 ,创建安装环境,这基础之上安装 polarDB-X。
首先,根据左下角操作指南1执行 uname-a 命令来看一下 ECS 的架构。实验这台 ECS 架构 0aarch64,和普通的 x864 是不同的。
第2步是安装 docker。根据2.1复制两条命令安装 docker。第一条命令是添加 Docker 的 repo,第二条命令是通过 yum install 的方式来安装 docker。接下来2.2,复制命令,启动 docker。
第3步是安装 K8s 的命令行工具,即 Kubectl,之后所有的命令行操作都会基于 Kubectl 命令来进行。首先根据3.1的命令,下载 Kubectl 的安装包。之后根据3.2命令,去赋予可执行权限。之后根据3.3,移动到系统目录下,就可以直接使用此命令。
第4步,安装 minikube,安装 minikube 可以帮助用户快速在比台 ECS 上创建一个虚拟 K8s 集群,然后再去安装 por和创建 pod 集群。首先根据框内第一条命令,下载安装包,下载完成后,然过第二条命令来进行安装。
第5步,安装 helm3,这也是需要安装 p 的一个工具。第一步,根据4.1命令下载 helm3,然后根据4.2命令解压 helm3 安装包。之后运用4点。三,命令将它移动到系统目录 ,这样就能直接使用。
第6步,安装 MYSQL,这个软件能帮助我们快速联系创建好的 polarDB-X 集群上。执行操作指南框内命令安装MySQL。
以上是第一步,创建安装环境的所有操作。点击下一页,进入下一个实验步骤——使用 polarDB-X Operator 安装 polarDB-X ,在这一操作步骤中,知道如何创建一个简单的 kubermetes 集群并部署 polarDB-X Operator ,使用 opertor 部署一个完整的 polarDB-X 集群。
第1步,使用 minikube 创建 kubemetes 集群。首先根据1.1执行下面命令,创建一个 galaxyku 账号。之后根据1.2操作,切换到账号 galaxyku 。根据操作1.3进入到 galaxyku 的主目录下。之后根据操作1.4的命令,能帮助创造一个4c 12G分别包含两个节点的 k8s 集群版本是1.23.3。
1.5操作会通过 kubectl cluster-info 命令,查看 K8s 集群的基本信息,这里显示了 K8s 控制面的地址、coreDNS 的地址。
第2步部署 polarDB-X Operator ,首先根据2.1命令,创建一个名为 polarDB-X Operator -system 的命名空间,之后通过命令第一条命令 helm repo add 实现 polarDB-X ,添加 polarDB-X Operator 的 helm仓库之后通过第二条命令一键安装 polarDB-X Operator .之后通过2.3命令查看 polar operator 组件安装以及运行情况。
操作面板会显示几个组建,正在创建。在这过程中可以运用 –w 的方式等待创建。
在操作面板的输出信息中可以看到 polarDB-X Operator 已经安装完成,可以通过 kubectl get pods --namespac polardbx-operator-system 的命令去查看 polarDB-X Operator -system 的情况。
同时也可以通过 yaml 快速创建 polarDB-X
如果所有的组件进入 running 的状态了,表示 polarDB-X 已经安装完成。
第3步部署 polarDB-X Operator 集群。首先根据3.3命令,打开 yaml 文件,之后将3.2操作下给出的 yaml 文本复制粘贴到已打开的 yaml 文件中。这个给出的 yaml文本,首先是 dx 的集群名称。是 polarDB-X ,下面定义的是跑了 polarDB-X 的组件,有cdc、cn、dn、gms,分别设置了他们的 eplicas 为1,即每次只见一个节点,设置通过 resouces 判定资源使用情况。
这个 yaml 文本将设置一个包含一个 cn,一个 dn ,一个gms 的集群。文本粘贴后退出 yaml 开始创建。执行3.3命令,创建 polarDB-X 集群。通过3.4命令可以查看 polarDB-X 集群创建状态,由于创建 polarDB-X 时需要拉取 cn、dn等镜像,所耗时间较长。当 PHASE 显示为 Running 时,即表示部署完成。
输入命令 kubectl get pot 可以查看在创建过程中产生的新的 pod。这里可以看到一共有六个 pod,分别是 gms 3个,Dn 3个。cande-0 和 cande-1分别表示刚才介绍的 dn 里面的 leader、Follow 的角色。 log-0 表示的是 log 节点。对于dn也一样,所以每个 dn 都会有三个 pod 组成,来保障我们数据的高可靠。
点击下一页,进行下一步,连接 polarDB-X 集群。
首先根据1的命令查看 polarDB-X 集群登录密码,登录密码是存在于 K8s 里面的。之后根据2操作,通过 K8 s 的 kubectl port-forward sv c/polardb-x3306 命令将 polarDB-X 的 Service 的3306端口转换到 ECS 上,连接此台 ECS 的3306端口,便可以登录 polarDB-X O。之后实验3,通过单击右上角加号图标创建新的终端二。之后实验4,通过命令来连接 polarDB-X ,同时复制刚才密码粘贴。
之后点击下一页进行下一大步操作,首先根据实验1.1,通过 create database sysbench_test:命令,创建一个Sysbnch_test 数据库,然后通过 sysbench Oltp 场景模拟业务流量,展示x如何稳定运行。之后根据实验1.2输入 Exit 退出数据库。之后根据1.3命令切换到账号 GalaxyKube,之后根据1.4,1.5创建准备压测数据的 Yaml 文件,之后将1.6的 Yaml 文件文本复制粘贴到 Yaml 文件中。这个文本中主要使用的还是公开的 Sysbch 的镜像,然后还填写了一些相关的命令行参数,刚才抛了 polarDB-X的连接串密码、场景参数。最后保存文件退出,根据1.7命令执行,根据1.8命令获取任务的进行状态。
第2步,启动压测流量。根据2.1命令创建启动压测的 Yaml 文件。复制2.2的 yaml 文本,之后保存退出。之后执行2.3命令运行启动压测的 Yaml 文件,开始压测。根据2.4命令,查看压测脚本运行的 pod。根据2.5命令查看 QPS 等流量数据,查看压测效果,这一步可以多观察一段时间,查看运行情况。流量基本已经稳定在2000左右,说明 polarDB-X Operator 在 arm 机器上完善部署,能够进行正常业务。