加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 服务器 > 系统 > 正文

在Kubernetes上实现无服务器的方案

发布时间:2021-05-13 13:22:13 所属栏目:系统 来源:互联网
导读:大多数云计算提供商都提供了某种无服务器平台,但是企业可以只使用两种要素来构建自己的平台。其中之一就是Kubernetes,它是容器编排系统,已成为构建组件化、弹性应用程序的标准平台。第二个是用于在Kubernetes中构建无服务器应用程序模式的众多系统中的任
大多数云计算提供商都提供了某种无服务器平台,但是企业可以只使用两种要素来构建自己的平台。其中之一就是Kubernetes,它是容器编排系统,已成为构建组件化、弹性应用程序的标准平台。第二个是用于在Kubernetes中构建无服务器应用程序模式的众多系统中的任何一个。
 
Kubernetes的大多数无服务器框架都具有以下共同特征:
 
•在本地或远程部署到任何支持Kubernetes的环境,其中包括OpenShift之类的环境。
 
•支持以任何语言编写的运行代码,并且框架中预先包装了一些常见的运行代码。
 
•通过多种事件触发代码执行:HTTP端点、队列消息。
 
在Kubernetes上构建无服务器的主要优势之一是可以更好地控制基础平台。许多无服务器产品限制了它们运行的​​功能的行为,有时使某些类型的应用程序不切实际。使用Kubernetes,企业可以创建满足其需求的无服务器平台,将基础设施留给Kubernetes运营商,让开发人员专注于编写基本代码。
 
以下是将无服务器功能带入Kubernetes的五个主要项目:
 
1.Fission
 
Fission是由Managed-Kubernetes公司Platform 9创建和维护的。其主要优点是允许企业创建FaaS应用程序,而无需构建容器,只需提供定义文件。
 
Fission可以安装或不安装Helm图表,并且可以安装在两个版本中。有一个完整版本的消息队列和InfluxDB支持日志记录,还有一个具有基本功能的精简版本。前者是为生产部署而设计的,而后者则是为了进行测试。
 
要将代码添加到Fission部署中,请使用基于YAML的规范文件。使用Fission的命令行工具,企业可以为函数以及用于触发其入口点的路由创建YAML文件。spec文件还允许企业为代码提供环境变量、辅助容器、卷和Kubernetes容差控件。
 
Fission还提供“工作流”。工作流由Helm图表安装,将一个功能的输出传递给另一个功能。这些功能甚至不必使用相同的语言。需要注意,尽管工作流系统支持许多常见的原始二进制类型以降低开销(例如整数或通用字节流),但这会以性能为代价,因为每个功能的输出都呈现为交换格式。
 
最初与FaaS关联的缺点之一是,第一次调用功能时,启动与之关联的容器会有明显的延迟。Fission使容器保持预热状态,以最大程度地减少功能首次运行时的延迟。
 
Fission为开发人员和管理人员提供了其他便利。可以将服务部署到没有外部互联网访问的集群中,并且可以根据需要将代码重新加载到集群中。还可以记录并重放功能活动,以帮助调试。
 
Fission项目是在高度自由的Apache许可下提供的,因此可以根据需要自由修改。
 
2.Knative
 
Knative最初是由谷歌公司创建的,用于在Kubernetes上运行无服务器应用程序,而Knative则专注于生产中无服务器部署所共有的模式。但是,Knative需要直接专业知识来管理许多Kubernetes组件才能有效使用。
 
除了Kubernetes,Knative还需要路由系统或服务网格(例如Istio),但也可以使用其他选项(例如Ambassador和Gloo)。这意味着需要做更多的工作,但是该项目提供了在各种云计算服务和Kubernetes环境(包括普通Kubernetes)中使用每个选项的详细指南。
 
Knative主要通过利用或扩展现有的Kubernetes工具和功能来工作。应用或功能通过YAML文件进行配置,并作为企业构建的Docker容器交付。通过kubectl命令行应用程序可以添加、修改或删除定义。有关Knative应用的指标,需要使用Grafana。缩放可以使用Knative自己的自动缩放器,也可以使用任何其他与Kubernetes兼容的缩放器,其中包括定制的缩放器。
 
Knative正在大力开发中,其许多专用工具仍处于粗糙状态。其中包括knctl,这是专门用于Knative的CLI,如果企业只想专注于Knative,则可以避免使用Kubernetes的其他工具来管理Knative的麻烦。通过消除容器构建步骤在Knative上构建Go应用的工具。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读