跳到主要内容
博客容器(Kubernetes, Docker)用Knative管理无服务器的Kubernetes应用

使用 Knative 管理无服务器 Kubernetes 应用程序

用Knative博客图片管理无服务器的Kubernetes应用

无服务器架构,简而言之,消除了开发人员管理服务器的需要。服务器仍然在后台运行,但维护和扩展其基础设施的负担被转移到了云供应商身上。开发人员能够将他们的代码大大精简到特定的功能,并通常利用 "按需 "成本模式,即他们只在执行某个功能时支付资源。

当 API 端点触发事件时,函数就会运行,从而使状态不可预测或快速变化的应用程序能够通过从主应用程序中抽象出来的函数进行横向扩展。在实践中,当购物者在电子商务网站上选择产品时,可能会触发一个函数,旨在检查数据库以查看该产品是否有库存,并获取最新的价格信息。

Knative是建立在Kubernetes之上的强大功能工具集,用于管理无服务器应用程序。Knative使你的Kubernetes集群能够将pods扩展到零,同时仍可提供资源,以便pods在需要时能够扩展。

Knative支持可定制的事件和触发器,以控制你的应用程序如何响应。它是一个可移植的、供应商中立的工具,因此你可以将它与你喜欢的管理型Kubernetes服务(如我们自己的Linode Kubernetes引擎)一起使用,或者安装在本地集群上。Kubernetes和这个可安装的功能平台一起,优化了在Kubernetes上运行应用程序的状态管理和自我修复的好处。

Knative提供:

  • 自动扩展:Knative提供基于流量和需求的自动扩展,包括扩展到零。这提高了资源利用率并降低了成本。
  • 事件驱动的计算:Knative允许无服务器工作负载对事件和触发器做出反应。
  • 可移植性:Knative被设计成可以在不同的云供应商和环境中工作。这使得开发者可以在不修改代码的情况下将无服务器应用程序部署到不同的环境中。
  • 可扩展性:Knative提供了一套可定制的构建模块,以满足特定的应用需求。
  • 企业可扩展性:Knative得到了Puppet 和Outfit7等公司的信任。

它是如何工作的

Knative的功能分为Knative Eventing和Knative Serving。

  • 事件化: 实现汇的API集合,或通过HTTP POST请求将事件从事件生产者路由到事件消费者。
  • 服用: 将一组对象定义为 Kubernetes 自定义资源定义 (CRD),或创建 Kubernetes 的扩展。 API.这决定了无服务器工作负载如何通过以下资源与 Kubernetes 集群交互。
    • 路由: 网络端点与修订版端点的映射和流量管理。 
    • 配置: 保持你所期望的状态,作为一个独立于你的代码的层。
    • 修订: 你的代码和配置的快照,用于每一个变化和修改。
    • 服务: 工作负载管理,控制对象的创建,并确保你的应用程序不断有一个路由、配置和修订,以最新的修订,或特定的修订。Knative默认使用Istio网关服务。
图中显示了Kubernetes集群的各层。Istio是服务网,处理查询路由和负载平衡。Knative位于中间,具有事件和服务功能,而Kubernetes集群则位于底部。
Knative使用Kubernetes作为协调器,Istio处理查询路由和负载平衡。

你可以使用YAMLKnative Operator for Kubernetes将Knative安装到你的集群中。还有Knative Helm图表,由Kubernetes社区成员提交。Knative有一个快速启动环境,但这只推荐用于测试目的。

开始使用Akamai云

Knative是LKE内置自动缩放器的一个很好的补充,它可以让你轻松控制集群节点池中的最小和最大节点。同时使用Knative和autoscaler,可以在pod和基础设施层面进行精细化管理。

为了帮助你开始学习,我们有一个新的点播课程!我们与Coding for Entrepreneurs的Justin Mitchel合作,推出了新的Try Knative点播课程,于2023年2月28日开课。这个视频系列包括使用Terraform 创建一个Kubernetes集群,配置Knative服务,以及部署一个容器化的应用程序。


评论 (1)

  1. Author Photo

    It was helpful

留下回复

您的电子邮件地址将不会被公布。 必须填写的字段被标记为*