首批通过分布式安全可靠测评,为关键业务系统打造
使用容器升级 OCP
更新时间:2024-03-11 17:06:01
本节为您介绍如何使用 Docker 容器升级 OCP。
前提条件
部署 OCP 的宿主机上已安装 Docker,并且 docker 命令在系统的 PATH 路径中可以找到。目前暂不兼容 podman-docker,Docker 的安装请参考 安装 Docker。
停止 OCP 服务
在升级 OCP 前,您需先停止 OCP 服务。根据部署方式不同,停止 OCP 服务的方式也有所不同。
停止 OCP 容器
若待升级的 OCP 为容器方式部署的,可以通过如下命令停止容器:
docker kill ${container_name}
停止 OCP 进程
若待升级的 OCP 为 RPM 包方式部署的,可以通过如下命令停止进程:
# find ocp process
ps -ef | grep ocp
# kill ocp process
kill -9 ${pid_of_OCP}
拉取 OCP 镜像
在升级 OCP 前,您需先拉取 OCP 镜像到本地。
在线环境
若您的部署环境可以正常访问 dockerhub,可直接通过如下命令来拉取 OCP 镜像。
docker pull oceanbase/ocp-ce:4.2.1离线环境
若您的部署环境无法访问 dockerhub,则需要在其他可以正常访问的主机上先将镜像拉取下来,再导入到部署环境中。
# execute at a host being able to access dockerhub docker pull oceanbase/ocp-ce:4.2.1 docker save -o ocp-ce.tar oceanbase/ocp-ce:4.2.1 scp ocp-ce.tar ${user}@${target}:/tmp/ # execute at target host docker load < /tmp/ocp-ce.tar
拉取 OCP 镜像后,您可以通过如下命令检查镜像的拉取情况,若得到如下图所示的结果则表示镜像已经拉取或者导入成功。
docker images | grep ocp-ce

启动 OCP 容器
使用原 OCP 的 metadb 启动新版本的 OCP 容器完成升级。
注意
OCP 的容器名不能和升级前的容器名相同,否则会启动失败。
使用如下命令来启动 OCP 容器:
## set environment parameters
export OCP_CPU_COUNT=4
export OCP_MEMORY_GB=8
export OCP_METADB_HOST=xxx.xxx.xxx.xxx # do not use 127.0.0.1 or localhsot
export OCP_METADB_PORT=2881
export OCP_METADB_USER=root@ocp_meta
export OCP_METADB_PASSWORD=ocp_meta_password
export OCP_METADB_DBNAME=ocp_meta
export OCP_MONITORDB_USER=root@ocp_monitor
export OCP_MONITORDB_PASSWORD=ocp_monitor_password
export OCP_MONITORDB_DBNAME=ocp_monitor
export OCP_CONFIG_PROPERTIES=`cat << EOF
server.port:8080
ocp.site.url:http://xxx.xxx.xxx.xxx:8080
obsdk.ob.connection.mode:direct
EOF
`
# start ocp container
docker run -d --name ocp-421 \
--network host \
--cpu-period 100000 --cpu-quota ${OCP_CPU_COUNT}00000 --memory=${OCP_MEMORY_GB}G \
-e OCP_METADB_HOST="${OCP_METADB_HOST}" \
-e OCP_METADB_PORT="${OCP_METADB_PORT}" \
-e OCP_METADB_DBNAME="${OCP_METADB_DBNAME}" \
-e OCP_METADB_USER="${OCP_METADB_USER}" \
-e OCP_METADB_PASSWORD="${OCP_METADB_PASSWORD}" \
-e OCP_MONITORDB_DBNAME="${OCP_MONITORDB_DBNAME}" \
-e OCP_MONITORDB_USER="${OCP_MONITORDB_USER}" \
-e OCP_MONITORDB_PASSWORD="${OCP_MONITORDB_PASSWORD}" \
-e OCP_CONFIG_PROPERTIES="${OCP_CONFIG_PROPERTIES}" \
oceanbase/ocp-ce:4.2.1
环境变量说明:
| 变量名 | 含义 |
|---|---|
| OCP_CPU_COUNT | 分配给 OCP 容器的 CPU 核心数,请参考 主机规划。 |
| OCP_MEMORY_GB | 分配给 OCP 容器的内存(单位是 GiB),请参考 主机规划。 |
| OCP_METADB_HOST | OCP metadb 连接地址。 |
| OCP_METADB_PORT | OCP metadb 连接端口。 |
| OCP_METADB_DBNAME | OCP metadb 数据库名。 |
| OCP_METADB_USER | OCP metadb 用户。如果直连 observer 可以使用 user@tenant 形式;如果使用 obproxy 可以使用 user@tenant#cluster 形式。 |
| OCP_METADB_PASSWORD | OCP metadb 用户密码。 |
| OCP_MONITORDB_DBNAME | OCP monitordb 数据库名。 |
| OCP_MONITORDB_USER | OCP monitordb 用户。如果直连 observer 可以使用 user@tenant 形式;如果使用 obproxy 可以使用 user@tenant#cluster 形式。 |
| OCP_MONITORDB_PASSWORD | OCP monitordb 用户密码。 |
| OCP_CONFIG_PROPERTIES | OCP 系统参数配置,可以设置多行,每行一个系统参数,用 ‘:’ 分割。 |
检查 OCP 升级结果
OCP 容器启动之后,需要等待 metadb 初始化和服务启动,一般需要两分钟左右的时间,在浏览器中输入 OCP 访问地址,出现登录页面即说明服务启动成功。

若 OCP 服务长时间未启动成功,可以通过查看日志来确认 OCP 的状态。
# use the following command to log into ocp container docker exec -it ocp-421 bash # check ocp bootstrap log less /home/admin/logs/ocp/bootstrap.log # check ocp runtime log less /home/admin/logs/ocp/ocp.log查看 OCP 版本号,确认 OCP 已升级为目标版本。
