oceanbase部署时如何能用hostname代替IP

【 使用环境 】测试环境
【 OB or 其他组件 】OB、proxy、binlog、configserver
【 使用版本 】4.3.3.1
【问题描述】
由于业务需要,我们需要在多个机房部署oceanbase数据库,还使用了binlog,我们对性能要求不高,只希望能快速部署,因此我们选择了docker部署的方案。

使用docker-compose编排容器,docker-compose.yml的文件内容参见:
docker-compose.yml.txt (780 字节)

其中oceanbase、oblogproxy在部署时都需要指定服务器IP地址,但docker环境下IP地址是不固定的。
请问如何能指定hostname或域名(我们有内网DNS服务器)

另外,我发现oceanbase在启动时好像有健康检查,好像会检查oblogproxy,但oblogproxy可能还未启动,导致启动失败,如何能关闭健康检查?

1 个赞

目前ob不支持hostname代替IP?健康检查?你截图发一下

部署ob时有一个环境变量,我这样配置的:
export OB_SERVER_IP=db

报上面的错

1 个赞

你的配置yaml文件发一下 你应该是用环境变量代替ip地址 这样yaml文件在解析的时候 找不到报错了 这样是不支持的

config.yml.txt (562 字节)
配置文件是这个吗?

我是基于这个docker镜像启动的: oceanbase/oceanbase-ce - Docker Image | Docker Hub

它里面原本就有OB_SERVER_IP这个环境变量,我只是将它替换成了hostname

不支持这样 不能识别出来 请使用ip地址 例如:
docker run -p 2881:2881 --name obstandalone -e MODE=normal -e OB_TENANT_PASSWORD=password -e OB_SERVER_IP=127.0.0.1 -d oceanbase/oceanbase-ce

但是容器的IP地址会变,这个问题怎么解决呢

不支持 hostname 的方式设置启动 ip 地址,这个是 observer 内核层面的限制,目前没有什么好的办法解决,如果需要固定的 ip 地址传 127.0.0.1 是否可以,这个只针对 observer bootstrap 实际上去连接 observer 可以用 hostname

这个是生产环境部署吗,oceanbase-ce 这个镜像主要用于测试的,如果生产环境使用容器的形式可以用 ob-operator, https://oceanbase.github.io/ob-operator/