如何利用 Zeabur 实现 OceanBase 的一键部署

ops/2025/3/18 15:51:17/

引言

  • Zeabur  是一个功能强大且即开即用的自动化部署平台,它不仅能迅速部署多种应用,还支持一键安装 MySQL、PostgreSQL 等数据库服务。
  • Zeabur 拥有众多国内外用户,如 AFFiNE、Bytebase 等企业客户,以及大量全栈和独立开发者。将 OceanBase 集成进 Zeabur 的 第三方服务市场,将能显著降低 OceanBase 的应用门槛,并增强与开发者当前技术栈及开发流程的集成效率。

Zeabur 模板

  • 简单来说,Zeabur 模板 通过 YAML 配置来声明和编排服务,类似于 Docker Compose 和 Kubernetes Object 的能力。并且 Zeabur 还提供 CLI 工具来快速部署、创建和管理模板。
  • 目前 Zeabur 支持两种类型的服务: Docker 镜像和 Git 代码。因此,只需要按照 Zeabur 的 模板语法,声明 OceanBase 服务的部署逻辑即可。

OceanBase 部署模板

  • OceanBase 服务的部署模板如下:
# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:name: OceanBase
spec:description: An enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.coverImage: https://mdn.alipayobjects.com/huamei_fhnyvh/afts/img/A*qI5lT4lL1PEAAAAAAAAAAAAAemfOAQ/originalicon: https://avatars.githubusercontent.com/u/82347605tags:- Databasereadme: |An enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.## Environment VariablesWhen you deploy the OceanBase service, Zeabur will automatically inject the relevant environment variables into other services.- `OB_HOST`: The hostname of the OceanBase service.- `OB_PORT`: The port of the OceanBase service.- `OB_TENANT`: The tenant of the OceanBase service.- `OB_USERNAME`: The username for the OceanBase service.- `OB_PASSWORD`: The password for the OceanBase service.- `OB_URI` or `OB_CONNECTION_STRING`: The connection string for the OceanBase service.services:- name: oceanbaseicon: https://avatars.githubusercontent.com/u/82347605template: PREBUILTspec:source:image: oceanbase/oceanbase-ce:4.3.5.0-100000202024123117ports:- id: databaseport: 2881type: TCPvolumes:- id: datadir: /data/1- id: logdir: /data/log1instructions:- type: TEXTtitle: Command to connect to your OceanBasecontent: mysql -h${PORT_FORWARDED_HOSTNAME} -P${DATABASE_PORT_FORWARDED_PORT} -u${OB_USERNAME}@${OB_TENANT} -p${OB_PASSWORD}- type: TEXTtitle: OceanBase hostcontent: ${PORT_FORWARDED_HOSTNAME}category: Hostname & Port- type: TEXTtitle: OceanBase portcontent: ${DATABASE_PORT_FORWARDED_PORT}category: Hostname & Port- type: TEXTtitle: OceanBase tenantcontent: ${OB_TENANT}category: Credentials- type: TEXTtitle: OceanBase usernamecontent: ${OB_USERNAME}category: Credentials- type: PASSWORDtitle: OceanBase passwordcontent: ${OB_PASSWORD}category: Credentialsenv:# custom env in zeaburOB_HOST:default: ${CONTAINER_HOSTNAME}expose: truereadonly: trueOB_PORT:default: ${DATABASE_PORT}expose: truereadonly: trueOB_TENANT:default: ${OB_TENANT_NAME}expose: truereadonly: trueOB_USERNAME:default: rootexpose: truereadonly: trueOB_PASSWORD:default: ${OB_TENANT_PASSWORD}expose: truereadonly: true# oceanbase-ce docker built-in envOB_SYS_PASSWORD:default: ${PASSWORD}expose: truereadonly: trueOB_TENANT_PASSWORD:default: ${PASSWORD}expose: truereadonly: trueOB_TENANT_NAME:default: testexpose: truereadonly: true
localization:zh-CN:description: 为现代数据架构打造的分布式数据库。readme: |为现代数据架构打造的分布式数据库。## 环境变量当您部署 OceanBase 服务时,Zeabur 会自动将相关的环境变量注入到其他服务中。- `OB_HOST`:OceanBase 服务的主机名。- `OB_PORT`:OceanBase 服务的端口。- `OB_TENANT`:OceanBase 服务的租户。- `OB_USERNAME`:OceanBase 服务的用户名。- `OB_PASSWORD`:OceanBase 服务的密码。- `OB_URI` 或 `OB_CONNECTION_STRING`:OceanBase 服务的连接字符串。zh-TW:description: 為現代數據架構打造的分散式資料庫。readme: |為現代數據架構打造的分散式資料庫。## 環境變數當您部署 OceanBase 服務時,Zeabur 會自動將相關的環境變數注入到其他服務中。- `OB_HOST`:OceanBase 服務的主機名稱。- `OB_PORT`:OceanBase 服務的連接埠。- `OB_TENANT`:OceanBase 服務的租戶。- `OB_USERNAME`:OceanBase 服務的使用者名稱。- `OB_PASSWORD`:OceanBase 服務的密碼。- `OB_URI` 或 `OB_CONNECTION_STRING`:OceanBase 服務的連線字串。
  • 该模板已发布到 Zeabur 的服务市场 OceanBase Deploy Guide。

一键部署 OceanBase

添加独立服务器

  • OceanBase 部署规格 如下:
📢️ 注意: 服务器的可用内存 >= 6G,否则 OceanBase 会启动失败,可通过free -h命令查看。
  • 在 Zeabur 上 添加独立服务器 (如果没有服务器,也可以在 Zeabur 上直接购买,这里我选择阿里云的 ECS):
📢 部分用户可能对于 ECS 的端口访问有安全要求,如果不想全网开放、只针对 Zeabur 开放访问,需要针对 Zeabur 所在网段进行配置。可以参考  这个案例 在  Discord 上提单咨询,Zeabur 的技术支持人员会提供解决方案。
  • 在添加的服务器上「新建项目」。

部署 OceanBase 服务

  • 在新建的项目上「添加服务 -> 从模板部署 -> 搜索并选择 OceanBase」:

  • 如果是国内的服务器,则可能会遇到镜像拉取失败的问题,可以选择「更换国内镜像源」:

  • 然后选择搜索结果的第一个:

  • 镜像地址回填之后,点击「更新」会重新发起部署:

  • 等待几分钟之后,即可部署成功:

  • 部署日志如下:

连接 OceanBase

  • 复制数据库连接串:

  • 使用 MySQL 命令行连接 OceanBase:

  • 更多用法可参考 OceanBase 官方文档 https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002059286。

环境变量

  • 目前仅透出以下环境变量 (如有更多诉求,👏🏻 欢迎留言评论):


http://www.ppmy.cn/ops/166804.html

相关文章

Matlab GPU加速技术

1. GPU 加速简介 (1)为什么使用 GPU 加速? CPU 擅长处理逻辑复杂的串行任务,而 GPU 拥有数千个流处理器,专为并行计算设计。对于大规模矩阵运算、深度学习训练或科学计算等任务,GPU 加速可将计算速度提升数…

二分查找-搜索二维矩阵

74.搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则&#xff0…

数智读书笔记系列018 《多模态大模型:技术原理与实战》解锁多模态从原理到实战的深度探索

书籍初印象:开启多模态大模型之旅 在人工智能飞速发展的今天,多模态大模型已成为推动行业进步的关键力量。《多模态大模型:技术原理与实战》这本书,犹如一把钥匙,为我们打开了深入了解多模态大模型的大门。 它由彭勇…

debian12运行sql server2022(docker)

内容根据微软官方文档,经过测验,顺序执行即可使用docker运行sql server2022 需要正确配置docker,如果没有配置看我先前的文章 因为只有ubuntu18.04才可以直接在系统中下载sql server,所以想要在系统中使用sql server需要使用docke…

Vue 生命周期详解:从创建到销毁的全过程

Vue.js 是一个流行的前端框架,它通过组件化的方式帮助开发者构建用户界面。在 Vue 中,每个组件实例都有其生命周期,从创建、挂载、更新到销毁,Vue 提供了一系列的生命周期钩子函数,允许我们在组件的不同阶段执行自定义…

K8S快速部署

前置虚拟机环境正式部署BUG解决 前置虚拟机环境 每个虚拟机配置一次就好 #关闭防火墙 systemctl stop firewalld systemctl disable firewalld #关闭 selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时 #关闭 swap swapoff -a # 临时 vi…

@RequestBody注解解释

ResponseBody是Spring框架中的一个注解,主要用于将方法的返回值直接写入HTTP响应体中,而不是解析为视图进行跳转 。以下是详细介绍: 作用机制:当一个方法被ResponseBody注解标记后,Spring会根据请求头中的Accept字段&…

【从零开始学习计算机科学】数据库系统(八)数据库的备份和恢复

【从零开始学习计算机科学】数据库系统(八)数据库的备份和恢复 备份和恢复事务故障系统故障磁盘故障其他故障故障的恢复日志日志缓冲区事务故障的恢复系统故障的恢复系统故障的恢复步骤检查点检查点的执行过程备份日志文件备份远程备份恢复策略事务故障恢复策略系统崩溃恢复策…