K8S上部署ob、obproxy 过程中,ob-configserver是否选择的问题

【问题描述】
以下是我理解的:
如果选择使用ob-configserver,observer容器化ip变化的问题,会在变化后推送给ob-configserver,实现元数据变化的同步,obproxy再获取最新的CONFIG_URL来路由。
但是就对ob-configserver 产生了强依赖,这个组件对集群高可用产生了影响。
而且文档上这个组件默认元数据存储使用sqlite,不持久化,导致没办法多副本,重启后还有数据丢失问题。如果使用mysql,又存在依赖更多中间件问题,整个集群复杂度不断上升。

如果不使用ob-configserver,使用rs_list,文档中明确说了:当 OceanBase 数据库中 Root Service 列表有变动时,需手动更新 rs_list 配置项,并重启 ODP 使变动生效。显然针对容器化ip会变化的场景 不适用。

总结就是:容器化环境下 必须使用ob-configserver,为了简化架构结构,使用sqlite还要改成单副本持久化模式。ob-configserver 如果异常没有成功拉起导致整个集群不稳定。

请问我理解的这方面是否正确,有无这方面的尴尬问题?

另外问一下,obproxy 能否也成为可选项,外置LB直接负载均衡observer1、2、3,会有什么问题?

1 个赞

默认是sqlite类型 可以修改 使用ob mysql类型

  • database_type:数据库类型,提供 sqlite3mysql,默认为 sqlite3 类型,推荐使用 mysql 类型。
  • connection_url:数据库连接 URL。选择 sqlite3 类型时默认为 $home_path/.data.db?cache=shared&_fk=1;选择 mysql 类型时,connection_url 可以是 OceanBase 数据库,也可以是原生 MySQL。指定的数据库用户需要有 URL 里对应库 DDL 和 DML 的权限,需注意的是,使用 OceanBase 数据库时这里的库名请勿使用 oceanbase 库,否则会提示没有权限。

obproxy和LB 功能不一样 obproxy有sql路由功能 简单的解析 路由到哪个observer上

1 个赞

没有回答到我想问的 点上。麻烦再给解答一下。

  1. 容器化observer ip会变化的问题,必须使用ob-configserver ,是否?
  2. ob-configserver不高可用影响ob集群的稳定性。 是否?
  3. 保证ob-configserver 高可用性,那就必须依赖mysql走持久化。 是否?

集群复杂度先不说,我都用国产数据库了,又要依赖一个mysql,是不是尴尬?

1 个赞

1、是的2、我在问一下相关的同学 给你准确的答案3、可以使用ob mysql模式或者mysql

1 个赞

2、ob-configserver不能集群部署 本身configserver高可用的要求不是很高 一个就可以管理很多集群 如果是生产环境的话 ob不建议使用容器化部署