
在Kubernetes中,平台容器申请资源有request和limit概念来描述资源请求的资源最小值和最大值。
requests值在容器调度时会结合节点的运营资源容量(capacity)进行匹配选择节点。limits表示容器在节点运行时可以使用的实践资源上限,当尝试超用资源时,容器CPU会被约束(throttled) ,平台内存会终止(oom-kill) 。资源总体而言 ,运营在调度的实践时候requests比较重要 ,在运行时limits比较重要 。容器在实际使用时,平台容器资源规格 request 和 limit 的源码库资源设置规格也一直都让Kubernetes的用户饱受困扰:
对业务运维人员:希望预留相当数量的资源冗余来应对上下游链路的负载波动,保障线上应用的运营稳定性。对平台人员 :集群的实践资源装箱率高 ,节点利用率低 ,存在大量的空闲资源无法调度 ,造成算力浪费 。vivo容器平台基于Kubernetes技术对内部业务提供容器服务。内部业务统一在CICD平台部署和管理容器资源 ,容器平台自研的建站模板caas-openapi组件提供restful接口与CICD交互。
平台通过标签,从资源维度逻辑上可以分为测试池、共享池、专有池、混部池 。
测试池:为业务部署容器测试 ,一般非现网业务,为业务测试提供便利。共享池:为业务不感知物理机,类似公有云全托管容器服务。专有池:为业务独享物理机 ,类似公有云半托管容器服务,业务方独占资源 ,容器平台维护 。混部池