繁体   English   中英

关于每个节点限制100个pod的问题

[英]Question about 100 pods per node limitation

我正在尝试构建一个Web应用程序,每个用户都可以在各自的容器中运行自己的应用程序实例。 我是kubernetes的新手,所以我可能无法正确理解某些内容。

我将要使用一些物理服务器,据我所知在kubernetes中称为节点。 对于每个节点,限制为100个窗格。 因此,如果我正在构建应用程序,以便每个用户都有自己的Pod,那么每个物理服务器是否会限制为100个用户? (如果我有10台服务器,那么我只能有500个用户?)我想我可以在每个物理服务器上运行多个充当节点的VM,但这不会破坏容器化的目的吗?

节点中有太多Pod的主要问题是,这会降低节点性能,并使管理容器的速度变慢(有时甚至不可靠),每个Pod是单独管理的,增加数量将花费更多的时间和更多的资源。

创建POD时,运行时需要保持恒定的跟踪,进行探测(准备状态和活动性),监视,路由规则,这些规则会影响许多其他小的位,这些总加起来会增加节点的负载。

容器还需要处理器时间才能正常运行,即使您可以分配CPU的一部分,添加过多的容器\\ pod也会增加上下文切换并降低POD消耗其配额时的性能。

每个平台提供商还设置了自己的限制,以提供良好的服务质量和SLA,节点超载也是一个风险,因为节点是单点故障,并且高密度节点中的任何故障都可能对节点产生巨大影响。集群和应用程序。

您应该考虑:

  • 较小的节点并向群集添加更多节点,或者
  • 请改用Actor,因为每个客户都是一个Actor。 并且许多actor将在单个容器中运行。 为了使它在集群中更加平衡,您可以将参与者划分为多个容器实例。

关于限制, 该主题对关注点进行了很好的讨论

由于硬限制, 如果您有10台服务器,则只能使用1000个Pod

您可能还想在1000个可用吊舱中算出控制平面吊舱。 通常位于命名空间kube-system它可以包括(但不限于):

  • 节点日志导出器(每个节点1个)
  • 指标导出器
  • kube代理(通常每个节点1个)
  • kubernetes仪表板
  • DNS(根据节点数扩展)
  • 像certmanager这样的控制器

一个很好的经验法则是每个节点80-90个应用程序容器,因此,如果您在这些节点上没有任何其他大型部署,那么10个节点将能够处理800-900个客户端。


如果您使用容器来获得性能,则创建节点VM将违反您的目标。 但是,如果您使用容器作为部署一致环境和扩展无状态应用程序的方法,则将VM作为节点可能是有意义的。

没有魔术规则,您的情况将决定要做什么。

由于管理虚拟化集群 kubernetes集群可能使您的基础架构复杂性急剧上升,因此kubernetes可能不是管理工作负载的最有效工具。

您可能还想看看Nomad,它似乎没有那种局限性,并可能提供更符合您需求的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM