本文共 3253 字,大约阅读时间需要 10 分钟。
web服务器中启用作业储存
在本系列的前两篇文章中,介绍在开放源代码平台上使用无服务器平台的过程,我介绍了以及使用流行的语言以及在Apache OpenWhisk上使用容器来构建组件。
在第三篇文章中,我将您在环境中启用无服务器。 Kubernetes是管理无服务器工作负载和微服务应用程序容器的最受欢迎的平台,并使用细粒度的部署模型来更快,更轻松地处理工作负载。
请记住,无服务器不仅可以帮助您在将消耗模型用于实际服务使用时减少基础架构管理,而且还提供了云平台所提供服务的许多功能。 无服务器或FaaS(功能即服务)平台有很多,但Kuberenetes是构建无服务器平台的一流公民,因为有超过基于Kubernetes的 。
但是,Kubernetes不允许您以本机方式为无服务器工作负载构建,提供和管理应用程序容器。 例如,如果您想在Kubernetes上构建以从源代码构建,测试和部署云原生应用程序,则需要使用自己的发布管理工具并将其与Kubernetes集成。
同样,除非您使用基于Kubernetes构建的独立的无服务器或FaaS平台(例如 , 或 ,否则很难将Kubernetes与无服务器计算结合使用。 更重要的是,开发人员仍然很难从Kubernetes环境中了解如何处理来自云原生应用程序的无服务器工作负载的功能。
为开发人员而生,他们无需依赖额外的无服务器或FaaS框架以及许多自定义工具,就可以在本地创建无服务器体验。 Knative有三个主要组件- , 和 -用于解决普通模式和最佳实践开发在Kubernetes平台无服务器应用程序。
要了解更多信息,让我们看一下使用Knative提高开发效率并从开发人员的角度解决Kubernetes的困难的常规开发过程。
步骤1:使用或从头开始生成您的云原生应用程序。 开始使用实施业务逻辑,并且您还可以进行组装测试以查看该功能在许多本地测试工具中是否正常运行。
| |
步骤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上自动扩展无服务器容器,然后在特定时间段(例如两分钟)内没有对容器的请求时将它们缩减到零。 更重要的是, 将以多种安全方式自动处理无服务器工作负载的进出网络流量。 这是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。 在此步骤中,您可以定义事件通道和订阅,这些事件和订阅是通过消息传递平台(例如或传递到您的服务的。 这是事件来源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环境中构建无服务器应用程序节省大量时间。 通过专注于开发无服务器应用程序,功能或云原生容器,它还可以使开发人员的工作更加轻松。
翻译自:
web服务器中启用作业储存
转载地址:http://kqczd.baihongyu.com/