web服务器中启用作业储存_如何在Kubernetes中启用无服务器计算

 2023-09-18 阅读 22 评论 0

摘要:web服务器中启用作业储存免费web服务器? 在本系列的前两篇文章中,介绍了在开放源代码平台上使用无服务器平台的过程,我介绍了如何开始使用无服务器平台,以及如何使用流行的语言编写函数以及如何在Apache OpenWhisk上使用容器来构建组件。 在第三篇文章

web服务器中启用作业储存

免费web服务器? 在本系列的前两篇文章中,介绍了在开放源代码平台上使用无服务器平台的过程,我介绍了如何开始使用无服务器平台,以及如何使用流行的语言编写函数以及如何在Apache OpenWhisk上使用容器来构建组件。

在第三篇文章中,我将引导您在Kubernetes环境中启用无服务器。 Kubernetes是管理无服务器工作负载和微服务应用程序容器的最受欢迎的平台,并使用细粒度的部署模型来更快,更轻松地处理工作负载。

请记住,无服务器不仅可以帮助您在将消耗模型用于实际服务使用时减少基础架构管理,而且还提供了云平台所提供服务的许多功能。 无服务器或FaaS(功能即服务)平台有很多,但Kuberenetes是构建无服务器平台的一流公民,因为有超过13个基于Kubernetes的无服务器或FaaS开源项目 。

但是,Kubernetes不允许您以本机方式为无服务器工作负载构建,提供和管理应用程序容器。 例如,如果您想在Kubernetes上构建CI / CD管道以从源代码构建,测试和部署云原生应用程序,则需要使用自己的发布管理工具并将其与Kubernetes集成。

同样,除非您使用基于Kubernetes构建的独立的无服务器或FaaS平台(例如Apache OpenWhisk , Riff或Kubeless) ,否则很难将Kubernetes与无服务器计算结合使用。 更重要的是,开发人员仍然很难从Kubernetes环境中了解如何处理来自云原生应用程序的无服务器工作负载的功能。

基尼特语

Knative为开发人员而生,他们无需依赖额外的无服务器或FaaS框架以及许多自定义工具,就可以在本地创建无服务器体验。 Knative有三个主要组件- 构建 , 服务和三项赛 -用于解决普通模式和最佳实践开发在Kubernetes平台无服务器应用程序。

要了解更多信息,让我们看一下使用Knative提高开发效率并从开发人员的角度解决Kubernetes的困难的常规开发过程。

步骤1:使用Spring Initializr或Thorntail Project Generator从头开始生成您的云原生应用程序。 开始使用12要素应用程序方法实施业务逻辑,并且您还可以进行组装测试以查看该功能在许多本地测试工具中是否正常运行。

Spring Initializr screenshot
Thorntail Project Generator screenshot

步骤2:通过Knative Build组件从源代码存储库中构建容器映像。 您可以定义多个步骤,例如安装依赖项,运行集成测试以及将容器映像推送到安全的映像注册表中,以使用现有的Kubernetes原语。 更重要的是,Knative Build使开发人员的日常工作变得更加轻松和简单-“无聊却又困难”。 这是Build YAML的示例:

apiVersion : build.knative.dev/v1alpha1
kind
: Build
metadata
:
name
: docker-build
spec
:
serviceAccountName
: build-bot
source
:
git
:
revision
: master
url
: https://github.com/redhat-developer-demos/knative-tutorial-event-greeter.git
steps
:
- args
:
   - --context=/workspace/java/springboot
- --dockerfile=/workspace/java/springboot/Dockerfile
- --destination=docker.io/demo/event-greeter:0.0.1
env
:
- name
: DOCKER_CONFIG
value
: /builder/home/.docker
image
: gcr.io/kaniko-project/executor
name
: docker-push

步骤3:通过Knative Serving组件将容器应用程序部署并作为无服务器工作负载提供服务。 此步骤显示了Knative的优点,它可以自动在Kubernetes上自动扩展无服务器容器,然后在特定时间段(例如两分钟)内没有对容器的请求时将它们缩减到零。 更重要的是, Istio将以多种安全方式自动处理无服务器工作负载的进出网络流量。 这是Serving YAML的示例:

apiVersion : serving.knative.dev/v1alpha1
kind
: Service
metadata
:
name
: greeter
spec
:
runLatest
:
configuration
:
revisionTemplate
:
spec
:
container
:
image
: dev.local/rhdevelopers/greeter:0.0.1

步骤4:通过Knative的Eventing组件将运行中的无服务器容器绑定到各种事件平台,例如SaaS,FaS和Kubernetes。 在此步骤中,您可以定义事件通道和订阅,这些事件和订阅是通过消息传递平台(例如Apache Kafka或NATS流)传递到您的服务的。 这是事件来源YAML的示例:

apiVersion : sources.eventing.knative.dev/v1alpha1
kind
: CronJobSource
metadata
:
name
: test-cronjob-source
spec
:
schedule
: "* * * * *"
data
: ' { "message" : "Event sourcing!!!!" } '
sink
:
apiVersion
: eventing.knative.dev/v1alpha1
kind
: Channel
name
: ch-event-greeter

结论

使用Knative开发将在Kubernetes环境中构建无服务器应用程序节省大量时间。 通过专注于开发无服务器应用程序,功能或云原生容器,它还可以使开发人员的工作更加轻松。


接下来要读什么

翻译自: https://opensource.com/article/19/4/enabling-serverless-kubernetes

web服务器中启用作业储存

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/72946.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息