一文教会你使用Knative运行Spring Boot项目

本文介绍了如何在Knative上部署和管理Spring Boot应用,包括Knative Serving组件的功能,如零缩容和自动扩缩容。通过Skaffold和Jib实现应用的自动部署,同时展示了在Knative上实现版本管理和流量分配。文章还通过并发请求测试了自动缩放,并探讨了无流量时服务如何缩放至零。
摘要由CSDN通过智能技术生成

在本文中,我将解释什么是Knative以及如何将它与Spring Boot一起使用。尽管Knative是一个 serverless 无服务器平台,但我们可以在那里运行 任何类型的应用程序 (不仅仅是函数)。因此,我们将在那里运行一个标准的Spring Boot应用程序,它公开restapi并连接到数据库。

Knative介绍了一种在Kubernetes上管理应用程序的新方法。它扩展了Kubernetes,添加了一些新的关键特性。其中最重要的是“ 零缩容 ”。如果Knative检测到某个服务未被使用,它会将正在运行的实例数量缩减为零。因此,它提供了基于并发性或每秒请求数的内置自动缩放功能。我们还可以利用修订跟踪,它负责从应用程序的一个版本切换到另一个版本。有了Knative,你只需要专注于你的核心逻辑。

我上面描述的所有特性都是由名为“Knative Serving”的组件提供的。还有另外两个组件:“ Eventing ”和“ Build ”。构建组件已弃用,已被Tekton替换。事件组件需要注意。

源代码

如果你想自己试试,你可以随时看看我的源代码。为此,您需要克隆我的GitHub存储库: https://github.com/piomin/sample-spring-boot-on-kubernetes.git

我在以前的一些关于Spring Boot和Kubernetes的文章中使用了与示例相同的应用程序。我只想强调的是,在Knative上运行它不需要修改源代码中的任何内容。唯一需要的更改将在YAML清单中。

由于Knative提供了内置的自动缩放功能,您可能需要将其与Kubernetes上的水平pod自动缩放器(HPA)进行比较。

在Kubernetes上安装Knative

当然,在开始Spring Boot开发之前,我们需要在Kubernetes上安装Knative。我们可以使用kubectl CLI或操作符来完成。我决定在OpenShift上试试。这显然是最快的方法。我可以使用OpenShift无服务器操作符单击一下。无论您选择哪种类型的安装,进一步的步骤将适用于所有地方。

使用Knative CLI

此步骤是可选的。您可以使用CLI在Knative上部署和管理应用程序。将CLI下载到站点 https://knative.dev/docs/install/install-kn/ . 然后可以使用Docker映像部署应用程序。

$ kn service create sample-spring-boot-on-kubernetes \
   --image piomin/sample-spring-boot-on-kubernetes:latest

我们还可以使用以下命令验证正在运行的服务的列表。

$ kn service list

对于更高级的部署,更适合使用YAML清单。我们将从skafold和Jib的源代码构建开始构建。首先,让我们简单地看一下Spring Boot应用程序。

Knative的Spring Boot应用

如前所述,我们将创建一个典型的基于Spring-Boot-REST的应用程序,该应用程序连接到Mongo数据库。数据库部署在Kubernetes上。我们的模型类使用MongoDB中的 person 集合。我们来看看。

@Document(collection = "person")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Person {

   @Id
   private String id;
 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值