启动参数说明

KubeVela 控制器的各项启动参数及其说明如下。

参数名类型默认值描述
use-webhookboolfalse使用 Admission Webhook
webhook-cert-dirstring/k8s-webhook-server/serving-certsAdmission Webhook 的密钥文件夹
webhook-portint9443Admission Webhook 的监听地址
metrics-addrstring:8080Prometheus 指标的监听地址
enable-leader-electionboolfalse为 Controller Manager 启用 Leader Election,确保至多有一个控制器处于工作状态
leader-election-namespacestring“”Leader Election 的 ConfigMap 所在的命名空间
log-file-pathstring“”日志文件路径
log-file-max-sizeint1024日志文件的最大量,单位为 MB
log-debugboolfalse将日志级别设为调试,开发环境下使用
application-revision-limitint2最大维护的应用历史版本数量,当应用版本数超过此数值时,较早的版本会被丢弃
definition-revision-limitint2最大维护的模块定义历史版本数量
autogen-workload-definitionbooltrue自动为 组件定义 生成 工作负载定义
health-addrstring:9440健康检查监听地址
apply-once-onlystringfalse工作负载及特征在生成后不再变更,在特定需求环境下使用
disable-capsstring“”禁用内置的能力
storage-driverstringLocal应用文件的存储驱动
application-re-sync-periodtime5m无变更情况下,控制器维护应用资源的周期
informer-sync-periodtime10h系统参数,用于配置 controller-runtime 基础库中的轮询同步间隔。
reconcile-timeouttime3m控制器单轮轮询的超时时间
reconcile-termination-graceful-periodtime5s当单次应用处理超时时,用于记录状态的额外允许时间。
system-definition-namespacestringvela-system系统级特征定义的命名空间
concurrent-reconcilesint4控制器处理请求的并发线程数
kube-api-qpsint50控制器访问 apiserver 的速率
kube-api-burstint100控制器访问 apiserver 的短时最大速率
oam-spec-varstringv0.3OAM 标准的使用版本
pprof-addrstring“”使用 pprof 监测性能的监听地址,默认为空时不监测
perf-enabledboolfalse启用控制器性能记录,可以配合监控组件监测当前控制器的性能瓶颈
enable-cluster-gatewayboolfalse启动多集群功能
max-workflow-wait-backoff-timeint60工作流步骤处于等待状态下进行重试的最大时间间隔(单位:秒)
max-workflow-failed-backoff-timeint300工作流步骤处于失败状态下进行重试的最大时间间隔(单位:秒)
max-workflow-step-error-retry-timesint10工作流步骤处于错误状态下进行重试的最大次数

未列在表中的参数为旧版本参数,当前版本 v1.1 无需关心

  • application-re-sync-period: 在应用配置未发生变化时,KubeVela 控制器主动维护应用的间隔时间。过短的时间会导致控制器频繁调谐不需要同步的应用。间隔性地维护确保应用及其组件的状态保持同步,不会因特殊情况造成的状态不一致持续过长时间
  • concurrent-reconciles: 用来控制并发处理请求的线程数,当控制器能够获得较多的 CPU 资源时,如果不相应的提高线程数会导致无法充分利用多核的性能
  • kube-api-qps / kube-api-burst: 用来控制 KubeVela 控制器访问 apiserver 的频率。当 KubeVela 控制器管理的应用较为复杂时 ( 包含较多的组件及资源 ),如果 KubeVela 控制器对 apiserver 的访问速率受限,则较难提高 KubeVela 控制器的并发量。然而过高的请求速率也有可能对 apiserver 造成较大的负担
  • pprof-addr: 开启该地址可以启用 pprof 进行控制器性能调试
  • perf-enabled: 启用时可以在日志中看到 KubeVela 控制器管理应用时各个阶段的时间开销,关闭可以简化日志记录

性能调优章节中包含了若干组不同场景下的推荐参数配置。

你可以为控制器配置 --feature-gates=XXX=true 来启用 XXX 能力。下列配置默认不启用,你可以通过开启这些参数来配置控制器的能力。

  • AuthenticateApplication: 对应用进行鉴权。
  • ZstdResourceTracker: 对 ResourceTracker 的存储使用 Zstd 压缩。当你的系统中有较大应用并需要管控较多资源时,启用这个能力可以大幅节约你的系统存储开销(并略微增加运算开销)。默认开启。
  • ZstdApplicationRevision: 对 ApplicationRevision 的存储使用 Zstd 压缩。效果类似于ZstdResourceTracker。默认开启
  • ApplyOnce: 为所有应用都启用 ApplyOnce 能力,禁用全部状态维持。ResourceTracker 将不会存储资源的详细信息,进而大幅节约系统存储开销。
  • MultiStageComponentApply: 启用多阶段组件资源部署能力。当启用时,组件内的资源下发可分不同批次下发。
  • ApplyResourceByUpdate: 对资源的修改使用 Update 而非 Patch。启用该功能的副作用是增加网络通信量以及更多的潜在冲突。如果启用该功能,KubeVela 控制器将会对管控的资源施加强限制,不允许任何外界系统直接修改底层被管控资源,即 KubeVela 应用保存了对于目标资源的完整描述。
  • PreDispatchDryRun: 在下发资源之前进行 DryRun 校验。启用该能力有助于阻止不合法请求的资源被记录进 ResourceTracker,从而优化垃圾回收的体验。代价是增加下发请求的网络通信量。默认开启。

Last updated on 2023年2月9日 by dependabot[bot]