你想添加什么内容?
我想添加一个配置开关来禁用OpenAPI v2和OpenAPI v3。
例如,暴露SkipOpenAPIInstallation配置。
为什么需要这个?
在我们高度极简的使用场景中,裁剪非核心功能是可行的。通过pprof分析apiserver堆栈发现,openAPIAggregationController和openAPIV3AggregationController消耗了大量内存。移除相关代码不影响基本功能,内存使用减少了超过400MB+。研究表明这些控制器处理来自各种API服务的OpenAPI V2/V3文档,包括扩展和自定义资源,将它们合并到统一的OpenAPI V2/V3规范和文档中。
我的问题是关于openapi的具体作用。如果我对OpenAPI文档的缺失或过时不感兴趣,是否可以消除与openapi相关的代码?
3条答案
按热度按时间lb3vh1jj1#
/sig api-machinery
rn0zuynd2#
/assign @Jefftree
Could you take a look? Thank you.
/triage accepted
ej83mcc03#
我们意识到OpenAPI的高内存消耗,并在过去的几个版本中做了很多努力来减少它。
例如:#118212 , #118808 , #118204 。
OpenAPI V3是一个GA功能,如果禁用它可能会破坏一些依赖项(例如:服务器端应用、CEL等),因此我们目前不支持禁用它。然而,400MB的数字似乎相当高,我可以询问您的集群支持多少额外资源(CRDs、聚合apiservers)吗?