gpt4 book ai didi

docker - Kubernetes 使用自定义算法扩展 Pod

转载 作者:行者123 更新时间:2023-12-02 11:58:33 26 4
gpt4 key购买 nike

我们的云应用由 3 个紧密耦合的 Docker 容器组成,Nginx、Web 和 Mongo。目前我们在一台机器上运行这些容器。然而,随着我们用户的增加,我们正在寻找一种可扩展的解决方案。使用 Kubernetes,我们将形成一个多容器 pod。如果我们要复制,我们需要将所有 3 个容器作为一个单元进行复制。我们的云应用程序由移动应用程序用户使用。我们的应用程序每个 Worker 节点只能处理大约 30000 个用户,我们打算在单个 Worker 节点上放置一个 pod。一旦移动设备连接到工作节点,它必须继续只使用该机器(唯一 IP 地址)

我们计划使用 Kubernetes 来管理容器。负载均衡不适用于我们的用例,因为移动设备需要在分配后绑定(bind)到单台机器,并且每个 Pod 使用自己的持久卷独立工作。但是,如果用户数量超过 30000 等等,我们需要一种在工作节点上启动新 Pod 的方法。

我们的想法是我们有某种自定义调度程序,它根据该节点上的用户数量为移动设备分配一个工作节点(域/IP地址)。

Kubernetes 是否适合这种设计,我们如何实现自定义 pod 规模算法。

谢谢

最佳答案

捎带乔纳·本顿的回答:

虽然这在技术上是可行的——您的问题不在于 Kubernetes,而在于您的应用程序!让我指出你的问题:

Our cloud application consists of 3 tightly coupled Docker containers, Nginx, Web, and Mongo.



这是您的第一个问题:您是否只能将这三个容器部署在一起而不是独立部署 - 您无法扩展其中一个!
虽然 MongoDB 可以扩展到疯狂的负载 - 如果它与您的 Web 服务器和 Web 应用程序捆绑在一起,它将无法...

因此,您的第一步是分解这三个组件,以便可以相互独立地管理它们。下一个:

Currently we run these containers on a single machine.



虽然严格来说不是问题 - 我严重怀疑扩展您的应用程序意味着什么以及可扩展性带来的挑战!

Once a mobile device is connected to worker node it must continue to only use that machine ( unique IP address )



现在,这是一个问题。您希望在 Kubernetes 上运行应用程序,但我认为您不了解这样做的后果:Kubernetes 会编排您的资源。这意味着它将在节点之间(如果有必要到同一个节点)移动 pod(通过杀死和重新创建)。它完全自主(非常棒,让你睡个好觉)节点故障并移动了您的 pod,该 pod 现在已消失,您的用户无法再连接。您需要利用 Kubernetes 中的负载平衡功能(服务)。只有他们能够处理 Kubernetes 集群中发生的动态变化。

Using Kubernetes we would form a multi container pod.



我们还有另一个赢家——不!您正在尝试将 Kubernetes 视为您的本地基础设施!如果您继续这样做,您将在此过程中失败并诅咒 Kubernetes!

既然我告诉了你一些你认为错误的事情 - 如果我不提供一些关于如何使这项工作发挥作用的建议,我会是一个什么样的人:

在 Kubernetes 中,您的三个应用程序不应该在一个 pod 中运行!它们应该在单独的 pod 中运行:
  • 您的网络服务器工作应由 Ingress 完成既然你已经熟悉 nginx,this is probably the ingress you are looking for!
  • 您的 Web 应用程序应该是一个简单的 Deployment并通过 Service 暴露于入口
  • 您的数据库应该是一个单独的部署,您可以手动执行 through a statefullset(more advanced) through an operator并且还通过服务
  • 暴露于 Web 应用程序

    如果您还有其他问题,请随时提问!

    关于docker - Kubernetes 使用自定义算法扩展 Pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50164736/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com