无服务计算已成为当今软件开发的一个热门议题。相较于传统的基于容器的计算方式,无服务器计算(Serverless)可以提供更加灵活、弹性、以及高效的计算能力。
在本文中,我们将介绍如何在 Kubernetes 上进行无服务计算。我们将会涉及什么是无服务计算,它在 Kubernetes 上的架构,以及如何创建和调用无服务服务。
什么是无服务计算
无服务器计算是一种新的计算架构,它对使用者屏蔽了底层计算资源,用户可以更加专注于编写业务代码,而让系统自动进行资源的分配与扩缩容。简单来说,无服务器计算是一种按照使用量计费的、自动扩缩容计算服务。
这种应用程序的架构是事件驱动的,用户的应用程序只有在接收到请求时才会被执行。因此,无服务器计算极大地提高了资源的利用效率,可以节省不必要的资源开销。
Kubernetes 上的无服务计算
在 Kubernetes 上进行无服务器计算需要一些额外的插件,其中最常用的插件是 Knative。Knative 是一个为开发者搭建 Serverless 的框架,它是 Kubernetes 上的一个扩展,可提供自动扩缩容、请求路由和转换等功能,使用起来非常便捷。
Knative 有两个主要的组件:Build 和 Serving。Build 组件是负责进行自动化构建应用程序镜像的,而 Serving 组件则提供了应用程序的部署、自动扩缩容和服务发现等功能。
创建无服务服务
创建无服务服务非常简单,开发者只需要在 Kubernetes 集群上部署一个 Knative Server,然后根据需求创建服务就好了。下面是一个创建无服务服务的示例。
首先需要定义服务配置:
-- -------------------- ---- ------- ----------- ---------------------- ----- ------- --------- ----- ---------- ----- --------- --------- ----- ---------- ----- ----------- - ------ ----------------------
然后,将配置提交到 Kubernetes 集群:
kubectl apply -f helloworld.yaml
接下来,我们可以使用 kubectl get ksvc
命令来查看并获取服务的 URL。
kubectl get ksvc helloworld --output=custom-columns=NAME:.metadata.name,DOMAIN:.status.domain
此时,应该可以看到服务 URL 和服务名,类似这样:
NAME DOMAIN helloworld helloworld.default.example.com
调用无服务服务
一旦服务已经部署好了,你就可以通过 CURL、Postman 或者浏览器等方式来调用服务。下面是一个基于 CURL 的示例:
curl http://helloworld.default.example.com
然后,你应该可以在终端上看到该应用程序的输出了。
结论
这篇文章介绍了如何在 Kubernetes 上进行无服务器计算,同时讨论了 Knative 这个重要的扩展和无服务计算的架构。当然,无服务器计算还有许多其他地方还需要进一步研究和探索,但目前已经有越来越多的企业将它应用于产品实践中。如果你正在寻求一种更加灵活、弹性、高效的计算方式,不妨尝试一下无服务器计算吧。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6729782a2e7021665e2496e7