配置 ob-operator
本文介绍 ob-operator 的启动参数和使用到的环境变量以及修改方法。用户可通过改变启动参数和环境变量影响 ob-operator 的行为。
启动参数
| 参数名 | 含义 | 默认值 | deploy 配置 |
|---|---|---|---|
| namespace | 监听的命名空间,留空表示监听所有命名空间 | 空 | 空 |
| manager-namespace | ob-operator 运行的命名空间 | oceanbase-system | oceanbase-system |
| metrics-bind-address | ob-operator 提供 Prometheus 指标的服务端口 | :8080 | 127.0.0.1:8080 |
| health-probe-bind-address | ob-operator 进程健康探针绑定端口 | :8081 | :8081 |
| leader-elect | 启动 ob-operator 时是否采用选主流程 | false | true |
| log-verbosity | 日志输出量,为 0 输出关键信息,为 1 输出调试信息,为 2 输出溯源信息 | 0 | 0 |
环境变量
| 环境变量名 | 含义 | deploy 配置 |
|---|---|---|
| TELEMETRY_REPORT_HOST | 遥测采集数据收集端 | https://openwebapi.oceanbase.com |
| TELEMETRY_DEBUG | 设置为 true 可开启遥测采集调试模式 | 空 |
| DISABLE_WEBHOOKS | 设置为 true 可禁用 webhooks 校验 | 空 |
| DISABLE_TELEMETRY | 设置为 true 可禁用遥测采集模块,遥测采集模块会采集集群环境和事件信息脱敏后发送给 OceanBase,期望通过这些数据帮助改善 ob-operator | 空 |
| OB_OPERATOR_DATABASE_CONNECTIONLRUCACHESIZE | 数据库连接 LRU 缓存大小。默认值为 1000。 | 空 |
| OB_OPERATOR_RESOURCE_DEFAULTDISKEXPANDPERCENT | 默认磁盘扩容百分比。默认值为 10。 | 空 |
| OB_OPERATOR_RESOURCE_DEFAULTLOGPERCENT | 默认日志磁盘使用百分比。默认值为 80。 | 空 |
| OB_OPERATOR_RESOURCE_INITIALDATADISKUSEPERCENT | 初始数据磁盘使用百分比。默认值为 20。 | 空 |
| OB_OPERATOR_RESOURCE_DEFAULTDISKUSEPERCENT | 默认磁盘使用百分比。默认值为 95。 | 空 |
| OB_OPERATOR_RESOURCE_DEFAULTMEMORYLIMITPERCENT | 默认内存限制百分比。默认值为 90。 | 空 |
| OB_OPERATOR_RESOURCE_DEFAULTMEMORYLIMITSIZE | 默认内存限制大小。默认值为 0M。 | 空 |
| OB_OPERATOR_RESOURCE_DEFAULTDATAFILEMAXSIZE | 默认数据文件最大大小。默认值为 0M。 | 空 |
| OB_OPERATOR_RESOURCE_DEFAULTDATAFILENEXTSIZE | 默认数据文件增长大小。默认值为 1G。 | 空 |
| OB_OPERATOR_RESOURCE_MINMEMORYSIZE | 最小内存大小。默认值为 8Gi。 | 空 |
| OB_OPERATOR_RESOURCE_MINDATADISKSIZE | 最小数据磁盘大小。默认值为 30Gi。 | 空 |
| OB_OPERATOR_RESOURCE_MINREDOLOGDISKSIZE | 最小 Redo 日志磁盘大小。默认值为 30Gi。 | 空 |
| OB_OPERATOR_RESOURCE_MINLOGDISKSIZE | 最小日志磁盘大小。默认值为 10Gi。 | 空 |
| OB_OPERATOR_TIME_TENANTOPRETRYTIMES | 租户操作重试次数。默认值为 9。 | 空 |
| OB_OPERATOR_TIME_TENANTOPRETRYGAPSECONDS | 租户操作重试间隔(秒)。默认值为 9。 | 空 |
| OB_OPERATOR_TIME_TASKMAXRETRYTIMES | 任务最大重试次数。默认值为 99。 | 空 |
| OB_OPERATOR_TIME_TASKRETRYBACKOFFTHRESHOLD | 任务重试退避阈值。默认值为 16。 | 空 |
| OB_OPERATOR_TIME_PROBECHECKPERIODSECONDS | 探针检查周期(秒)。默认值为 2。 | 空 |
| OB_OPERATOR_TIME_PROBECHECKDELAYSECONDS | 探针检查延迟(秒)。默认值为 5。 | 空 |
| OB_OPERATOR_TIME_GETCONNECTIONMAXRETRIES | 获取连接最大重试次数。默认值为 100。 | 空 |
| OB_OPERATOR_TIME_CHECKCONNECTIONINTERVAL | 检查连接间隔(秒)。默认值为 3。 | 空 |
| OB_OPERATOR_TIME_CHECKJOBINTERVAL | 检查 Job 间隔(秒)。默认值为 3。 | 空 |
| OB_OPERATOR_TIME_CHECKJOBMAXRETRIES | 检查 Job 最大重试次数。默认值为 100。 | 空 |
| OB_OPERATOR_TIME_COMMONCHECKINTERVAL | 通用检查间隔(秒)。默认值为 5。 | 空 |
| OB_OPERATOR_TIME_BOOTSTRAPTIMEOUTSECONDS | 引导超时时间(秒)。默认值为 2100。 | 空 |
| OB_OPERATOR_TIME_LOCALITYCHANGETIMEOUTSECONDS | Locality 变更超时时间(秒)。默认值为 86400。 | 空 |
| OB_OPERATOR_TIME_DEFAULTSTATEWAITTIMEOUT | 默认资源状态变化等待超时时间(秒)。默认值为 1800。 | 空 |
| OB_OPERATOR_TIME_TIMECONSUMINGSTATEWAITTIMEOUT | 耗时任务资源状态变化等待超时时间(秒)。默认值为 3600。 | 空 |
| OB_OPERATOR_TIME_WAITFORJOBTIMEOUTSECONDS | 等待 Job 超时时间(秒)。默认值为 7200。 | 空 |
| OB_OPERATOR_TIME_SERVERDELETETIMEOUTSECONDS | Server 删除超时时间(秒)。默认值为 604800。 | 空 |
| OB_OPERATOR_TIME_TOLERATESERVERPODNOTREADYMINUTES | 容忍 Server Pod 未就绪时间(分钟)。默认值为 5。 | 空 |
| OB_OPERATOR_TIME_DEFAULTSQLTIMEOUTSECONDS | 默认 SQL 超时时间(秒)。默认值为 60。 | 空 |
| OB_OPERATOR_TIME_TENANTSQLTIMEOUTSECONDS | 租户 SQL 超时时间(秒)。默认值为 600。 | 空 |
| OB_OPERATOR_TIME_TENANTRESTORETIMEOUTSECONDS | 租户恢复超时时间(秒)。默认值为 600。 | 空 |
| OB_OPERATOR_TIME_POLLINGJOBSLEEPTIMESECONDS | 轮询 Job 睡眠时间(秒)。默认值为 1。 | 空 |
修改方法
使用 deploy/operator.yaml 中的配置文件,找到名为 oceanbase-controller-manager 的 Deployment 资源,在其容器列表中修改名为 manager 容器的启动参数和环境变量,下面截取 deploy/operator.yaml 中该部分为例。
# 原本的配置
containers:
- args:
- --health-probe-bind-address=:8081
- --metrics-bind-address=:8080
- --leader-elect
- --manager-namespace=oceanbase-system
- --log-verbosity=0
command:
- /manager
env:
- name: TELEMETRY_REPORT_HOST
value: https://openwebapi.oceanbase.com
示例:增大日志输出量
如果用户希望增加 ob-operator 的日志输出量,可增大 log-verbosity 参数到 1 或者 2,值越大输出的日志越多。
# 修改后的配置
containers:
- args:
- --health-probe-bind-address=:8081
- --metrics-bind-address=:8080
- --leader-elect
- --manager-namespace=oceanbase-system
- --log-verbosity=2 # 日志输出量增大到 2
command:
- /manager
env:
- name: TELEMETRY_REPORT_HOST
value: https://openwebapi.oceanbase.com
示例:指定资源命名空间
# 修改后的配置
containers:
- args:
- --health-probe-bind-address=:8081
- --metrics-bind-address=:8080
- --leader-elect
- --manager-namespace=oceanbase-system
- --log-verbosity=0
- --namespace=oceanbase # 限定 ob-operator 只监听命名空间为 oceanbase 内的资源
command:
- /manager
env:
- name: TELEMETRY_REPORT_HOST
value: https://openwebapi.oceanbase.com
应用到集群中
修改完成后通过 kubectl apply -f deploy/operator.yaml 将配置文件应用到集群中即可生效。环境变量的配置方法与启动参数相同,本文不再赘述。