Skip to content

Latest commit

 

History

History
56 lines (43 loc) · 2.01 KB

README.md

File metadata and controls

56 lines (43 loc) · 2.01 KB

cSphere autoscale controller

每秒检查一下指定服务下所有容器的平均CPU利用率和内存占用量。 如果连续5次检查结果都超出上限,增加1个容器。

如果连续5次检查结果都低于下限,减少一个容器。

用户可以配置最大容器数量和最少容器数量。

Docker 镜像:docker pull index.csphere.cn/csphere/autoscale

编译方法

本项目利用go 1.6引入的vendor功能管理依赖包。 请使用go 1.6及以上版本进行编译,编译方法为在项目根目录下执行make

如果使用go 1.5,可以设置GO15VENDOREXPERIMENT=1环境变量然后编译。

低版本的go需要自行处理依赖。

使用方法

配置文件路径: /etc/autoscale.json

配置文件格式参考sample-config.json.

{
  "ApiKey": "fbfed031cadbfa4b661c9cf0916ed5ce78637038",
  "ControllerAddr": "http://192.168.122.110/",
  "Groups": [
    {
      "App": "myapp",
      "Service": "api",
      "CpuLow": 5,
      "CpuHigh": 10,
      "MemoryLow": "15m",
      "MemoryHigh": "20m",
      "MaxContainers": 2,
      "MinContainers": 1,
      "Periods": 5
    }
  ]
}

各字段说明:

  • ApiKey: cSphere控制器的ApiKey,可以在cSphere管理面板的“设置”页面创建
  • ControllerAddr: cSphere控制器的地址,格式为:http://controller-host:port/
  • Groups: 这个数组里配置所有需要启用自动伸缩功能的服务列表
  • App: 应用名称
  • Service: 服务名称
  • CpuLow: 服务中各容器的平均CPU利用率低于CpuLow平均内存消耗低于MemoryLow时,容器数量自动减少1个,容器最低数量由MinContainers决定
  • CpuHigh: 服务中各容器的平均CPU利用率大于这个值时,容器数量自动加1, 容器数量最大值由MaxContainers决定
  • MemoryHigh: 服务中各容器的平均内存消耗大于这个值时,容器数量自动加1, 容器数量最大值由MaxContainers决定
  • Periods: 连续满足条件多少秒后开始执行伸缩动作,默认为5