走进Knative的大门,Knative学习笔记
尽管自2018以来,社区一直保持着口碑,但最近有一些关于该项目的谣言,因为谷歌最近向云计算计算基金会(CNCF)提交了KNCF作为孵化项目。
有了knative,你只需要创建一个资源——knative服务——然后knative将协调一组资源,让你完成上面kubernetes示例中介绍的所有内容!此外,可以通过开箱即用(yaml)或使用外部命令访问应用程序。
它是如何工作的?
kn服务创造阳光——图像=彩虹
我将暂时解释每一个组成部分。但现在我想让你们知道两件事:
流量通过非活动路径进入集群。默认情况下,路由会将100%的流量发送到最新版本,但这是可配置的,将在本文后面讨论。
太酷了!但是什么是无赖呢?
简而言之,knative是一种简化和增强应用程序在kubernetes上运行方式的技术。Knative本身在kubernetes上运行,有两个主要组件:Knative发球和Knative事件。这篇文章是关于无赖服务的。
库伯内特斯很复杂
knative如何简化在kubernetes上运行应用程序的过程?要理解这一点,您必须首先了解在kubernetes上部署应用程序是复杂的。首先部署,最后管理多个复制集(每个应用程序版本一个)。每个replicaset运行一个或多个pod,这是应用程序容器运行的地方。通常,每个豆荚都有一个容器。
但是,您还需要创建一个服务,在集群内公开您的应用程序(以便应用程序的其他部分可以访问它),并创建一个门户,使您的应用程序在集群外可用(以便最终用户可以访问它)。如果你想自动缩放,你需要制作一个水平吊舱自动缩放仪(HPA)。您还需要与应用程序分开管理配置和机密信息。
这需要很多考虑。这对开发人员来说是一个很高的学习门槛——他们应该花时间编写应用程序代码。
进入无意义的介绍
Knative简化了应用程序部署
kn服务创造阳光——图像=彩虹
运行kn service create命令以提供应用程序名称、应用程序映像和任何配置(环境变量、首选端口等),knative将为您创建knative服务。
Knative服务将自动为您的服务创建配置和路由。配置和管理修订流程,每个修订都与kubernetes部署和knative pod autoscaler(kPa)关联。
- 运行kn service create命令时,将为您创建所有这些对象,该命令将返回一个URL,您可以在其中访问正在运行的应用程序。就这么简单。
- 除了支持knative资源的kubernetes资源外,您还可以查看、访问和操作kubernetes集群中的所有这些knative资源。Knative建立在kubernetes的基础上,但并没有隐藏它。
在这一点上,我们的系统只有一个版本,所以它的运行方式如下:
Knative pod autoscaler(kPa)正在监控修订版收到的请求数量,并将根据需要自动扩展kubernetes部署中的pod数量。(同样,我将在这里深入研究修订。)。
然后看看:当应用程序没有流量时,knative会将POD的数量调整为零。没错!与kubernetes不同,您需要始终至少运行一个pod实例来为您的应用程序服务,而knative可以扩展到零。然后,当客户端请求访问您的应用程序时,knative开始实际运行应用程序的pod。这可以节省大量资金,使应用程序全年运行。
采用knative修订版的清洁排放管理
正如我前面提到的,knative配置对象管理一个修订流。什么是knative的修订版?修订版是当前代码和配置的时间快照,包含运行该特定版本应用程序所需的所有信息。这与kubernetes管理配置的方式不同(在我看来,这更好),并且与源代码分离。 是否要升级应用程序以使用最新的容器映像?猛敲Knitive进行了新的修订。是否要立即更新应用程序的配置?猛敲新版本。这些修正案是有序的、不变的,可以无限期地继续下去。
分流 使用修订版管理版本有两个主要好处。首先,您可以轻松地在修订版之间分配流量。这在启动新版本时特别有用。假设你现在有100%的流量到修订版2,并且你已经准备好了
#学习路径#