首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes -什么时候应该考虑在Kubernetes或常规服务docker上使用无服务器

Kubernetes -什么时候应该考虑在Kubernetes或常规服务docker上使用无服务器
EN

Stack Overflow用户
提问于 2019-08-16 03:12:48
回答 2查看 168关注 0票数 0

更一般的问题-假设我的所有技术堆栈都必须在K8S上(例如,云供应商不可知):我应该何时在K8S之上使用无服务器(例如,nuclio,kubeless) -以及何时保持docker服务?我之所以这样问,是因为我为他们两个免费获得的“自动伸缩”--所以我想知道什么时候我应该使用另一个框架……

为了简化-假设一切都是stateless...no会话

EN

回答 2

Stack Overflow用户

发布于 2019-08-21 16:08:50

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

无服务器

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

优点:

  • 部署简单性。不需要管理基础设施-只需上传您的函数,仅此而已。没有Dockerfile或Kubernetes configurations.
  • Almost所有的无服务器解决方案都支持事件触发器,这意味着它们非常适合流水线和顺序工作流。
  • 当你按函数执行付费时,无服务器比容器更便宜。当应用程序不被使用时,它会关闭,您不需要为空闲时间付费(您已经提到过,您不必为自动伸缩付费)。

缺点:

  • 当无服务器应用程序增长时,很难排除故障,因为FaaS应用程序的设计方式始终依赖于第三方供应商,因此更改云提供商可能是一件令人头疼的事情。

Docker容器

Docker是一个容器化平台,它将您的应用程序及其所有依赖项打包在docker容器中。

优点:

  • 容器技术使您可以根据需要扩展应用程序。
  • Docker containers与供应商无关,而实现无服务器始终依赖于第三方。
  • 在设置策略、管理资源和安全性方面,您可以完全灵活地控制Docker containers。

缺点:

  • 容器比虚拟机更有效地利用资源,但由于重叠网络,容器和主机系统之间的接口,它们仍然受到性能开销的影响。
  • 默认情况下,当容器关闭时,容器中的所有数据都将永远消失,除非您先将其保存到其他位置。

结论

如果你想减少应用程序管理并且不关心架构-- Serverless是最好的选择。如果您希望在指定的系统架构上部署应用程序并对其进行控制,那么Docker容器是最好的选择。因此,当比较Serverless和Docker时,归根结底是选择更适合您特定需求的。

我鼓励阅读interesting article关于这方面的文章。

票数 1
EN

Stack Overflow用户

发布于 2020-10-10 10:50:53

我正在使用为Kubernetes创建的无服务器框架:Kubeless。这很棒,因为您希望维护与云供应商无关的架构。

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

请记住以下几点:

HTTP

  • 不要期望同一个函数名有不同的方法。这意味着,一旦创建了一个函数,它就接受GET,POST,PUT等。它只是不计算HTTP动词,这是正确的,因为我们讨论的是无服务器函数,而不是API。
  • 它是原子操作的理想选择。例如:某些事件的数据库更新,从亚马逊网络服务清理资源,发送通知等。

因此,如果您需要更高级的、支持HTTP方法的、具有更多业务逻辑的东西,我建议您使用传统的API方法,它更易于维护和监控。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57514959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档