一、 概述

本文介绍Rainbond自研组件的主要可配置参数,并以一个实际的例子说明如何自定义一个组件的特性后使之生效。Rainbond各组件的配置文件存放于 /opt/rainbond/conf 目录下,配置文件格式为 yaml

二、 rbd-api

  1. #指定集群etcd地址,当前使用默认集群地址,可更改为指定的地址,格式为 http://ETCD1:2379,http://ETCD2:2379,http://ETCD3:2379
  2. --etcd=${ETCD_ENDPOINTS}
  3. #指定api监听地址,该地址使用https协议
  4. --api-addr-ssl=10.10.10.19:8443
  5. #指定api监听地址,该地址使用http协议
  6. --api-addr=10.10.10.19:8888
  7. #指定日志级别
  8. --log-level=debug
  9. #指定集群数据库连接信息
  10. --mysql="write:AX5Oan8I@tcp(10.10.10.19:3306)/region"
  11. #开启websocket协议的SSL,即wss
  12. --api-ssl-enable=true
  13. #以下三项指定了ssl证书路径
  14. --api-ssl-certfile=/etc/goodrain/region.goodrain.me/ssl/server.pem
  15. --api-ssl-keyfile=/etc/goodrain/region.goodrain.me/ssl/server.key.pem
  16. --client-ca-file=/etc/goodrain/region.goodrain.me/ssl/ca.pem

三、 rbd-chaos

  1. #指定集群etcd地址,当前使用默认集群地址,可更改为指定的地址,格式为 http://ETCD1:2379,http://ETCD2:2379,http://ETCD3:2379
  2. --etcd-endpoints=${ETCD_ENDPOINTS}
  3. #当前节点的内网IP地址
  4. --hostIP=10.10.10.19
  5. #指定日志级别
  6. --log-level=debug
  7. #指定集群数据库连接信息
  8. --mysql="write:AX5Oan8I@tcp(10.10.10.19:3306)/region"

四、 rbd-mq

  1. #指定日志级别
  2. --log-level=debug
  3. #指定集群etcd地址,当前使用默认集群地址,可更改为指定的地址,格式为 http://ETCD1:2379,http://ETCD2:2379,http://ETCD3:2379
  4. --etcd-endpoints=${ETCD_ENDPOINTS}
  5. #当前节点的内网IP地址
  6. --hostIP=10.10.10.19

五、 rbd-webcli

  1. #当前节点的内网IP地址
  2. --hostIP=10.10.10.19
  3. #指定集群etcd地址,当前使用默认集群地址,可更改为指定的地址,格式为 http://ETCD1:2379,http://ETCD2:2379,http://ETCD3:2379
  4. --etcd-endpoints=${ETCD_ENDPOINTS}

六、 rbd-worker

  1. #指定日志级别
  2. --log-level=info
  3. #当前节点的内网IP地址
  4. --host-ip=10.10.10.19
  5. #指定集群etcd地址,当前使用默认集群地址,可更改为指定的地址,格式为 http://ETCD1:2379,http://ETCD2:2379,http://ETCD3:2379
  6. --etcd-endpoints=${ETCD_ENDPOINTS}
  7. #指定当前节点主机名
  8. --node-name=node1
  9. #指定kubernetes集群配置文件路径
  10. --kube-config="/etc/goodrain/kubernetes/admin.kubeconfig"
  11. #指定集群数据库连接信息
  12. --mysql="write:AX5Oan8I@tcp(10.10.10.19:3306)/region"

七、 rbd-monitor

  1. #指定集群etcd地址,当前使用默认集群地址,可更改为指定的地址,格式为 http://ETCD1:2379,http://ETCD2:2379,http://ETCD3:2379
  2. --etcd-endpoints=${ETCD_ENDPOINTS}
  3. #指定服务监听地址
  4. --advertise-addr=10.10.10.19:9999
  5. #为UI API指定的监听地址
  6. --web.listen-address=0.0.0.0:9999
  7. #配置文件路径
  8. --config.file=/etc/prometheus/prometheus.yml
  9. #指定数据存储路径
  10. --storage.tsdb.path=/prometheusdata
  11. #不在数据存储目录中创建文件锁
  12. --storage.tsdb.no-lockfile
  13. #指定采样存储时间
  14. --storage.tsdb.retention=7d
  15. #指定日志级别
  16. --log.level=info

八、rbd-eventlog

  1. #集群通信监听IP
  2. --cluster.bind.ip=10.10.10.19
  3. #集群中的当前实例IP
  4. --cluster.instance.ip=10.10.10.19
  5. #指定数据库类型
  6. --db.type=mysql
  7. #数据库连接信息
  8. --db.url="write:AX5Oan8I@tcp(10.10.10.19:3306)/region"
  9. #设置集群中用于消息自动发现的所有etcd服务器地址
  10. --discover.etcd.addr=${ETCD_ENDPOINTS}
  11. #收集日志服务监听的IP
  12. --eventlog.bind.ip=10.10.10.19
  13. #用于推送事件消息的websocket绑定ip
  14. --websocket.bind.ip=10.10.10.19

九、rbd-gateway

  1. # kubernetes 集群配置文件路径
  2. --kube-conf="/etc/goodrain/kubernetes/admin.kubeconfig"
  3. # etcd 地址,当前使用默认集群地址,可更改为指定的地址,格式为 http://ETCD1:2379,http://ETCD2:2379,http://ETCD3:2379
  4. --etcd-endpoints=${ETCD_ENDPOINTS}
  5. # etcd 连接超时时间, 单位'秒'
  6. --etcd-timeout=5
  7. # Gateway 健康检查端口
  8. --healthz-port=10254
  9. # Gateway 健康检查URI
  10. --health-path="/healthz"
  11. # Gateway 健康检查超时时间, 单位'秒'
  12. --health-check-timeout=10
  13. # Nginx 中 worker 的数量, 默认获取当前节点 CPU 的核心数, 最多应为节点上的 CPU 核心数。
  14. --worker-processes=0
  15. # Nginx 中每个 worker 的最大连接数
  16. --worker-connections=4000
  17. # Nginx可用的文件描述符数
  18. --worker-rlimit-nofile=200000
  19. # 让每个线程可以处理更多的 client. 只能在 Linux 上使用
  20. --enable-epool=true
  21. # 在nginx获得有关新连接的通知后,接受尽可能多的连接
  22. --enable-multi-accept=true
  23. # 只打印 critical 级别的日志
  24. --error-log=/dev/stderr crit
  25. # nginx 的用户和组
  26. --nginx-user=root
  27. # 客户端可以通过 keep-alive 连接发出的请求数
  28. --keepalive-requests=10000
  29. # 保持连接的超时. 服务器将在此时间后关闭连接
  30. --keepalive-timeout=30
  31. # 开启对 rbd-gateway 指标的收集
  32. --enable-metrics=true
  33. # 日志级别
  34. --log.level=info
  35. # HTTP 服务的 80, 443 端口绑定的IP
  36. --ip=0.0.0.0
  37. # 是否开启 Rainbond 的默认服务
  38. --enable-rbd-endpoints=true
  39. # Rainbond 默认服务在 ETCD 中的Key
  40. --rbd-endpoints=/rainbond/endpoint/
  41. # 是否开启kube-apiserver的负载均衡
  42. --enable-kubeapi=false
  43. # kube-apiserver绑定的IP
  44. --kubeapi-ip=0.0.0.0
  45. # 是否开启lang.goodrain.me的负载均衡
  46. --enable-lang-grme=true
  47. # lang.goodrain.me 绑定的IP
  48. --lang-grme-ip=0.0.0.0
  49. # 是否开启maven.goodrain.me的负载均衡
  50. --enable-mvn-grme=true
  51. # maven.goodrain.me 绑定的IP
  52. --mvn-grme-ip=0.0.0.0
  53. # 是否开启goodrain.me的负载均衡
  54. --enable-grme=true
  55. # goodrain.me 绑定的IP
  56. --grme-ip=0.0.0.0
  57. # 是否开启 repo.goodrain.me 服务
  58. --enable-repo-grme=true
  59. # repo.goodrain.me 绑定的IP
  60. --repo-grme-ip=0.0.0.0

十、 node

  1. # API监听地址,此端口请勿随意修改
  2. --api-addr=:6100
  3. # 是否自动注册节点
  4. --auto-registnode=true
  5. # 如果设置为true,当节点不健康后自动设置为不可调度
  6. --auto-scheduler=true
  7. --autounscheduler-unhealty-dura=5m
  8. # kube-apiserver配置文件地址
  9. --kube-conf=/opt/rainbond/etc/kubernetes/kubecfg/admin.kubeconfig
  10. # 运行模式,master 或者 worker
  11. --run-mode=worker
  12. # 节点属性,支持多个属性,compute manage storage
  13. --noderule=compute

十、 查看一个组件的所有配置项

当你希望获取某个组件的所有可配置信息的时候,下面的方法可以帮助你实现目的:

rbd-eventlog 组件为例,当你处在一个部署了该组件的管理节点时,执行如下操作:

  1. #进入组件容器环境
  2. din rbd-eventlog
  3. #查询该组件使用二进制命令
  4. ps -ef
  5. #获取帮助信息
  6. /run/rainbond-eventlog -h

系统服务组件参数说明 - 图1

十一、 修改配置后如何生效

当你修改了配置文件,执行以下操作可以使变更生效:

rbd-eventlog 组件为例,当配置文件修改保存后:

  1. #重启node服务,更新配置
  2. systemctl restart node
  3. #重启rbd-eventlog服务,使之生效
  4. systemctl restart rbd-eventlog
在后续的迭代中,会优化这一过程,使之更加简便快捷

原文: https://www.rainbond.com/docs/stable/operation-manual/rbd-parameter.html