拥抱云原生,如何将开源项目用k8s部署?

k8s以及云原生相关概念近年来一直比较火热,阿丸最近搞了个相关项目,小结一下。
在这里插入图片描述

本文将重点分享阿里开源项目otter适配k8s部署的改造过程,其中的改造过程和技巧应该适用于将大多数开源项目改造到k8s进行部署。

1.背景

otter是阿里开源的分布式数据库同步系统,基于数据库增量日志解析,并准实时同步到本机房或异地机房的mysql/oracle数据库(相关内容可以参考https://github.com/alibaba/otter,本文不做过多赘述)。

为了充分利用物理资源、快速扩容同步节点、拥抱云原生,决定使用k8s部署otter。

otter的项目整体上自成一体,出于改造成本考虑,尽量在项目已有基础上,做一些适配,不改动源代码。

本文将重点分享对于otter适配k8s部署的改造过程,有不当之处,还请多多指教。

涉及到几个核心内容:

  • otter基本架构
  • dockerfile编写
  • deployment编写
  • 启动脚本改造
  • K8s中固定ip/port访问

2.otter的基本架构

在这里插入图片描述

典型管理系统架构,manager(web管理)+node(工作节点)

  • manager运行时推送同步配置到node节点
  • node节点将同步状态反馈到manager上
  • 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作
  • 基于Canal开源产品,获取数据库增量日志数据。当然,otter采用了canal的嵌入式模式,不是独立的canal节点。

基于以上部署架构,我们只需要将otter-manager和otter-node部署到k8s上。

尤其是otter-node,需要利用k8s实现节点快速水平扩展、计算性能弹性扩缩容。

2.Dockerfile编写

2.1 otter-manager的Dockerfile

otter-manager比较简单,包括几个步骤:

  • 使用一个centos的基础镜像
  • 设置时区
  • 创建目录
  • 拷贝下载好的manager.deployer-4.2.18到指定目录
  • 使用启动startup-new.sh脚本启动(这里对原本的启动脚本做了一些改造,后文进行详述)

具体如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值