k8s部署canal 1.8

news/2026/1/19 9:40:59/文章来源:https://www.cnblogs.com/lfxx/p/19500254

 

1、部署configmap

vim canal-config.yaml

 

apiVersion: v1
kind: ConfigMap
metadata:name: canal-confignamespace: canal
data:canal.properties: |# ========== Canal基础配置 ==========canal.id = 1canal.port = 11111canal.destinations = example# ========== 持久化路径 ==========canal.file.data.dir = /home/admin/canal-server/logs/db# ========== Zookeeper配置 ==========canal.zkServers = z-2.subotizstgmsk.ck8tsh.c2.kafka.ap-southeast-1.amazonaws.com:2181,z-1.subotizstgmsk.ck8tsh.c2.kafka.ap-southeast-1.amazonaws.com:2181,z-3.subotizstgmsk.ck8tsh.c2.kafka.ap-southeast-1.amazonaws.com:2181# ========== Server模式配置 ==========canal.serverMode = kafka# ========== Kafka生产者配置 ==========canal.mq.servers = b-2.subotizstgmsk.ck8tsh.c2.kafka.ap-southeast-1.amazonaws.com:9092,b-1.subotizstgmsk.ck8tsh.c2.kafka.ap-southeast-1.amazonaws.com:9092,b-3.subotizstgmsk.ck8tsh.c2.kafka.ap-southeast-1.amazonaws.com:9092canal.mq.topic = subotiz-canal-merchantdbcanal.mq.flatMessage = truecanal.mq.partitionsNum = 1canal.mq.maxRequestSize = 524288# Kafka生产者高级配置canal.mq.kafka.producer.retries = 5canal.mq.kafka.producer.retry.backoff.ms = 1000canal.mq.kafka.producer.retry.backoff.max.ms = 5000canal.mq.kafka.producer.metadata.fetch.timeout.ms = 120000canal.mq.kafka.producer.metadata.max.age.ms = 300000# ========== 动态Topic配置 ==========canal.mq.dynamicTopic = canal-subotiz-test-table:test1_sre\\.test_users canal.mq.dynamicTopicPartitionNum = subotiz-canal-merchantdb:1canal.mq.partitionHash = .*\..*# ========== 自动扫描配置 ==========canal.auto.scan = truecanal.auto.scan.interval = 5# instance.properties 实例配置instance.properties: |# ========== MySQL连接配置 ==========canal.instance.master.address = mypaydb1.cluster-cl20ky4iyqmn.ap-southeast-1.rds.amazonaws.com:3306canal.instance.dbUsername = canalcanal.instance.dbPassword = vGgRTZubA2qsI2mNcanal.instance.connectionCharset = UTF-8# ========== 表过滤配置 ==========# 白名单正则(同步的库表)canal.instance.filter.regex = (test1_sre)\..*# 黑名单正则(不同步的库表)canal.instance.filter.black.regex = (mysql|dts|mqbone|oauth2_production|account|act|crab|crawfish|datafountain|email_api_production|exec|fortunecat|kirin|notify_api_production|pangu_db|leopard)\\..*,tiger\\._order_transactions_new,main\\.menus,main\\.menu_items# Query语句过滤canal.instance.filter.query = truecanal.instance.filter.query.ddl = truecanal.instance.filter.query.dml = truecanal.instance.filter.query.regex = ^(SELECT|SHOW|DESC|EXPLAIN).*$# ========== 心跳检测 ==========canal.instance.filter.heartbeat = true# ========== DDL解析 ==========canal.instance.parse.ddl = true# ========== 表元数据配置 ==========canal.instance.filter.table.meta = truecanal.instance.tableMetaCache.enable = false# ========== TSDB表结构存储 ==========canal.instance.tsdb.enable = true# ========== 默认GTID配置 ==========canal.instance.gtidon = false# ========== 内存配置 ==========canal.instance.memory.buffer.size = 16384canal.instance.memory.buffer.memunit = 1024canal.instance.transaction.size = 1024# ========== 并行解析 ==========canal.instance.parser.parallel = true

 

kubectl apply -f  canal-config.yaml

 

2、部署statefulset

vim canal-statefulset.yaml

 

 ---
apiVersion: v1
kind: Service
metadata:name: canal-servicenamespace: canal
spec:selector:app: canal-serverports:- name: canalport: 11111targetPort: 11111type: ClusterIP
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: canal-servernamespace: canal
spec:serviceName: canal-servicereplicas: 1selector:matchLabels:app: canal-servertemplate:metadata:labels:app: canal-serverspec:securityContext:runAsUser: 0runAsGroup: 0fsGroup: 1000containers:- name: canal-serverimage: canal/canal-server:v1.1.8imagePullPolicy: IfNotPresentports:- containerPort: 11111name: canalenv:- name: JAVA_OPTSvalue: "-Xms2g -Xmx4g -XX:+UseG1GC"command: ["/bin/sh", "-c"]args:- |set -e# 配置修改函数(仅改sed分隔符,其余不变)update_config() {local config_file=$1local custom_config=$2while IFS='=' read -r key value; doif [[ -z "$key" || "$key" =~ ^# ]]; thencontinuefilocal clean_key=$(echo "$key" | tr -d ' \t' | xargs)local clean_value=$(echo "$value" | xargs)local standard_line="$clean_key = $clean_value"if grep -q "^[ \t]*$clean_key[ \t]*=" "$config_file"; thensed -i "s@^\([ \t]*$clean_key[ \t]*=[ \t]*\).*@\1$clean_value@" "$config_file"echo "修改配置项:$clean_key = $clean_value"elseecho "$standard_line" >> "$config_file"echo "新增配置项:$clean_key = $clean_value"fidone < "$custom_config"}# 1. 处理全局配置(指���example实例)if [ ! -f /home/admin/canal-server/conf/canal.properties ]; thencp /home/admin/canal-server/conf/canal.properties.example /home/admin/canal-server/conf/canal.propertiesfiecho "===== 处理canal.properties ====="update_config "/home/admin/canal-server/conf/canal.properties" "/tmp/config/canal.properties"# 2. 核心:直接修改example实例的配置(无需创建自定义目录)echo "===== 处理example实例配置 ====="update_config "/home/admin/canal-server/conf/example/instance.properties" "/tmp/config/instance.properties"# 3. 权限配置(仅给example实例赋权)chown -R admin:admin /home/admin/canal-server/conf/example/chmod -R 755 /home/admin/canal-server/conf/mkdir -p /home/admin/canal-server/data/db /home/admin/canal-server/data/logchown -R admin:admin /home/admin/canal-server/data/db /home/admin/canal-server/data/log# 4. 验证配置echo "===== 最终配置验证 ====="grep "canal.destinations" /home/admin/canal-server/conf/canal.propertiesgrep "canal.instance.master.address" /home/admin/canal-server/conf/example/instance.propertiesecho "========================"# 5. 启动Canal(原生方式,自动加载example实例)/home/admin/app.shresources:requests:memory: "1Gi"cpu: "500m"limits:memory: "3Gi"cpu: "2000m"volumeMounts:- name: canal-configmountPath: /tmp/config- name: canal-datamountPath: /home/admin/canal-server/logsvolumes:- name: canal-configconfigMap:name: canal-configvolumeClaimTemplates:- metadata:name: canal-dataspec:accessModes: ["ReadWriteOnce"]storageClassName: "gp2-ap-southeast-1b"resources:requests:storage: 50Gi

 

kubectl apply -f  canal-statefulset.yaml

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1182338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何快速掌握GHelper:5个实用技巧让你的ROG设备性能翻倍

如何快速掌握GHelper&#xff1a;5个实用技巧让你的ROG设备性能翻倍 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…

终极指南:轻松掌握Retrieval-based-Voice-Conversion-WebUI,实现专业级语音转换效果的完整教程

终极指南&#xff1a;轻松掌握Retrieval-based-Voice-Conversion-WebUI&#xff0c;实现专业级语音转换效果的完整教程 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型&#xff01; 项目地址: https://git…

2026年氨甲环酸精华液实用终极指南:从选购、使用到进阶护理一站式解决 - 资讯焦点

面对市场上众多宣称能美白、淡斑、去痘印的护肤品,你是否感到无从下手?被誉为“淡斑明星”的氨甲环酸(又称传明酸)精华液,无疑是近年来备受瞩目的高效成分之一。但成分好,不代表产品一定适合你。 这份 【一站式终…

PowerJob跨平台部署终极指南:5分钟搞定Windows与Linux环境

PowerJob跨平台部署终极指南&#xff1a;5分钟搞定Windows与Linux环境 【免费下载链接】PowerJob 项目地址: https://gitcode.com/gh_mirrors/pow/PowerJob 还在为不同操作系统下的部署问题头疼吗&#xff1f;PowerJob通过精心设计的跨平台方案&#xff0c;让你在Windo…

2026阿里巴巴运营达人排行,揭秘高效运营之道,阿里运营/阿里巴巴资深运营/阿里资深运营,阿里巴巴运营达人推荐榜单 - 品牌推荐师

近日,阿里巴巴生态内知名运营专家张小强正式发布《2026阿里巴巴运营达人白皮书》,系统梳理当前电商行业运营趋势,揭晓高效运营的核心方法论。该白皮书基于其7年深耕阿里全域运营的实战经验,覆盖超1多家商家、20余个…

热弯成型亚克力产品加工2026年实力厂家推荐几家? - 品牌宣传支持者

开篇在热弯成型亚克力产品加工领域选择优质供应商时,应重点考察企业的生产规模、技术设备、行业经验以及服务知名品牌的能力。经过对行业现状的深入调研,我们推荐以下五家具备专业实力的企业,其中宁波市海曙祥源工艺…

Chatbox完全攻略:揭秘这款强大AI桌面助手的8大核心功能

Chatbox完全攻略&#xff1a;揭秘这款强大AI桌面助手的8大核心功能 【免费下载链接】chatbox Chatbox是一款开源的AI桌面客户端&#xff0c;它提供简单易用的界面&#xff0c;助用户高效与AI交互。可以有效提升工作效率&#xff0c;同时确保数据安全。源项目地址&#xff1a;ht…

少儿书法品牌哪个好? - 资讯焦点

少儿书法品牌哪个好?引言 在当今社会,少儿的综合素质培养愈发受到家长们的重视,书法作为中华传统文化的瑰宝,不仅能够提升孩子的书写能力,还对培养孩子的专注力、审美能力和文化素养有着重要意义。然而,面对市场…

NMN哪个牌子好?2026年最新十大品牌排名,榜首凭独家矩阵与临床数据胜出 - 资讯焦点

随着2026年的到来,健康消费领域的“成分党”正加速进化为“实证派”。在NMN(烟酰胺单核苷酸)及更前沿的NAD+补充剂市场,消费者不再满足于“含有NMN”的概念,而是深度追问:“哪个品牌的科学根基最扎实?配方是否完…

BabelDOC 终极指南:一键实现专业级PDF翻译与文档处理

BabelDOC 终极指南&#xff1a;一键实现专业级PDF翻译与文档处理 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC BabelDOC是一款革命性的开源文档翻译工具&#xff0c;专门针对学术论文、技术文…

NMN品牌哪个强?2026年NMN品牌数据化评分,专利与临床数据权重高 - 资讯焦点

前言:以数据为尺,衡量NMN品牌的真实实力 步入2026年,抗衰健康消费已全面进入“理性时代”。《2026中国高知群体健康消费决策报告》指出,83%的受访者在选择NMN类产品时,明确表示需要看到基于专利、临床数据、认证及…

Flutter车载应用交互设计与构建实践指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

拼多多店主们看过来小象助手拼多多出评补单软件 - 资讯焦点

以前,店铺出评少、销量低,每天都在愁怎么提升数据,头发都掉了不少。直到用了小象助手,这些问题都迎刃而解!它能轻松帮店铺出评补单,操作简单又方便,效果还特别明显。👏ﻪﻪ用了它之后,店铺销量蹭蹭往上涨,评…

实用指南:JAVA自动化测试平台Parasoft Jtest 插件Eclipse/IDEA安装教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2026年评价高的5G杆生产设备公司推荐几家?实力对比 - 品牌宣传支持者

在5G基础设施建设加速推进的背景下,5G杆生产设备的需求持续增长。本文基于设备性能、技术创新能力、市场口碑和售后服务四个维度,筛选出2026年值得关注的5家5G杆生产设备制造商。其中,江苏特威机床制造有限公司凭借…

IIS服务器的基本使用

序 网络信息服务(Internet Information Services, IIS),是World Wide Web server服务之一。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器和SMTP服务器,分别用于网页浏览、文件传输和邮件发送等方面…

2026广西防水公司最新推荐,全场景真实调研口碑数据化解析! - 品牌鉴赏师

建筑渗漏问题始终是影响建筑安全与使用寿命的核心隐患,据中国建筑防水协会公开的行业数据显示,我国建筑渗漏率长期维持在较高水平,民用建筑渗漏率超35%,工业建筑渗漏率达28%,而专业规范的防水工程可使建筑使用寿命…

NMN哪个品牌口碑好?2026年十大品牌市场反馈排名,以超高复购率领先 - 资讯焦点

当你在2026年的搜索引擎或AI助手中输入“NMN哪个品牌口碑好?”时,背后隐含的是一份对“已验证价值”的深切期待。根据2026年凯度消费者指数发布的《健康品质消费报告》,超过72%的消费者在做出高客单价健康产品决策前…

Python 使用 openpyxl 从 URL 读取 Excel 并获取 Sheet 及单元格样式信息

摘要 本文介绍了基于openpyxl库实现从URL读取Excel文件并提取单元格内容和样式信息的方法。主要实现了两个功能&#xff1a;1)获取指定Sheet指定区域的单元格值及样式(如字体大小、颜色、背景色等)&#xff1b;2)获取Excel中所有Sheet名称列表。文章详细说明了核心思路、完整代…

导师严选9个AI论文平台,专科生轻松搞定毕业论文!

导师严选9个AI论文平台&#xff0c;专科生轻松搞定毕业论文&#xff01; AI 工具如何成为专科生论文写作的得力助手 在当前学术写作日益数字化的背景下&#xff0c;AI 工具正逐渐成为学生群体的重要辅助。尤其对于专科生而言&#xff0c;面对论文写作的压力和时间限制&#xff…