news 2026/2/25 7:23:05

PolarDB-X 企业版分布式集群部署文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PolarDB-X 企业版分布式集群部署文档

目录

  • PolarDB-X 企业版分布式集群部署文档
    • 快速连接
      • 快速连接命令
    • 集群信息
      • 集群状态
      • Pod 列表
      • 服务列表
      • 镜像版本
    • 安装步骤
      • 1. 安装 Helm
      • 2. 创建命名空间
      • 3. 添加 Helm 仓库并安装 Operator
      • 4. 获取最新镜像版本
      • 5. 创建集群配置文件
      • 6. 部署集群
      • 7. 监控部署进度
      • 8. 获取连接密码
    • 集群架构
      • 架构图
      • 组件说明
    • 连接方式
      • 方式1: kubectl port-forward (推荐)
      • 方式2: 集群内连接
      • 方式3: 使用内部 Service
      • 方式4: 直接连接 DN (只读)
    • 快速命令参考
      • 集群状态查看
      • 日志查看
      • 进入容器
      • Pod 名称速查
    • 分布式特性验证
      • 分区表创建与测试
      • 广播表测试
      • 单表测试
      • CDC 验证
      • 事务测试
    • 故障排查
      • Pod 启动失败
      • 镜像拉取慢
      • 连接问题
      • 常见错误
    • 卸载步骤
    • 参考资料
      • 官方文档
      • 开源资源
      • 社区文章
    • 版本信息

PolarDB-X 企业版分布式集群部署文档

部署日期: 2026-01-22
部署环境: x.148 (K8s v1.24.10)
节点列表: qfusion1, qfusion2, qfusion3, qfusion4



快速连接

项目
主机x.148
Cluster IP246.101.203.189
端口3306
用户polardbx_root
密码nf9xwvc2
版本8.0.32-X-Cluster-8.4.19-20250825

快速连接命令

# SSH 到 148sshx.148# 端口转发(在新终端执行)kubectl port-forward svc/polardbx-demo3306# MySQL 连接mysql -h127.0.0.1 -P3306 -upolardbx_root -pnf9xwvc2

集群信息

集群状态

组件数量规格状态
GMS(全局元服务)1 (3副本Paxos)2C/4Gi✅ 1/1
CN(计算节点)22C/4Gi × 2✅ 2/2
DN(数据节点)22C/4Gi × 2✅ 2/2
CDC(变更数据捕获)12C/4Gi✅ 1/1
总 Pods12-✅ 全部 Running

架构

Pod 列表

# GMS (3副本 Paxos) polardbx-demo-t8ms-gms-cand-0 (qfusion3) polardbx-demo-t8ms-gms-cand-1 (qfusion4) polardbx-demo-t8ms-gms-log-0 (qfusion2) # DN-0 (3副本) polardbx-demo-t8ms-dn-0-cand-0 (qfusion4) polardbx-demo-t8ms-dn-0-cand-1 (qfusion2) polardbx-demo-t8ms-dn-0-log-0 (qfusion1) # DN-1 (3副本) polardbx-demo-t8ms-dn-1-cand-0 (qfusion1) polardbx-demo-t8ms-dn-1-cand-1 (qfusion3) polardbx-demo-t8ms-dn-1-log-0 (qfusion4) # CN (2个计算节点) polardbx-demo-t8ms-cn-default-84c4845fdc-5fgz8 polardbx-demo-t8ms-cn-default-84c4845fdc-qhm9f # CDC polardbx-demo-t8ms-cdc-default-7b8f4bc45-snp74

服务列表

服务类型IP端口
polardbx-demoClusterIP246.101.203.1893306, 8081
polardbx-demo-cdc-metricsNodePort246.102.74.2478081:31583
polardbx-demo-t8ms-gmsClusterIP246.99.125.2123306, 31306
polardbx-demo-t8ms-dn-0ClusterIP246.104.56.993306, 31306
polardbx-demo-t8ms-dn-1ClusterIP246.98.191.213306, 31306

镜像版本

组件镜像
CNpolardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-sql:v2.4.2_5.4.19
DN/GMSpolardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.2_8.4.19
CDCpolardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-cdc:v2.4.2_5.4.19

安装步骤

1. 安装 Helm

sshx.148curl-fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3chmod700get_helm.sh ./get_helm.sh# 验证helm version# 输出: version.BuildInfo{Version:"v3.19.5", ...}

2. 创建命名空间

kubectl create namespace polardbx-operator-system

3. 添加 Helm 仓库并安装 Operator

# 添加仓库helm repoaddpolardbx https://polardbx-charts.oss-cn-beijing.aliyuncs.com# 安装 Operatorhelminstall--namespace polardbx-operator-system polardbx-operator polardbx/polardbx-operator# 验证 Operator 状态kubectl get pods -n polardbx-operator-system

Operator 组件:

  • polardbx-clinic
  • polardbx-controller-manager
  • polardbx-hpfs (多个副本)
  • polardbx-tools-updater (多个副本)

4. 获取最新镜像版本

curl-s"https://polardbx-opensource.oss-cn-hangzhou.aliyuncs.com/scripts/get-version.sh"|sh

输出:

CN polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-sql:v2.4.2_5.4.19 DN polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.2_8.4.19 CDC polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-cdc:v2.4.2_5.4.19

5. 创建集群配置文件

cat>/tmp/polardbx-enterprise.yaml<<'EOF' apiVersion: polardbx.aliyun.com/v1 kind: PolarDBXCluster metadata: name: polardbx-demo namespace: default spec: topology: nodes: gms: template: image: polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.2_8.4.19 resources: requests: cpu: 500m memory: 1Gi limits: cpu: 2 memory: 4Gi cn: replicas: 2 template: image: polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-sql:v2.4.2_5.4.19 resources: requests: cpu: 500m memory: 1Gi limits: cpu: 2 memory: 4Gi dn: replicas: 2 template: image: polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.2_8.4.19 resources: requests: cpu: 500m memory: 1Gi limits: cpu: 2 memory: 4Gi cdc: replicas: 1 template: image: polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-cdc:v2.4.2_5.4.19 resources: requests: cpu: 500m memory: 1Gi limits: cpu: 2 memory: 4Gi EOF

6. 部署集群

kubectl apply -f /tmp/polardbx-enterprise.yaml

7. 监控部署进度

# 实时监控集群状态kubectl get polardbxcluster -w# 查看 Pods 状态kubectl get pods|greppolardbx-demo# 查看详细信息kubectl get polardbxcluster -o wide

部署时间约 25-30 分钟(镜像拉取需要时间)

8. 获取连接密码

evalpxc=polardbx-demoevaluser=$(kubectl get secret $pxc -ojsonpath='{.data}'|grep-o'"[^"]*"'|head-1|tr-d'"')echo"User:$user"kubectl get secret$pxc-ojsonpath="{.data['$user']}"|base64 -d -|xargsecho"Password:"

输出:

User: polardbx_root Password: nf9xwvc2

集群架构

PolarDB-X 企业版采用分布式架构,主要组件包括:

架构图

┌─────────────────────────────────────────────────────────────┐ │ PolarDB-X 集群 │ │ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ CN Node 1 │ │ CN Node 2 │ ← 计算节点 (无状态) │ │ │ (SQL解析) │ │ (SQL执行) │ │ │ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ └────────┬─────────┘ │ │ ▼ │ │ ┌──────────────────────────────────┐ │ │ │ GMS Cluster │ ← 全局元服务 │ │ │ (cand-0, cand-1, log-0) │ (3副本 Paxos) │ │ └──────────────────────────────────┘ │ │ │ │ │ ┌────────┴────────┐ │ │ ▼ ▼ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ DN Group 0 │ │ DN Group 1 │ ← 数据节点 │ │ │ (cand-0/1) │ │ (cand-0/1) │ (各3副本) │ │ │ (log-0) │ │ (log-0) │ │ │ └──────────────┘ └──────────────┘ │ │ │ │ ┌──────────────┐ │ │ │ CDC │ ← 变更数据捕获 │ │ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘

组件说明

组件全称说明
GMSGlobal Meta Service全局元数据服务,采用 Paxos 三副本保证高可用
CNCompute Node计算节点,负责 SQL 解析和执行,无状态可水平扩展
DNData Node数据节点,存储数据,支持多副本同步复制
CDCChange Data Capture变更数据捕获,提供 Binlog 订阅能力

连接方式

方式1: kubectl port-forward (推荐)

# 在 x.148 上执行端口转发kubectl port-forward svc/polardbx-demo3306# 在本地连接mysql -h127.0.0.1 -P3306 -upolardbx_root -pnf9xwvc2

方式2: 集群内连接

# SSH 到 148sshx.148# 进入 CN Podkubectlexec-it polardbx-demo-t8ms-cn-default-84c4845fdc-5fgz8 --bash# 连接数据库mysql -hpolardbx-demo -upolardbx_root -pnf9xwvc2

方式3: 使用内部 Service

# 在集群内的任意 Pod 中连接mysql -hpolardbx-demo.default.svc.cluster.local -P3306 -upolardbx_root -pnf9xwvc2

方式4: 直接连接 DN (只读)

# 连接 DN-0 只读副本mysql -hpolardbx-demo-t8ms-dn-0-ro -upolardbx_root -pnf9xwvc2

快速命令参考

集群状态查看

# 查看集群状态kubectl get polardbxcluster# 查看所有 Podskubectl get pods|greppolardbx-demo# 查看 Pods 分布kubectl get pods -o wide|greppolardbx-demo# 查看服务kubectl get svc|greppolardbx-demo# 实时监控kubectl get polardbxcluster -w

日志查看

# CN 日志kubectl logs -f polardbx-demo-t8ms-cn-default-84c4845fdc-5fgz8 -c engine# GMS 日志kubectl logs -f polardbx-demo-t8ms-gms-cand-0 -c engine# DN 日志kubectl logs -f polardbx-demo-t8ms-dn-0-cand-0 -c engine# CDC 日志kubectl logs -f polardbx-demo-t8ms-cdc-default-7b8f4bc45-snp74 -c engine

进入容器

# CN 容器kubectlexec-it polardbx-demo-t8ms-cn-default-84c4845fdc-5fgz8 -c engine --bash# GMS 容器kubectlexec-it polardbx-demo-t8ms-gms-cand-0 -c engine --bash# DN 容器kubectlexec-it polardbx-demo-t8ms-dn-0-cand-0 -c engine --bash

Pod 名称速查

组件Pod 名称
GMS cand-0polardbx-demo-t8ms-gms-cand-0
GMS cand-1polardbx-demo-t8ms-gms-cand-1
GMS log-0polardbx-demo-t8ms-gms-log-0
DN-0 cand-0polardbx-demo-t8ms-dn-0-cand-0
DN-0 cand-1polardbx-demo-t8ms-dn-0-cand-1
DN-0 log-0polardbx-demo-t8ms-dn-0-log-0
DN-1 cand-0polardbx-demo-t8ms-dn-1-cand-0
DN-1 cand-1polardbx-demo-t8ms-dn-1-cand-1
DN-1 log-0polardbx-demo-t8ms-dn-1-log-0
CN-1polardbx-demo-t8ms-cn-default-84c4845fdc-5fgz8
CN-2polardbx-demo-t8ms-cn-default-84c4845fdc-qhm9f
CDCpolardbx-demo-t8ms-cdc-default-7b8f4bc45-snp74

分布式特性验证

分区表创建与测试

-- 查看版本SELECTversion();-- 输出: 8.0.32-X-Cluster-8.4.19-20250825-- 创建分区库CREATEDATABASEtest_db PARTITION_MODE='partitioning';USEtest_db;-- 创建分区表 (自动分片到2个DN)CREATETABLEtest_table(idBIGINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(255),create_timeTIMESTAMPDEFAULTCURRENT_TIMESTAMP)PARTITIONBYHASH(id)PARTITIONS8;-- 插入测试数据INSERTINTOtest_table(name)VALUES('test1'),('test2'),('test3');INSERTINTOtest_table(name)VALUES('data1'),('data2'),('data3');-- 查看数据SELECT*FROMtest_table;-- 查看表拓扑分布 (数据分布在哪些DN)SHOWTOPOLOGYFROMtest_table;-- 查看存储节点信息SHOWSTORAGE;-- 查看CN节点信息SHOWMPP;-- 查看所有数据库SHOWDATABASES;-- 查看表信息SHOWTABLES;SHOWFULLTABLES;-- 查看建表语句SHOWCREATETABLEtest_table;

广播表测试

-- 广播表会在每个DN都存储全量数据CREATETABLEbroadcast_table(idINTPRIMARYKEY,nameVARCHAR(100))BROADCAST;INSERTINTObroadcast_tableVALUES(1,'config1'),(2,'config2');-- 查看拓扑,可以看到在所有DN上都有数据SHOWTOPOLOGYFROMbroadcast_table;

单表测试

-- 单表只存储在单个DN上CREATETABLEsingle_table(idBIGINTAUTO_INCREMENTPRIMARYKEY,dataVARCHAR(255))SINGLE;INSERTINTOsingle_table(data)VALUES('single data');SHOWTOPOLOGYFROMsingle_table;

CDC 验证

-- 查看 Binlog 状态SHOWMASTERSTATUS;-- 查看 Binlog 事件SHOWBINLOG EVENTSIN'binlog.000001'FROM4;-- 查看 Binlog 文件列表SHOWBINARYLOGS;

事务测试

-- 测试分布式事务BEGIN;INSERTINTOtest_table(name)VALUES('trans1');INSERTINTOtest_table(name)VALUES('trans2');COMMIT;-- 查询验证SELECT*FROMtest_tableWHEREnameIN('trans1','trans2');

故障排查

Pod 启动失败

# 查看 Pod 状态kubectl get pods|greppolardbx-demo# 查看 Pod 详情kubectl describe pod<pod-name># 查看容器日志kubectl logs<pod-name>-c engine kubectl logs<pod-name>-c exporter kubectl logs<pod-name>-c prober

镜像拉取慢

# 在各个节点上预拉取镜像dockerpull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-engine:v2.4.2_8.4.19dockerpull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-sql:v2.4.2_5.4.19dockerpull polardbx-opensource-registry.cn-beijing.cr.aliyuncs.com/polardbx/polardbx-cdc:v2.4.2_5.4.19

连接问题

# 检查服务状态kubectl get svc polardbx-demo# 检查 endpointskubectl get endpoints polardbx-demo# 测试端口转发kubectl port-forward svc/polardbx-demo3306# 进入 Pod 测试内部连接kubectlexec-it polardbx-demo-t8ms-cn-default-84c4845fdc-5fgz8 --bashmysql -hpolardbx-demo -upolardbx_root -pnf9xwvc2

常见错误

错误原因解决方法
ImagePullBackOff镜像拉取失败检查网络,手动拉取镜像
CrashLoopBackOff容器启动失败查看日志,检查资源配置
0/3 Ready容器未就绪等待启动或查看启动日志

卸载步骤

# SSH 到 148sshx.148# 1. 删除集群kubectl delete polardbxcluster polardbx-demo# 2. 等待 pods 删除完成kubectl get pods|greppolardbx-demo# 3. 删除 Operator (可选)helm uninstall --namespace polardbx-operator-system polardbx-operator# 4. 删除 CRD (可选,谨慎操作)kubectl delete crds polardbxclusters.polardbx.aliyun.com xstores.polardbx.aliyun.com# 5. 删除命名空间 (可选)kubectl delete namespace polardbx-operator-system

参考资料

官方文档

  • PolarDB-X 官方网站
  • PolarDB-X 产品文档
  • K8S 快速开始
  • PXD 部署文档

开源资源

  • PolarDB-X GitHub
  • PolarDB-X Operator GitHub
  • PolarDB-X Charts

社区文章

  • K8S 部署阿里云PolarDB-X 集群教程
  • PolarDB 2026 开发者大会总结

版本信息

组件版本
PolarDB-X8.0.32-X-Cluster-8.4.19-20250825
CN Imagev2.4.2_5.4.19
DN/GMS Imagev2.4.2_8.4.19
CDC Imagev2.4.2_5.4.19
K8sv1.24.10
Helmv3.19.5

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/24 10:40:31

KEYSIGHT是德 N1912A功率计:宽带多通道功率测量的标杆之选

156/2558/3328产品概述&#xff1a;在无线通信、雷达系统、半导体测试等高速发展的技术领域&#xff0c;对射频微波功率进行精确、快速、可靠的测量至关重要。作为测试测量行业的领导者&#xff0c;是德科技&#xff08;Keysight Technologies&#xff09;推出的N1912A双通道功…

作者头像 李华
网站建设 2026/2/23 23:52:16

20.什么是依赖注入

什么是依赖注入&#xff1f;依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情况下&#xff0c;将其他对象所依赖的功能对象实例化的模式。这就需要一种机制用来激活相应的组件以提供特定的功能&#xff0c;所以依赖注入是控制反转的基础。否则如果在组件不受框架控制的…

作者头像 李华
网站建设 2026/2/24 21:32:40

Java计算机毕设之基于springboot的西安秦岭野生动物园智能化管理系统基于Springboot+Vue的野生动物园智能化管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/23 22:13:45

文本创作的十字路口:Markdown 与富文本编辑器的底层逻辑博弈

在数字内容创作领域&#xff0c;选择合适的编辑器不仅仅是操作习惯的问题&#xff0c;更是对数据主权、工程效率与长期维护成本的深度权衡。即便到了 2026 年&#xff0c;Markdown 与富文本编辑器&#xff08;Rich Text Editor&#xff09;之间的争论依然活跃&#xff0c;其核心…

作者头像 李华