k8s 部署polardb-x集群

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: k8s 部署polardb-x集群

前言

体验了基于源码构建的部署polardb-x 单机部署,当然也想体验性能更好的完全分布式集群。这边文章将重点介绍如何部署polardb-x集群

简介

PolarDB-X 是一款面向超高并发、海量存储、复杂查询场景设计的云原生分布式数据库系统。其采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,具备企业级、云原生、高可用、高度兼容 MySQL 系统及生态等特点。

PolarDB-X 最初为解决阿里巴巴天猫“双十一”核心交易系统数据库扩展性瓶颈而生,之后伴随阿里云一路成长,是一款经过多种核心业务场景验证的、成熟稳定的数据库系统。 PolarDB-X 的核心特性如下:

水平扩展
PolarDB-X 采用 Shared-nothing 架构进行设计,支持多种 Hash 和 Range 数据拆分算法,通过隐式主键拆分和数据分片动态调度,实现系统的透明水平扩展。

分布式事务
PolarDB-X 采用 MVCC + TSO 方案及 2PC 协议实现分布式事务。事务满足 ACID 特性,支持 RC/RR 隔离级别,并通过一阶段提交、只读事务、异步提交等优化实现事务的高性能。

混合负载
PolarDB-X 通过原生 MPP 能力实现对分析型查询的支持,通过 CPU quota 约束、内存池化、存储资源分离等实现了 OLTP 与 OLAP 流量的强隔离。

企业级
PolarDB-X 为企业场景设计了诸多内核能力,例如 SQL 限流、SQL Advisor、TDE、三权分立、Flashback Query 等。

云原生
PolarDB-X 在阿里云上有多年的云原生实践,支持通过 K8S Operator 管理集群资源,支持公有云、混合云、专有云等多种形态进行部署,并支持国产化操作系统和芯片。

高可用
通过多数派 Paxos 协议实现数据强一致,支持两地三中心、三地五副本等多种容灾方式,同时通过 Table Group、Geo-locality 等提高系统可用性。

兼容 MySQL 系统及生态
PolarDB-X 的目标是完全兼容 MySQL ,目前兼容的内容包括 MySQL 协议、MySQL 大部分语法、Collation、事务隔离级别、Binlog 等。

集群部署方案

集群部署方案主要有两个

  • PXD 部署
  • k8s部署

鉴于便捷性,这是我们使用k8s部署

k8s 部署polardb-x集群

1. 环境准备

  • 安装 Helm 已经配置环境变量
  • k8s 集群
  • 良好的网络环境

2. 安装 PolarDB-X Operator

  • 在 Helm 仓库中添加 PolarDB-X 相关网址:
      helm repo add polardbx https://polardbx-charts.oss-cn-beijing.aliyuncs.com
    
  • 检查已发布的 PolarDB-X Operator 版本:

      helm search repo polardbx/polardbx-operator -l
    

    推荐安装最新版本,例如:v1.6.2。

  • 创建 polardbx-operator-system 命名空间:

      kubectl create namespace polardbx-operator-system
    
  • 用以下 Helm 命令安装 v1.6.2:

      helm install --namespace polardbx-operator-system \
          --set node.volumes.data=/polarx/data --set imageRepo=registry:5000 \
          --set extension.config.images.store.galaxy.exporter=register:5000/mysqld-exporter:master \
          --version 1.6.2 \
          polardbx-operator polardbx/polardbx-operator
    
  • 检查容器启动是否成功:
      kubectl get pods -n polardbx-operator-system
    
    如果pod的状态都处于running 就说明PolarDB-X Operator 安装成功了

在这里插入图片描述

3. 部署polardb-x集群

3.1 准备yaml

  • 首先执行如下命令获取 PolarDB-X 各个组件的最新镜像版本(需要填入YAML文件):
      curl -s "https://polardbx-opensource.oss-cn-hangzhou.aliyuncs.com/scripts/get-version.sh" | sh
    
  • 输出内容 以2.4版本为例
      CN polardbx/polardbx-sql:v2.4.0_5.4.19
      DN polardbx/polardbx-engine:v2.4.0_8.4.19
      CDC polardbx/polardbx-cdc:v2.4.0_5.4.19
      COLUMNAR polardbx/polardbx-columnar:v2.4.0_5.4.19
    
  • 编写 yaml文件
      vi polardbx_cluster.yaml
    
  • yaml 内容如下
    和官方配置文件不同的是,这里使用了polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx 镜像仓库地址,而不是默认的,避免因为网络问题拉取不到镜像。如果自带梯子可直接将镜像替换成官方推荐的地址 例如 把 polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/替换为polardbx/

     apiVersion: polardbx.aliyun.com/v1
     kind: PolarDBXCluster
     metadata:
       name: polardbx-cluster
     spec:
       topology:
         nodes:
           gms:
             template:
               image: polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.0_8.4.19
               resources:
                 requests:
                   cpu: 1
                   memory: 4Gi
                 limits:
                   cpu: 1
                   memory: 4Gi
           cn:
             replicas: 2
             template:
               image: polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-sql:v2.4.0_5.4.19
               resources:
                 requests:
                   cpu: 2
                   memory: 4Gi
                 limits:
                   cpu: 2
                   memory: 4Gi
           dn:
             replicas: 3
             template:
               image: polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.0_8.4.19
               resources:
                 requests:
                   cpu: 2
                   memory: 8Gi
                 limits:
                   cpu: 2
                   memory: 8Gi
           cdc:
             replicas: 1
             template:
               image: polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-cdc:v2.4.0_5.4.19
               resources:
                 requests:
                   cpu: 1
                   memory: 4Gi
                 limits:
                   cpu: 2
                   memory: 4Gi
    

    3.2 镜像提前下载(推荐 因为镜像都比较大 推荐提前下载)

    在k8s1.20 以后 运行时环境被替换为了 Containerd 故使用 工具拉取镜像

crictl pull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.0_8.4.19
crictl pull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-sql:v2.4.0_5.4.19
crictl pull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-cdc:v2.4.0_5.4.19

注意: crictl 拉取镜像的命令没有进度条限制,并且一直阻塞住,在保证网络正常的情况下 静静的等待即可
在这里插入图片描述

下载后可使用crictl image list | grep polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com 命令查看
在这里插入图片描述

如果运行时环境还是docker的话 可以使用docker命令拉取镜像

docker pull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.0_8.4.19
docker pull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-sql:v2.4.0_5.4.19
docker pull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-cdc:v2.4.0_5.4.19

同样也可以使用 docker images -a | grep polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com 命令查看

3.3 执行apply

kubectl apply -f polardbx_cluster.yaml

3.4 等待部署完成

通过如下命令查看部署情况

kubectl get polardbxcluster -w

部署 完成后 效果如下
在这里插入图片描述

4. 卸载 polardb-x集群

卸载 polardb-x集群 也比较容易

# polardbx-cluster 这个是集群的名称 名称是在yaml里定义的
kubectl delete polardbxcluster polardbx-cluster

5. 使用polardb-x集群

  • 首先查看连接连接地址 因为我们是两个DN 节点 需要使用一个负载均衡的地址 这个polardb-x 集群部署完成后 已经提供在 k8s的服务里

    在这里插入图片描述

      也可通过命令行 查看该服务
      ```shell
      kubectl get service polardbx-cluster
      ```
    

在这里插入图片描述
我们需要使用的就是 这个cluster ip

  • 查看连接DN的账号密码

    可通过可视化工具查看
    在这里插入图片描述
    内容如下
    在这里插入图片描述
    需要注意的是 这个密码不能直接使用 需要先进行base64解密 然后才是真正的密码

    也可以通过命令行查看

      kubectl get secret polardbx-cluster -o jsonpath="{.data['polardbx_root']}" | base64 -d  | xargs echo "Password:"
    

    输出结果即是密码

  • 使用可视化工具连接测试
    在这里插入图片描述

good day !!!

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
3天前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
借助阿里云ACK One注册集群,充分利用阿里云强大ACS GPU算力,实现DeepSeek推理模型高效部署。
|
8天前
|
存储 Kubernetes 测试技术
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
本教程演示如何在ACK中使用vLLM框架快速部署DeepSeek R1模型推理服务。
|
9天前
|
存储 人工智能 弹性计算
NVIDIA NIM on ACK:优化生成式AI模型的部署与管理
本文结合NVIDIA NIM和阿里云容器服务,提出了基于ACK的完整服务化管理方案,用于优化生成式AI模型的部署和管理。
|
3天前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
1月前
|
关系型数据库 MySQL 分布式数据库
[PolarDB实操课] 05.通过源码部署PolarDB-X标准版
本课程介绍如何通过源码部署PolarDB-X标准版,涵盖基于Paxos的MySQL三副本工作原理和技术特点。主要内容包括: 1. **Paxos三副本工作原理**:讲解Leader和Follower节点的角色及数据同步机制。 2. **技术特点**:强调高性能、数据不丢失(RPO=0)和自动HA切换。 3. **源码部署步骤**:详细演示从编译生成RPM包到启动DN节点的过程,包括配置my.cnf文件和初始化数据库。 4. **高可用体验**:通过三台机器模拟三副本集群,展示Leader选举和故障转移机制,确保数据一致性和服务可用性。
|
1月前
|
关系型数据库 编译器 分布式数据库
PolarDB实操课] 04.通过源码部署PolarDB-X企业版
本次课程由PolarDB开源架构师王江颖分享,详细介绍了通过源码部署PolarDB-X企业版的全过程。主要内容包括: 1. **编译基础** 2. **使用源码编译部署PolarDB-X企业版** 3. **演示实例**:通过阿里云ECS进行实际操作演示,从创建用户、赋予权限到最终启动并连接PolarDB-X数据库,展示了完整的部署过程。 4. **总结**
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
让PolarDB更了解您--PolarDB云原生数据库核心功能体验馆
让PolarDB更了解您——PolarDB云原生数据库核心功能体验馆,由阿里云数据库产品事业部负责人宋震分享。内容涵盖PolarDB技术布局、开源进展及体验馆三大部分。技术布局包括云计算加速数据库演进、数据处理需求带来的变革、软硬协同优化等;开源部分介绍了兼容MySQL和PostgreSQL的两款产品;体验馆则通过实际操作让用户直观感受Serverless、无感切换、SQL2Map等功能。
107 7
|
6天前
|
存储 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 8 数据库生态
PolarDB是一款开源的云原生分布式数据库,源自阿里云商业产品。为降低使用门槛,PolarDB携手伙伴打造了完整的开源生态,涵盖操作系统、芯片、存储、集成管控、监控、审计、开发者工具、数据同步、超融合计算、ISV软件、开源插件、人才培养、社区合作及大型用户合作等领域。通过这些合作伙伴,PolarDB提供了丰富的功能和服务,支持多种硬件和软件环境,满足不同用户的需求。更多信息请访问[PolarDB开源官方网站](https://openpolardb.com/home)。
38 4
|
30天前
|
存储 关系型数据库 分布式数据库
PolarDB PostgreSQL版:商业数据库替换与企业上云首选
PolarDB PostgreSQL版是商业数据库替换与企业上云的首选。其技术架构实现存储计算分离,具备极致弹性和扩展性,支持Serverless、HTAP等特性。产品在弹性、性能、成本优化和多模处理方面有显著提升,如冷热数据自动分层、Ganos多模引擎等。已在汽车、交通、零售等行业成功应用,典型案例包括小鹏汽车、中远海科等,帮助企业大幅降低运维成本并提高业务效率。
46 13
|
30天前
|
容灾 关系型数据库 分布式数据库
PolarDB分布式版:与云融合的分布式数据库发展新阶段
PolarDB分布式版标志着分布式数据库与云融合的新阶段。它经历了三个发展阶段:从简单的分布式中间件,到一体化分布式架构,再到云原生分布式数据库。PolarDB充分利用云资源的弹性、高性价比、高可用性和隔离能力,解决了大规模数据扩展性问题,并支持多租户场景和复杂事务处理。零售中台的建设背景包括国家数字化转型战略及解决信息孤岛问题,采用分布式数据库提升高可用性和性能,满足海量订单处理需求。展望未来,零售中台将重点提升容灾能力、优化资源利用并引入AI技术,以实现更智能的服务和更高的业务连续性。

相关产品

  • 云原生分布式数据库 PolarDB-X