Kubernetes 中 AWS lambda 无服务器概念的替代方案?

问题描述

我是 DevOps 世界的新手,对 Kubernetes 有疑问。 我的用例如下。
我的组织目前正在使用 Kubernetes 容器编排平台在 Docker 容器中托管其所有微服务。

我希望如何使用 Kubernetes 扩展和自动化我的微服务容器:

我在 Amazon S3 存储桶中存储了 100 个 AI 模型。当一个请求来自 user1 到具有特定模型名称的容器时, 应该从 S3 中获取相应的模型并将其加载到容器中 memory 那么 user1 应该开始推理。同样如果另一个 请求来自具有另一个模型名称的 user2,新容器应该分拆 并且 user2 应该开始推理。对于 n 个模型请求,n 个容器应该 分拆并为每个会话提供服务。容器应该自动扩展 满足不同的要求。

由于上述逻辑与 AWS Lambda 函数的工作方式类似,因此我向我们的 DevOps 团队推荐了相同的逻辑。 “他们告知他们不能将 AWS Lambda 用于单个微服务,因为它是无服务器的,而所有其他微服务都是在 Kubernetes 中运行的非无服务器”

我的问题是,相同的概念可以用 Kubernetes 实现吗?如果是这样,请建议一种方法或文档。

提前致谢。

解决方法

我会在 k8s 上使用 KFServing 进行无服务器推理。您可以将其安装为 standalone component,也可以使用完整的 Kubeflow 工具包运行它。您可以将 s3 中的模型注入服务容器,这些容器针对您可能使用的任何 ML 框架或语言进行了优化。它在底层使用 Knative 和 Istio 来实现“缩放到零”功能。

,

您是否看过 Kubeless https://kubeless.io/

我没有但我想在某个时候玩的东西。这是他们网站上的引述:

Kubeless 是 Kubernetes 原生的无服务器框架,可让您 部署少量代码(函数)而不必担心 底层基础设施。它旨在部署在 一个 Kubernetes 集群并利用所有伟大的 Kubernetes 原语。如果您正在寻找开源无服务器解决方案 克隆您在 AWS Lambda、Azure Functions 和 Google Cloud Functions,Kubeless 适合您!

,

检查 Knative 项目。它具有无服务器工作负载管理(服务组件)和事件组件。 https://knative.dev

它已被许多其他项目采用。此处列出了一些商业项目https://knative.dev/docs/knative-offerings/

Knative 被广泛采用并且拥有良好的开源社区(积极贡献等)

,

MicroFunctions 是开源的 Kubernetes Native Serverless 平台,可让您部署少量代码,而无需担心底层基础设施管道。它利用 Kubernetes 资源提供自动扩展、API 路由、监控、故障排除并支持每种编程语言。 (Nodejs、Go、python 等)。

https://github.com/microfunctionsio/microfunctions