参数配置说明
基础参数
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
name |
string |
必选 |
- |
IaC3.0资源名 |
只能包括数字、字母、'-'、'_'、'.',必须以字母开头,字母或数字结尾。长度2-64。
说明:
如果没有配置clusterName,则资源名会被当做微服务集群名,参数规范则会以微服务集群名的为准。 |
WiseCloudFGCEventBuilderService_cluster1 |
|
type |
string |
必选 |
- |
BaaS服务类型,operator要求必填,固定为WiseCloud::MicroService::NuwaContainer |
固定为WiseCloud::MicroService::NuwaContainer |
WiseCloud::MicroService::NuwaContainer |
|
microserviceName |
string |
必选 |
- |
微服务名称 |
微服务名称 |
WiseCloudFGCEventBuilderService |
|
clusterName |
string |
非必选 (建议填写) |
默认与name值相同 |
微服务集群名 |
只能包括数字、字母、'-'、'_'、'.',必须以字母开头,字母或数字结尾。长度2-56。
说明:
不填与name值相同,由于两字段限制不同,超过限制会报错。 |
cluster1 |
|
replicas |
int |
必选 |
- |
Pod副本数 |
整数类型
说明:
|
1 |
|
pdbMaxUnavailable |
string |
非必选 |
- |
Pod干扰预算 |
整数百分比,整数范围为[1, 50] |
- |
|
terminationGracePeriodSeconds |
integer |
非必选 |
- |
优雅下线宽限期 |
1-65535 |
- |
示例:
- name: WiseCloudFGCEventBuilderService_cluster1
type: WiseCloud::MicroService::NuwaContainer
properties:
microserviceName: WiseEyeChaosMonkeyExecutor
clusterName: cluster1
replicas: 5
挂载信息
示例:
- name: WiseCloudFGCEventBuilderService_cluster1
type: WiseCloud::MicroService::NuwaContainer
properties:
volumes:
- name: log_volume
size: 12Gi
type: local
- name: data_volume
size: 2Gi
type: local
容器配置
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
image |
string |
必选 |
- |
镜像地址 Runtime已预置如下镜像仓库地址,如果业务是从如下镜像仓库地址下载镜像,则只需要从组织名开始填写。 北京四:swr.cn-north-4.myhuaweicloud.com |
长度:1-256
说明:
镜像仓库(:前的一串)只能是小写。 |
- |
|
ports |
int[] |
可选 |
0 |
如果使用Cloud Map,将此端口填写为在Cloud Map注册中心注册的端口 如果不使用Cloud Map,可将此项注释掉或者填写为0。 此参数只是起一个标识作用,并不是代表配置了此端口就代表端口一定打开。实际打开的端口以业务使用的为准,目前仅支持一个端口配置,数组类型是为后面可扩展。 |
端口范围:0-65535 |
ports: - 8080 |
|
flavor |
string |
- |
"2C4Gi" |
主容器CPU&memory的规格 |
长度范围:1-32。需要满足CPU和memory的规格,比如1C2G,2C4G,4C8G,8C16G等。 |
flavor: 2C4G |
|
armFlavor |
string |
可选 |
"2C4Gi" |
参考flavor 双AZ arm混部时独立控制arm配置 arm配置建议: 按照业内通用的指导,arm cpu算力相对于x86下降,具体下降指标和使用场景密切相关。 对于计算密集型的业务,可以考虑增加配置,IO密集型可以同规格,具体性能还是以各自业务的实际性能测试为准。 |
同上 |
同上 |
|
gpu |
int |
可选 |
null |
主容器使用的GPU规格(GPU即显卡);当前ERS管理的资源池中尚未提供GPU。 |
取值为整数,配1代表占用一块显卡,显卡不可分割。 |
- |
|
stsEnable |
bool |
可选 |
TRUE |
是否启用sts |
- |
TRUE |
|
commandArgs |
list(string) |
可选 |
[] |
启动参数 |
长度为0-256 |
- |
|
volumeMounts |
list(object) |
可选 |
[] |
此参数与volumes下的sfs挂载卷搭配使用,volumes中定义挂载卷的信息,此处引用并挂载在容器中运行 |
name要在volumes中有对应的值。 |
volumeMounts: - name: sfs_volume1 mountPath: /opt/huawei/sfs1 - name: sfs_volume2 mountPath: /opt/huawei/sfs2 |
|
envs |
type = list(object({ name = string value = string })) |
可选 |
[] |
配置环境变量 |
name和value的长度为不超过5000。 |
envs: - name: "EVS_TEST" value: "test_ENV" |
|
hostAliases |
type = list(object({ hostName = string ip = string })) |
可选 |
[] |
配置hosts |
- |
hostAliases: - hostName: "a.b.com" ip:"1:1:1:1:1:1:1:1" - hostName: "c.d.com" ip:"2.2.2.2" |
为保证业务容器的稳定运行和资源利用率的提升,建议业务容器采用标准化容器规格,标准容器规格如表4所示。
|
vCPU (cpu request) |
Memory, GiB (memory request/limit) |
cpu和内存配比 |
备注 |
|---|---|---|---|
|
0.5 |
500M、1、2、4 |
1:1、1:2、1:4、1:8 |
X86和ARM |
|
1u |
1、2、4、8 |
1:1、1:2、1:4、1:8 |
X86和ARM |
|
2u |
2、4、8、16 |
1:1、1:2、1:4、1:8 |
X86和ARM |
|
3u |
3、6、12、24 |
1:1、1:2、1:4、1:8 |
ARM专属规格 |
|
4u |
4、8、16、32 |
1:1、1:2、1:4、1:8 |
X86和ARM |
|
6u |
6、12、24、48 |
1:1、1:2、1:4、1:8 |
ARM专属规格 |
|
8u |
8、16、32 |
1:1、1:2、1:4 |
X86和ARM |
|
12u |
12、24、48 |
1:1、1:2、1:4 |
ARM专属规格 |
|
14u |
14、28、52 |
1:1、1:2、1:4(3.714) |
X86和ARM |
|
22U |
22、44、76 |
1:1、1:2、1:4(3.45) |
ARM专属规格 |
|
28U |
28、56、104 |
1:1、1:2、1:4(3.714) |
X86和ARM |
|
42U |
42、84、150 |
1:1、1:2、1:4(3.571) |
ARM专属规格 |
- 16C的规格请降低为14C,大于等于64G的内存请降低为52G或者48G。14C52G是标准规格,是从节点的分配率考虑的。
- 如果要使用0.5G的内存,需要在IaC里面配置为500M,不能配置为0.5G。
- 最小组网:CPU规格<=1u,且双AZ POD数量<=6个。
示例1(双AZ同构,或者不同构但同配置):
- name: WiseCloudFGCEventBuilderService_cluster1
type: WiseCloud::MicroService::NuwaContainer
properties:
containers:
- image: swr.cn-north-4.myhuaweicloud.com/wiseeye/wiseeyechaosmonkeyservicewebsite:3.0.9.204.SP2
flavor: 2C8G
stsEnable: true
ports:
- 8080
示例2(arm、x86混部时,独立配置flavor):
- name: WiseCloudFGCEventBuilderService_cluster1
type: WiseCloud::MicroService::NuwaContainer
properties:
containers:
- image: swr.cn-north-4.myhuaweicloud.com/wiseeye/wiseeyechaosmonkeyservicewebsite:3.0.9.204.SP2
flavor: 2C8G
armFlavor: 4C16G
stsEnable: true
ports:
- 8080
容器健康检查
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
readinessProbe: exec: command: |
list(string) |
必须配置其中一种,且只能配置一种 |
[] |
命令行检查方式 |
命令行检查方式\http请求检查方式\tcp端口检查三种方式只能选择一种。 |
readinessProbe: exec: command: ["echo", "hello"] |
|
readinessProbe: httpGet: |
object |
- |
http请求检查方式 |
命令行检查方式\http请求检查方式\tcp端口检查三种方式只能选择一种。 |
readinessProbe: httpGet: path: /health port: 8080 scheme: HTTP |
|
|
readinessProbe: tcpSocket: port: |
int |
- |
tcp端口检查 |
命令行检查方式\http请求检查方式\tcp端口检查三种方式只能选择一种。 |
readinessProbe: tcpSocket: port:8080 |
|
|
livenessProbe: exec: command: |
list(string) |
必须配置其中一种,且只能配置一种 |
[] |
命令行检查方式 |
命令行检查方式\http请求检查方式\tcp端口检查三种方式只能选择一种。 |
livenessProbe: exec: command: ["echo", "hello"] |
|
livenessProbe: httpGet: |
object |
- |
http请求检查方式 |
命令行检查方式\http请求检查方式\tcp端口检查三种方式只能选择一种。 |
livenessProbe: httpGet: path: /health.html port: 8080 scheme: HTTP |
|
|
livenessProbe: tcpSocket: port: |
int |
- |
tcp端口检查 |
命令行检查方式\http请求检查方式\tcp端口检查三种方式只能选择一种。 |
livenessProbe: tcpSocket: port:8080 |
|
|
initialDelaySeconds |
int |
可选 |
10s |
表示容器启动多少秒之后开始探测,单位秒。默认值为10s。 |
不小于5 |
readinessProbe: exec: command: ["echo", "hello"] initialDelaySeconds: 10 periodSeconds: 20 successThreshold :1 failureThreshold: 3 timeoutSeconds:5 |
|
periodSeconds |
int |
可选 |
20s |
间隔周期,表示每多少秒探测一次容器,单位秒,默认值为20s。 |
不大于180 |
|
|
successThreshold |
int |
可选 |
1 |
表示连续检测多少次成功后则记作成功。默认值为1。 |
不大于10,liveness探针只能为1。 |
|
|
failureThreshold |
int |
可选 |
3 |
表示连续检测多少次失败当做是失败处理,并会重启容器。默认值为3。 |
不大于10 |
示例:
livenessProbe:
httpGet:
path: /health
port: 8080
scheme: HTTP
initialDelaySeconds: 20
timeoutSeconds: 3
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /health
port: 8080
scheme: HTTP
initialDelaySeconds: 20
timeoutSeconds: 3
periodSeconds: 10
successThreshold: 1
failureThreshold: 10
- name: APIGateway
type: WiseCloud::Agent::APIGateway
version: x.x.x.x
flavor: 1C2G
param:
$ref: 'config/sidecar_apigw_param.json
sidecar配置
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
sidecars |
type = list(object) |
- |
[] |
由于POD销毁或被驱逐时,日志文件会丢失,因此AIOps Log Sidecar为必选参数,需要业务配置此sidecar及时将日志进行采集。 |
详见代码示例,按照业务需求配置所需的sidecar。 |
示例:
sidecars:
- name: AIOpsLog
type: WiseCloud::Agent::AIOpsLog
version: 3.3.0.100
flavor: 0.4C500M
param:
$ref: 'config/sidecar_aiops_param.json'
- name: RASP
type: WiseCloud::Agent::RASP
version: 2.2.0.102.SP5
flavor: 0.3C500M
param: ''
- name: BIFlume
type: WiseCloud::Agent::BIFlume
version: x.x.x.x
flavor: 0.2C500M
param:
$ref: 'config/sidecar_biflume_param.json'
- name: APIGateway
type: WiseCloud::Agent::APIGateway
version: x.x.x.x
flavor: 1C2G
param:
$ref: 'config/sidecar_apigw_param.json
网络配置
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
isolatedDomain |
string |
可选 |
- |
隔离域 |
只有CCE_TURBO集群支持,老CCE集群不支持。如果不配置,则使用ENS隔离域规划中对应的隔离域。 |
- |
|
slbEnable |
bool |
可选 |
FALSE |
是否启用SLB |
“否”仅针对第一次添加SLB信息时有效。 如果之前有部署过,并且配置为“是”,此时再修改为“否”是无效的。 |
- |
示例:
- name: WiseCloudFGCEventBuilderService_cluster1
type: WiseCloud::MicroService::NuwaContainer
properties:
network:
slbEnable: true
isolatedDomain: $ {创建的隔离域名称}
SLB配置(可选)
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
port |
int32 |
必选 |
null |
微服务在SLB上暴露的端口 |
- |
8080 |
|
weight |
int32 |
必选 |
null |
微服务在SLB上负载的权重 |
- |
20 |
|
timeout |
int32 |
必选 |
null |
微服务调用转发的超时时间 |
- |
20 |
|
maxFails |
int32 |
必选 |
null |
微服务调用的失败次数 |
- |
3 |
|
targetGroup |
object{ name, loadBalancer } |
必选 |
"" |
微服务注册到SLB上的后端服务器组名 |
|
name: chaosmonekey_portal_static loadBalancer: strategy: roundRobin |
|
listenerGroupName |
string |
必选 |
"" |
微服务前端关联的SLB Listenser Group实例IaC名称 |
对应NuwaRuntime中的slbServiceName,长度为[1, 64] SLB下需要存在这个监听,为空时不会创建RouteRule。 |
chaos_slb_listener_lhq |
|
routes |
array[ location: string] |
可选 |
[] |
微服务的路由规则 |
不推荐使用,请直接使用slb的iac3.0创建。 |
/fgc/v1 |
示例:
- name: WiseCloudFGCEventBuilderService_cluster1
type: WiseCloud::MicroService::NuwaContainer
properties:
bindSlb:
- port: 8080
grayStatus: 1
weight: 20
maxFails: 3
timeout: 20
listenerGroupName: chaos_slb_listener_lhq
targetGroup:
name: chaosmonekey_portal_static
loadBalancer:
strategy: roundRobin
证书配置
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
certConfigs |
type = list(object({ name = string tag = string })) |
可选 |
[] |
证书配置 |
|
# 业务证书配置 certConfigs: name: "server" # 证书名称 tag: "default" # 证书tag |
daemonSet
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
daemonSet |
type = list(object) |
可选 |
[] |
目前仅支持AIOps DaemonSet和BI DaemonSet,挂载hostpath提供存储持久化到node的能力。 |
|
详见代码示例 |
示例:
daemonSet:
- name: AIOps
type: WiseCloud::Agent::AIOps
enable: true
logPath: '/opt/huawei/logs'
limitSize: 100G
groups: ["logConfigGroupName"]
- name: BI
type: WiseCloud::Agent::BI
enable: false
logPath: '/opt/huawei/logs/bi'
groups: ["ODS_V001_DM_service1", "ODS_V001_DM_service2"]
paramJson: "{\"dataGroups\":[{\"dataGroup\":\"ODSName_BatchFileExampleDS\",\"agentType\":\"batch\",\"batchConfig\":{\"datapushInputs\":{\"jobType\":\"file\",\"dayPeriod\":{\"startTime\":\"10:00:00\",\"offset\":\"1\"},\"file\":{\"sources\":[{\"pattern\":\"/opt/huawei/hcy/*.txt\",\"filename\":\"test.txt\"}]}},\"datapushOutput\":{\"postfix\":\"txt\",\"permitEmptyFile\":true},\"advanced\":{\"extendFields\":{\"datapushInput.isUtc\":false,\"datapushInput.file.sourcePolicy\":3,\"datapushInput.file.countThreshold\":0,\"datapushInput.file.sizeThreshold\":0,\"sendThreadCount\":3,\"datapushInput.file.fileRetryTimes\":3,\"datapushInput.file.fileWaitTimes\":3}}}},{\"dataGroup\":\"ODSName_StreamFileExampleDS\",\"agentType\":\"stream\",\"streamConfig\":{\"filebeatInputs\":{\"type\":\"log\",\"enabled\":true,\"paths\":[\"/opt/huawei/logs/*.log\",\"/opt/huawei/logs/*.txt\"]},\"advanced\":{\"extendFields\":{\"filebeatInputs.harvester_limit\":5,\"queue.mem.events\":4096,\"queue.mem.flush.min_events\":2048}}}}]}"
# 配置json格式化
业务配置
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
configs |
object(private = object( name = string prefix = string version = string schema = object records = object) public = object( name = string prefix = string)) |
否 |
{} |
配置项的根字段,包含两个属性,分别是private和public,分别为业务配置项和公共配置项,其下各个字段的描述如下所示。 |
- |
见下文样例 |
|
prefix |
string |
否 |
"" |
配置项的归属路径 |
仅限于publicConfig |
/public/cloudeye/wiseEyeConfigService |
|
schema |
object(type = string properties = object( key1 = object( type = string description = string format = string))) |
否 |
{} |
配置项属性,properties属性为key-object格式,key是配置名称 ,object是配置项各项描述,其中format指配置项类型,默认为notype,如果是敏感配置项为sensitive。 如果是非敏感配置项,可以不在schema中声明,以减少维护工作量。 |
仅限于privateConfig |
见下文样例 |
|
records |
object(key1 = string key2 = string) |
否 |
{} |
描述配置,key-value格式,key为配置名称 ,value为配置值。 value仅支持字符串类型 如果是数字、布尔值、对象和数组,需要加单引号,例:'10'、'true'、'{"test": 1}'、'[1,2]'。 |
仅限于privateConfig |
records: test: '{"a":"a","b":"b"}' timeout: '10' enableSa: 'true' |
|
name |
string |
否 |
"" |
配置项名称,对应NuwaRuntime的Container[0].configTag,对应PublicConfig和PrivateConfig的name。 配合动态配置生效,需要nuwa基础镜像版本要保持在3.0.11版本以上,否则报错。 |
publicConfig/privateConfig均有 限制:8位以内的小写字母和数字 |
见下文样例 |
|
version |
string |
否 |
"" |
配置版本,对应NuwaRuntime的Container[0].configVeersion,对应PrivateConfig的version。 配合动态配置生效,需要nuwa基础镜像版本要保持在3.0.11版本以上,否则报错。 |
仅限于privateConfig |
见下文样例 |
示例:
# resources.yaml
- name: WiseCloudFGCEventBuilderService_cluster1
type: WiseCloud::MicroService::NuwaContainer
properties:
configs:
$ref: 'config/business_config.yaml#'
# business_config.yaml
public:
prefix: /com.huawei.wiseeye
name: public5
private:
version: 1.0.0 #(配合动态配置生效,需要nuwa基础镜像版本要保持在3.0.11版本以上,否则报错)
name: fgcva #(配合动态配置生效,需要nuwa基础镜像版本要保持在3.0.11版本以上,否则报错)
schema:
type: object
properties:
AIOPSCONFIG_AIOPSSERVER: # 默认为format: notype,如果非敏感项,可以不填
format: notype # 默认为notype,如果非敏感项,可以不填
AIOPSCONFIG_AIOPSTOKENURI: # 敏感项必须填
format: sensitive # 敏感项必须填
records: # 必填
AIOPSCONFIG_AIOPSSERVER: https://XX.XX.XX.XX:XXXX/
test: '{"a":"a","b":"b"}' # 仅支持字符串类型,[]、{}的值,yaml会识别为对象和数组,必须加单引号
timeout: '10' # 仅支持字符串类型,数字和布尔值也要加引号
enableSa: 'true'
滚动升级策略
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
rollingUpdateStrategy |
type = object({ maxSurge = string maxUnavailable = string }) |
可选 |
maxSurge : "25%" maxUnavailable: 0 |
滚动升级策略配置
|
整数:最小值为0 百分比:0% ~ 100%
|
rollingUpdateStrategy: maxSurge = "50%" maxUnavailable = "25%" |
优雅下线
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
preStopConfig |
type = object({ execCommand = list }) |
必选 |
[] |
优雅退出处理 |
- |
preStopConfig: execCommand: ["/bin/bash", "-c", "sleep 20"] |
|
terminationGracePeriodSeconds |
int |
可选 |
30 |
优雅退出宽限时间,此时间为整个POD的最大退出时间。 |
- |
terminationGracePeriodSeconds: 30 |
灰度策略
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
grayStage |
type = object({grayInstances = number grayProcess= stringgrayStatus = number }) |
可选 |
null |
灰度升级策略配置。
|
- |
grayStage: grayInstances: 50 grayProcess: "INGRAY" grayStatus: 2 |
示例:
- name: WiseCloudFGCEventBuilderService
type: WiseCloud::MicroService::NuwaContainer
properties:
grayStage:
grayInstances: 50
grayProcess: "INGRAY"
grayStatus: 2
水平自动伸缩(HPA)
如果业务不需要使用hpa,请不要配置hpa相关参数。hpa开关配置关闭,也会创建hpa资源,只是不会生效扩缩容。
|
参数 |
说明 |
是否必填 |
备注 |
|---|---|---|---|
|
hpa_scale_disabled |
是否禁用hpa,false表示不禁用;true表示禁用。 |
是 |
取值为false时开启hpa。 |
|
polling_interval |
负载检测周期,单位秒。 |
否 |
- |
|
origin_instances |
初始副本数,不配置则使用min_instances值。 |
否 |
- |
|
min_instances |
最小副本数 |
是 |
不配置默认为1。 |
|
max_instances |
最大副本数 |
是 |
不配置默认为1。 |
|
hpa_scale_triggers |
扩缩容指标配置,目前仅支持cpu/memory。 |
是 |
仅统计主容器资源。 |
|
hpa_scale_up_rules |
扩容规则,定义稳定时间窗,减少扩容毛刺。 |
否 |
- |
|
hpa_scale_down_rules |
缩容规则,定义稳定时间窗,减少缩容毛刺。 |
否 |
- |
|
hpa_scale_up_policies |
扩容策略,定义扩容步长。 |
否 |
- |
|
hpa_scale_down_policies |
缩容策略,定义缩容步长。 |
否 |
- |
示例:
在resources.yaml中添加hpa参数如下:
hpa: #弹性伸缩配置
$ref: 'config/hpa.yaml#/recommend'
在config目录,增加一个hpa.yaml文件,存放hpa的相关配置项。
recommend:
disabled: true #true表示关闭hpa,false表示开启hpa
pollingInterval: 5 #负载检测周期,单位秒
minReplicas: 2 #最小副本数
maxReplicas: 4 #最大副本数
triggers: #业务根据时间情况选择弹性伸缩策略
-type: CPU #业务容器的CPU利用率大于40%则触发扩容条件
metadata:
averageUtilization: 40%
-type: Memory #业务容器的内存利用率大于60%则触发扩容条件
metadata:
averageUtilization: 60%
指定分组和资源标签
|
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
|---|---|---|---|---|---|---|
|
resourceTag |
type = object ({group = stringfeatures = string}) |
可选 |
无 |
|
此处配置的信息要在Runtime页面提前预置好。 |
resourceTag: group: "common" features: "dev" |