k8s集群下搭建数据同步工具-canal:canal-server篇

本文介绍在Kubernetes环境中使用Headless Service和StatefulSet搭建Canal Server的方法,解决Pod重启导致IP变化的问题,确保Server以固定域名注册。

k8s集群下搭建数据同步工具-canal:canal-server篇

前言

canal-server的搭建过程与canal-admin大体相同,但需要解决一下一些问题,我们知道,server是通过canal.properties中的register.ip向admin注册server信息的,但是在k8s环境下,pod的ip是不固定的,每一次pod重启其ip都会发生变化,也就会在admin中重新注册一个新的server,这种情况下程序基本是不可用的。

本文提供一种方法,通过headlessService和StatefulSet方式搭建canal-server,使canal-server以固定域名的方式向canal-admin注册,解决pod重启ip变化,重新注册新server的问题。

容器化

canal-server

环境准备

  • yum源文件 CentOS6-Base-163.repo
  • jdk包 jdk-8u201-linux-x64.tar.gz
  • canal-server程序包 canal.server-1.1.4.tar.gz
  • centos基础镜像 centos:6.6

将准备的文件与Dockerfile放在同一文件夹下

  • 解压canal-server程序
mkdir canal-server
tar -zxvf canal.deployer-1.1.4.tar.gz -C canal-server
  • 在canal-server/bin目录下创建文件config.sh(这部分主要是为了实现server在k8s中的自动注册过程中容器重启后ip变化的问题) 同时注意将start.sh文件中启动命令改为前台启动(删掉启动命令最后的 & )
cat > /home/canal/conf/canal.properties <<- EOF
# register ip
# ${HOSTNAME} 为podname,canal-server-discovery-svc-stable为svc名称
# StatefulSet类型pod名称是固定的,k8s集群内pod域名规则为pod_name.svc_name.namespace.svc.cluster.local
canal.register.ip = ${HOSTNAME}.canal-server-discovery-svc-stable.testcanal.svc.cluster.local

# canal admin config
canal.admin.manager = canal-adm
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值