Kubernetes 我应该考虑何时使用无服务器在KubNETES或常规服务码头上?

Kubernetes 我应该考虑何时使用无服务器在KubNETES或常规服务码头上?,kubernetes,nuclio,Kubernetes,Nuclio,更多的是一个一般性问题- 假设我的所有技术堆栈都必须在K8S上,例如云供应商不可知: 什么时候我应该在K8S上使用无服务器,例如nuclio、kubeless?什么时候作为docker继续服务? 我问这个问题是因为我免费获得了这两个框架的自动缩放功能,所以我想知道什么时候我应该使用另一个框架 为了简化-假设一切都是无状态的…没有会话我首先要说的是,无服务器技术比Docker容器更具创新性。然而,它们都有各自的优点和缺点 无服务器 从无服务器开始,可以为几乎任何类型的应用程序或后端服务构建它们,并

更多的是一个一般性问题- 假设我的所有技术堆栈都必须在K8S上,例如云供应商不可知: 什么时候我应该在K8S上使用无服务器,例如nuclio、kubeless?什么时候作为docker继续服务? 我问这个问题是因为我免费获得了这两个框架的自动缩放功能,所以我想知道什么时候我应该使用另一个框架


为了简化-假设一切都是无状态的…没有会话

我首先要说的是,无服务器技术比Docker容器更具创新性。然而,它们都有各自的优点和缺点

无服务器 从无服务器开始,可以为几乎任何类型的应用程序或后端服务构建它们,并且可以为您处理以高可用性运行和扩展应用程序所需的一切

赞成的意见: 部署简单。无需管理基础设施,只需上传功能即可。没有Dockerfiles或Kubernetes配置

几乎所有无服务器解决方案都支持事件触发器,这意味着它们非常适合于管道和顺序工作流

当您按功能执行付费时,无服务器比容器便宜。当一个应用程序不被使用时,它会关闭,您不必为您提到的无需为自动缩放付费的空闲时间付费

欺骗: 当无服务器应用程序增长时,由于FaaS应用程序的工作方式,很难排除故障


Serverless始终依赖于第三方供应商,因此更改云提供商可能是一件令人头痛的事情

码头集装箱 Docker是一个容器化平台,它将应用程序及其所有依赖项打包在Docker容器中

赞成的意见: 容器技术使您能够根据需要扩展应用程序。 Docker容器与供应商无关,而无服务器的使用总是依赖于第三方。 在设置策略、管理资源和安全性方面,Docker容器具有完全的灵活性和控制能力。 欺骗: 容器比虚拟机更有效地利用资源,但由于容器和主机系统之间的重叠网络连接,它们仍然会受到性能开销的影响。 默认情况下,当容器关闭时,容器内的所有数据将永远消失,除非您先将其保存到其他位置。 结论 如果您想减少应用程序管理,而不关心体系结构,那么无服务器是最好的选择。如果希望在指定的系统体系结构上部署应用程序并对其进行控制,那么Docker容器是最佳选择。因此,在比较无服务器和Docker时,归根结底是选择更适合您特定需求的服务器


我鼓励您阅读它。

我正在使用为Kubernetes创建的无服务框架:。这很好,因为您希望从云供应商那里维护不可知的体系结构

Kubeless函数在引发某个事件HTTP调用或某个cron作业时触发。但是,在您的基础架构中,您应该始终至少运行一个容器来执行代码。Kubeless就是这样,它将像其他集装箱一样,根据需求自动伸缩

要记住的几点:

不要期望对同一个函数名使用不同的HTTP方法。这意味着,一旦创建了一个函数,它就接受GET、POST、PUT等。它只是不计算HTTP谓词,这是正确的,因为我们谈论的是无服务器函数,而不是API。 它是原子操作的理想选择。例如:一些事件的数据库更新、从AWS清理资源、发送通知等。 因此,如果您需要更高级的东西,支持HTTP方法和更多的业务逻辑,我建议使用传统的API方法,更易于维护和监控


查看关于如何使用Kubeless实现无服务器功能的文章。

>无服务器始终依赖于第三方供应商,因此更改云提供商可能是一件令人头痛的事情,但事实并非如此。有很多开源的云不可知无服务器解决方案:Nuclio、Knative、OpenFaaS、Kubeless、ApacheOpenWhisk、裂变、Fn项目等等。