响应Kubernetes的请求缩放服务



假设:

  1. 我有一项服务,该服务在开始时获得ID。

  2. 我希望每个服务过程都在单独的K8S吊舱中运行。

  3. 我想在此前面放置一个API,其中用户输入ID n并响应:

    1. 如果ID n的服务正在运行,则我将用户路由到它。

    2. 如果没有为id n运行的服务,我会启动一个(即旋转一个新的吊舱(,然后将用户路由那里。

我对(3.2(有一些想法:

  1. 使用K8S API直接旋转"路由器"服务。那感觉是错误的,但也许不是吗?

  2. 没有运行服务的传入请求在队列中触发基于队列大小的水平吊舱缩放,并让新服务将ID从队列中取下。

我错过了一个原始的,可以在这里对我有帮助?在Kubernetes上实施此操作的最惯用方法是什么?如果完全相关,我将在AKS上运行所有这些。

阅读您对我的要求,就像您在Kubernetes上需要更多类型的Paas一样,而不是缩放服务。现有的解决方案,例如检查" Deis Workflow"。

如果您真的打算从头开始创建这样的解决方案,我将用作(1& 2(的概念证明Kubernetes的软件包管理器工具,称为Helm,该工具可用于更高级别的抽象 - 构成整个工作应用程序的单个"发行"的kubernetes资源:吊舱,服务,持久量等。

您可以通过" ID"平均地对待"发布"。在K8S cluster中没有创建的释放=您的服务缩放为零。除了" Helm"客户端工具之外,您还为您提供了一种简便的方法来查找应用程序URL(特定用户ID的目标路由(。使用Kubernetes API客户端库或Kubernetes Rest API可以从Kubernetes API访问相同的信息,您的前端将使用(3(。

最新更新