polardbxoperatordocs/ops/lifecycle/1-create-cdc-node-example.md

110 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# CDC节点创建
PolarDB-X CDC 组件内置于 PolarDB-X 实例中,想要体验 PolarDB-X CDC 的功能,需要拉起一个 PolarDB-X 集群。
## 全局Binlog
* 通过 PXD 部署:参考 [通过PXD部署集群](https://doc.polardbx.com/quickstart/topics/quickstart-pxd-cluster.html),可以在拓扑文件中编辑 CDC 相关的标签值指定 CDC 集群的配置。
* `image`CDC 节点的镜像
* `replica`CDC 节点的个数
* `nodes`:每个 CDC 节点的具体配置
* `resources`:分配给 CDC 节点的内存等资源
* 通过 K8S 部署:参考 [通过K8S部署](https://doc.polardbx.com/quickstart/topics/quickstart-k8s.html),默认会创建一个 CDC 节点,负责全局 Binlog 的生成。
## Binlog多流
Binlog 多流目前只支持使用 K8S 进行部署,在进行部署之前需要准备好`minikube`和`PolarDB-X Operator`环境,环境配置方法参考 [准备工作](https://doc.polardbx.com/operator/deployment/1-installation.html) 。
接下来,我们需要准备一个描述 PolarDB-X 集群的 YAML 文件,示例如下:
```yaml
apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
name: polardbx-test
spec:
config:
cdc:
envs:
binlogx_stream_group_name: "group1"
binlogx_stream_count: "3"
binlogx_transmit_hash_level: "RECORD"
topology:
nodes:
cdc:
replicas: 2
xReplicas: 2
template:
resources:
limits:
cpu: "1"
memory: 1Gi
requests:
cpu: 500m
memory: 500Mi
image: polardbx/polardbx-cdc:latest
cn:
replicas: 1
template:
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: 500m
memory: 1Gi
image: polardbx/polardbx-sql:latest
dn:
replicas: 2
template:
engine: galaxy
resources:
limits:
cpu: "2"
memory: 8Gi
requests:
cpu: 500m
memory: 500Mi
image: polardbx/polardbx-engine:latest
gms:
template:
engine: galaxy
resources:
limits:
cpu: "1"
memory: 1Gi
requests:
cpu: 500m
memory: 500Mi
image: polardbx/polardbx-engine:latest
```
注:目前 `PolarDB-X Operator` 仅支持拉起单个多流group并且需要同时拉起全局Binlog。
其中多流相关的配置如下:
* `xReplicas`: 多流节点个数
* `binlogx_stream_group_name`:多流流组名称
* `binlogx_stream_count`:流的个数
* `binlogx_transmit_hash_level`:多流数据分发的哈希规则,目前支持三种规则:
* `RECORD`:按行哈希
* `TABLE`:按表哈希
* `DATABASE`:按库哈希
使用下面的命令创建 PolarDB-X Cluster 对象:
```shell
kubectl create -f polardbx-test.yaml
```
使用下面的命令观察 PolarDB-X Cluster 对象的状态:
```shell
kubectl get pxc polardbx-test
```
```text
NAME GMS CN DN CDC PHASE DISK AGE
polardbx-test 0/1 0/2 0/2 0/3 Creating 5s
```
当状态中 PHASE 为 Running 时PolarDB-X 集群就创建完成了。
```shell
kubectl get pxc polardbx-test
```
```text
NAME GMS CN DN CDC PHASE DISK AGE
polardbx-test 1/1 2/2 2/2 3/3 Running 6.2Gi 63s
```
使用下面的命令获得所有Binlog多流Pod的名称
```shell
kubectl get pods -l polardbx/group=g-1
```