kubernetes - 关于每个节点限制 100 个 Pod 的问题

标签 kubernetes

我正在尝试构建一个 Web 应用程序,每个用户都可以获得他们自己的应用程序实例,在自己的容器中运行。我是 Kubernetes 的新手,所以我可能没有正确理解某些东西。

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

最佳答案

在一个节点中拥有太多 pod 的主要问题是因为它会降低节点性能并且使管理容器更慢(有时甚至不可靠),每个 pod 都是单独管理的,增加数量将花费更多时间和更多资源。

当你创建一个 POD 时,运行时需要保持一个恒定的轨道,做探测(准备和活跃性),监控,路由规则许多其他的小位,这些小位会增加节点中的负载。

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

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

您应该考虑:

  • 更小的节点并向集群中添加更多节点或
  • 改为使用 Actors,每个客户端都是一个 Actor。许多 Actor 将在单个容器中运行。为了使其在集群周围更加平衡,您将参与者划分为多个容器实例。

  • 关于限制,this thread对问题进行了很好的讨论

    关于kubernetes - 关于每个节点限制 100 个 Pod 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55354138/

    相关文章:

    kubernetes - 无法在GKE上使用BackendConfig

    azure - 如何在 Azure Ubuntu 虚拟机 20.04 LTS 上安装 Kubernetes 集群

    google-cloud-platform - 通过kubernetes单节点集群创建服务不会给我 'ingress'外部IP,但是Google容器引擎可以(?)

    azure - 科达服务总线: All the messages getting processed by some pods of keda scaledJob

    kubernetes - 使用 token 通过服务帐户登录 GKE

    kubernetes - 我如何通过命令行进行此部署

    c# - AKS集群Pod Kube配置位置

    kubernetes - 如何将生成的 env configMap 条目用作 kustomize 中的 var?

    nginx - 在Nginx入口 Controller 中添加重写规则301

    kubernetes - 使用rook卷时kubernetes节点保持重启