参数配置说明
基础参数
参数名称 |
参数类型 |
是否必选 |
默认值 |
说明 |
参数规范 |
举例 |
---|---|---|---|---|---|---|
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 乌兰察布一:swr.cn-north-9.myhuaweicloud.com 华南广州:swr.cn-south-1.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" |