我是devops世界的新手,对Kubernetes有疑问。我的使用案例如下。
我的组织目前使用Kubernetes容器编排平台在Docker容器中托管所有微服务。
我希望如何使用Kubernetes扩展和自动化我的微服务容器:
我有100个AI模型存储在Amazon S3桶中。当请求来自user1到具有特定模型名的容器时,应该从S3中获取相应的模型并将其加载到容器中内存则user1应该启动推理。同样,如果另一个请求来自user2的另一个模型名,新的容器应该派生出user2应该开始推理。对于n个模型请求,n个容器应该分拆并服务每个会话。容器应该自动伸缩有不同的要求
由于上述逻辑与AWS Lambda函数的工作原理相似,因此我向我们的开发团队推荐相同的逻辑。"他们告知他们不能将AWS Lambda用于单个微服务,因为它是无服务器的,而所有其他微服务都是在kubernetes中运行的非无服务器的">
我的问题是,同样的概念可以在Kubernetes中实现吗?如果是,请建议一个方法或文档。
提前感谢。
我将使用KFServing在k8s上进行无服务器推理。您可以将其作为独立组件安装,也可以将其与完整的Kubeflow工具包一起运行。您可以将s3中的模型注入到服务容器中,这些服务容器针对您可能使用的任何ML框架或语言进行了优化。它使用Knative &在引擎盖下进行Istio,以实现"刻度到零"。功能。
你看过Kubeless https://kubeless.io/吗?
我还没有,但我想在某个时候玩一下。以下是他们网站上的一段话:
Kubeless是一个kubernetes原生的无服务器框架部署一小段代码(函数)而不必担心底层基础设施。它被设计为部署在一个Kubernetes集群,并利用所有优秀的Kubernetes原语。如果您正在寻找开源无服务器解决方案它克隆了您可以在AWS Lambda、Azure Functions和谷歌云功能,Kubeless是为您准备的!
查看Knative项目。它具有无服务器工作负载管理(服务组件)和事件组件。https://knative.dev
它已被许多其他项目采用。这里列出了一些商业项目https://knative.dev/docs/knative-offerings/
Knative被广泛采用,并且有良好的开源社区(积极贡献等)
MicroFunctions是开源的Kubernetes原生无服务器平台,允许您部署少量代码,而不必担心底层基础设施管道。它利用Kubernetes资源提供自动扩展、API路由、监控、故障排除,并支持每种编程语言。(Nodejs,走,python . .)。
https://github.com/microfunctionsio/microfunctions