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

时间:2021-02-12 19:03:38

标签: kubernetes knative

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

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

<块引用>

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

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

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

提前致谢。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

<块引用>

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

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

https://github.com/microfunctionsio/microfunctions