前提条件
私有镜像仓库(制作connect镜像)
Harbor原文地址:【DevOps】Harbor私有镜像仓库并利用cert-manager自签名证书开启HTTPS(helm方式安装) - Elijah Blog (sreok.cn)
docker registry:
安装OLM
1 | curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.20.0/install.sh | bash -s v0.20.0 |
安装Operator
1 | kubectl create -f https://operatorhub.io/install/strimzi-kafka-operator.yaml |
部署kafka集群
1 | apiVersion: kafka.strimzi.io/v1beta2 |
部署Kafka Connect 集群(构建MySQL插件镜像)
1 | apiVersion: kafka.strimzi.io/v1beta2 |
如果已存在可用镜像,使用以下方式
部署Kafka Connect 集群(使用已有镜像)
1 | apiVersion: kafka.strimzi.io/v1beta2 |
创建MySQL Connector
1 | apiVersion: kafka.strimzi.io/v1beta2 |
注意事项
多库多表同步
编辑mysql-connect.yaml
或者kubectl edit kafkaconnector -n kafka debezium-connector-mysql
推荐修改yaml文件,因为edit不会立即更新
示例内容:
1 | apiVersion: kafka.strimzi.io/v1beta2 |
1 | # 修改以下内容,库与库之间、表于表之间用英文逗号隔开 |
修改后重新应用
1 | kubectl delete -f mysql-connect.yaml -n kafka |
验证kafka连接状态(排查时使用)
1 | kubectl get kafkaconnect -n kafka |
验证mysql连接状态
1 | kubectl get kafkaconnector -n kafka |
查看表更新
1 | # 启动一个pod watcher监控数据表增删改,只作用database.include.list定义的数据库 |
查看数据更新
1 | # 启动一个pod watcher2监控user表数据增删改 |
如果提示watcher或watcher2 Already exists,需要执行下面命令删除pod
1 | kubectl delete pod -n kafka watcher --force |