配置参数

描述云原生集群优化平台配置文件的配置参数。

描述云原生集群优化平台配置文件的配置参数。

概述

云原生集群优化平台必须依赖于配置文件才能运行。可通过命令行参数--config来制定配置文件位置,例如:--config=conf/cluster-optimizer.yaml。默认路径为conf/cluster-optimizer.yaml

配置文件格式为YAML格式,示例如下:

server:
  port: 7070
engine:
  maxQueryDuration: 4h
optconf:
  dataSource:
    name: "root:optimizer@tcp(127.0.0.1:3306)/optconf?createDatabaseIfNotExist=true&charset=utf8mb4&readTimeout=30s&writeTimeout=30s&parseTime=true&loc=Local"
    maxOpenConns: 10
optdata:
  dataSource:
    name: "root:optimizer@tcp(127.0.0.1:3306)/optdata?createDatabaseIfNotExist=true&charset=utf8mb4&readTimeout=30s&writeTimeout=30s&parseTime=true&loc=Local"
    maxOpenConns: 10
optimize:
  defaultCron: "0 0 1 * * ?"
  strategyConfigs:
    "OOM": 
      enabled: false
    "Resource Recommendation":
      enabled: false
    "Low Utilization Node":
      enabled: false
    "No Quota":
      enabled: false
  enabled: true
sms:
  enabled: false
  ...
notification:
  templateBasePath: templates/notification

配置参数

server.port

参数server.port是云原生集群优化平台挺的对外服务端口。默认值是7070

engine.maxQueryDuration

参数engine.maxQueryDuration设置查询度量服务器(例如Prometheus)的最大查询周期,默认值是1天。当查询时间范围超过最大查询周期是,会将其分割为多个查询窗口分别查询,从而降低服务器的压力。

optconf

参数optconf用于配置优化配置库。

其子参数包括dataSource.namemaxOpenConns,下面分别进行阐述。

dataSource.name

参数dataSource.name用于设置Mysql数据源名称,例如root:optimizer@tcp(127.0.0.1:3306)/optconf?createDatabaseIfNotExist=true&charset=utf8mb4&readTimeout=30s&writeTimeout=30s&parseTime=true&loc=Local。 其中,createDatabaseIfNotExist表示在数据库不存在的时候,优先创建此数据库。

maxOpenConns

参数maxOpenConns设置数据库最大开启连接数。

optdata

参数optdata用于配置优化数据库。

其子参数包括dataSource.namemaxOpenConns,其含义与optconf相应子参数一致,不再阐述。

optimize

参数optimize用于设置优化引擎相关参数,下面将分别阐述其子参数设置。

defaultCron

参数defaultCron用于设置优化引擎默认的调度参数,默认值是0 0 1 * * ?(每天凌晨1点执行),

enabled

参数enabled设置是否启用该优化引擎,默认值是true

strategyConfigs

参数strategyConfigs用于配置该优化引擎的策略配置。其配置为键-值对的方式,键是策略的名称,值是该策略的配置。

策略名称是字符串,策略值的内容如下:

  enabled: false
  cron: "0 0 1 * * ?"
  parameters:
    - key1: value1
    - key2: value2

其中,enabled表示是否启用该优化策略,默认值是truecron设置该策略的调度参数。parameters为策略提供配置,不同的策略,其参数存在差异,下面分别说明。

  1. 节点组推荐策略Node Group Recommendation
参数名 默认值 描述
cpuMaxUsage 0.7 节点组最大CPU利用率,取值范围为*(0,1]*
memoryMaxUsage 0.8 节点组最大内存利用率,取值范围为*(0,1]*
cpuMinCores 2 推荐实例类型CPU最小值,单位核,必须大于或等于1
memoryMinGBs 4 推荐实例类型内存最小值,单位GB,必须大于或等于1
recommendTopK 5 最多推荐的实例类型数量,取值范围为*[1,10]*
  1. 节点推荐Node Recommendation
参数名 默认值 描述
duration 24小时 时间范围,取值是Duration。
step 24小时 时间范围步长,取值是Duration。
resolution 2分钟 查询分辨率,取值是Duration。
cpuStep 1 CPU最小步长,单位核
memoryStep 1 内存最小步长,单位GB
cpuMaxUsage 0.6 节点最大CPU利用率
memoryMaxUsage 0.8 节点最大内存利用率
  1. 低利用率节点Underutilized Node
参数名 默认值 描述
duration 24小时 时间范围,取值是Duration
step 24小时 每批范围,取值是Duration
resolution 2分钟 查询分辨率
cpuAvgThreshold 0.2 CPU平均利用率阈值
cpuMaxThreshold 0.6 CPU最大利用率阈值
memoryAvgThreshold 0.3 内存平均利用率阈值
memoryMaxThreshold 0.6 内存最大利用率阈值
  1. 低利用率GPU节点Underutilized GPU Node
参数名 默认值 描述
duration 24 时间范围,取值是Duration,默认值24小时
step 24 每批范围,取值是Duration,默认值24小时
resolution 2 查询分辨率,单位分钟
gpuAvgThreshold 0.2 GPU平均利用率阈值
gpuMaxThreshold 0.8 GPU最大利用率阈值
  1. 低利用率磁盘Underutilized Disk
参数名 默认值 描述
duration 24 时间范围,取值是Duration,默认值24小时
step 24 每批范围,取值是Duration,默认值24小时
resolution 2 查询分辨率,单位分钟
threshold 0.3 磁盘利用率阈值,低于此阈值,我们认为利用率低。
  1. 未使用持久化存储卷Unused PV
参数名 默认值 描述
boundDuration 1 持久化存储卷绑定周期,默认值1小时。若在持久化存储卷绑定周期未绑定且未关联Persistent Volume Claim,则认为该存储卷未被使用。
  1. 低利用率持久化存储卷Underutilized PV
参数名 默认值 描述
duration 24 时间范围,取值是Duration,默认值24小时
step 24 每批范围,取值是Duration,默认值24小时
resolution 2 查询分辨率,单位分钟
threshold 0.3 PV利用率阈值,低于此阈值,我们认为利用率低。
  1. 应用资源推荐Resource Recommendation
参数名 默认值 描述
duration 24*8 时间范围,取值是Duration,默认值8天
step 24 每批范围,取值是Duration,默认值24小时
resolution 2 查询分辨率,单位分钟
cpuStep 0.05 CPU最小步长,单位核
memoryStep 0.1 内存最小步长,单位GB
cpuMaxUsage 0.6 节点最大CPU利用率
memoryMaxUsage 0.8 节点最大内存利用率
  1. 应用未设置资源额度Resource Quota Unset
参数名 默认值 描述
duration 24*8 时间范围,取值是Duration,默认值8天
step 24 每批范围,取值是Duration,默认值24小时
resolution 2 查询分辨率,单位分钟
cpuStep 0.05 CPU最小步长,单位核
memoryStep 0.1 内存最小步长,单位GB
cpuMaxUsage 0.6 节点最大CPU利用率
memoryMaxUsage 0.8 节点最大内存利用率
  1. 内存溢出OOM
参数名 默认值 描述
duration 24*8 时间范围,取值是Duration,默认值8天,仅关注该时间范围内出现内存溢出的事件。
interval 1小时 过期时间清理周期

短信发送配置sms

短信发送配置主要为系统发送验证码/安全码,其配置参数如下:

参数名 默认值 描述
enabled true 是否开启短信
provider 短信服务商,目前支持AWS、Azure、阿里云、腾讯云、百度云等
accessKeyId AccessKeyId对应于短信服务商的相应字段,不同的短信服务商对应的字段略有差异。
accessKeySecret AccessKeySecret对于应短信服务商的相应字段,不同的短信服务商对应的字段略有差异。
signName 短信服务商的签名
template 短信服务商的模板ID
extras [] 短信服务商所需其他参数有序列表

示例:对于腾讯云来说,其配置如下:

sms:
  enabled: true
  provider: "Tencent Cloud SMS"
  accessKeyID: AK******
  accessKeySecret: NY******
  signName: 云智优本
  template: 210000
  extras: 
  - 1000000000

其中,accessKeyIDaccessKeySecret是腾讯云短信服务的密钥,分别对应云API密钥上申请的标识身份的SecretId及其对应的SecretKeysignName是短信签名,template是短信模板ID,extra是额外参数,在腾讯云短信服务中,extra是应用ID,分为对应于发送短信接口中的SignNameTemplateIdSmsSdkAppId.

notification

参数notification用于配置优化平台的通知配置。

notification.templateBasePath

参数notification.templateBasePath设置通知模板的路径,默认值是templates/notification

目前,默认的模板名称是default

邮件配置 email

邮件配置主要用于系统发送电子邮件。其配置参数如下:

参数名称 默认值 描述
enabled true 确定是否启用邮件功能。
provider 指定电子邮件服务提供商。支持的提供商包括 AWS、Azure、阿里云、腾讯云等。
clientId 对应电子邮件服务提供商的 ClientId。不同提供商的字段名称可能有所不同。
clientSecret 对应电子邮件服务提供商的 ClientSecret。不同提供商的字段名称可能有所不同。
host 指定电子邮件服务提供商 SMTP 服务器的主机名或 IP 地址。这对于将邮件流量定向到正确的服务器以处理外发邮件至关重要。
port 定义用于连接电子邮件服务提供商 SMTP 服务器的网络端口。常见的端口值为 TLS/STARTTLS 的 587、SSL 的 465 和非加密通信的 25。端口选择必须符合电子邮件服务的安全要求。
disableSSL 确定是否禁用与 SMTP 服务器连接的 SSL 加密。如果设置为 true,则关闭 SSL,这可能对某些服务器配置或在加密由其他方式管理的环境中是必要的。但是,禁用 SSL 可能会使通信暴露于潜在的安全风险中。
endpoint 定义用于连接电子邮件服务提供商 API 的 URL 或特定网络端点。这对于基于云或 API 驱动的电子邮件服务特别重要,在这些服务中,电子邮件通过 HTTP 请求而不是传统的 SMTP 发送。
method 指定与电子邮件服务提供商 API 交互时使用的 HTTP 方法(如 POST、GET、PUT 等)。通常使用 POST 来发送电子邮件,因为它允许在请求体中传输电子邮件内容和元数据。
region 指定电子邮件服务提供商服务器所在的地理区域。这对于优化延迟、遵守数据驻留要求以及可能的成本管理非常重要,具体取决于电子邮件服务提供商。
template 电子邮件服务提供商用于发送消息的模板。默认值为 templates/email_code.tpl
fromAddress 设置出现在电子邮件 “发件人” 字段中的电子邮件地址。收件人会将此地址视为发件人地址。此地址应为电子邮件服务提供商系统中已验证或授权的地址。
fromName 指定与 fromAddress 关联的显示名称。此名称会在收件人的收件箱中显示为发件人的名称,增强电子邮件的品牌形象和识别度。

许可证配置 license

许可证配置主要用于商业版的许可证配置。其配置参数如下:

参数名称 默认值 描述
accessKeyId accessKeyId 是分配给您的账户或应用程序的唯一标识符,用于在线检索许可证时对请求进行身份验证。此密钥是认证过程的关键部分,并与 accessKeySecret 一起使用,以确保对许可服务的安全访问。
accessKeySecret accessKeySecret 是与 accessKeyId 配对的密钥,用于对 API 请求进行签名和身份验证,确保与许可服务的安全通信。此密钥必须保密,因为它提供了与许可证检索和验证相关的关键操作的访问权限。
managerBaseUrl managerBaseUrl 指定许可管理服务的基本 URL。此 URL 用作与许可证检索相关的所有 API 请求的端点。
certificate 指的是离线提供的许可证证书。此证书用于验证许可证的真实性和完整性。
signature 包含离线提供的许可证加密签名。此签名用于验证许可证证书的完整性和真实性,确保其未被篡改。