openshift 创建一个Serverless应用程序

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: openshift 创建一个Serverless应用程序

文章目录

1. Serverless Lab

2. 将Barista应用程序转换为无服务器服务

2.1 Delete Barista Deployment and Service

2.2 Deploy Barista Component as Knative Service

3 更新咖啡店ConfigMap访问Knative咖啡师服务

3.1 Fix ConfigMap that Associates `coffee-shop` and `barista`

3.2 Restart coffee-shop Application

3.3 Access coffee-shop Web Application

4 Examine Logs

Red Hat OpenShift 4.8 环境集群搭建

openshift 如何输出json日志

openshfit Vertical Pod Autoscaler 实践

openshift Certified Helm Charts 实践

openshift 创建一个Serverless应用程序

openshift gitops 实践

openshift Tekton pipeline 实践

1. Serverless Lab

使用Knative Serverless,您可以轻松地在Kubernetes上运行无服务器容器。Knative负责网络、自动伸缩(甚至为零)和修订跟踪的细节。这让你能够专注于你的核心逻辑。

在本实验室中,您将学习如何将无服务器应用程序部署为“服务”应用程序。


Serverless服务

减少资源消耗的一种好方法是确定哪些服务需要24/7运行。示例咖啡店应用程序有三个组件: a database, a front-end coffee shop, and a service barista that makes drinks。似乎只有在咖啡订单实际提交时才需要咖啡师服务,而咖啡店前端应该始终运行。因此,有必要将咖啡师服务转换为无服务器服务,在不使用时可以扩展到零副本。


目标:


将咖啡师应用程序转换为无服务器服务

观察日志的变化

2. 将Barista应用程序转换为无服务器服务

咖啡师应用程序不需要一直运行。它只需要在创建新订单时运行。因此,当咖啡店没有流量时,应用程序不需要消耗资源。

2.1 Delete Barista Deployment and Service

Go to your Red Hat® OpenShift® Container Platform web console and log in as admin.

Use the perspective switcher to switch to the Developer perspective.

If a pop-up window appears, click Cancel.

In the navigation menu, click Topology.

A graphical representation of your application appears, displaying the app components, plus a cron job that orders drinks every minute:

1035234-20181020215539574-213176954.png

Click D barista to display the details panel.

You need to delete this barista OpenShift service and the baristadeployment before you can deploy a Knative service by the same name.

Click S barista to open the Service details page.

Select Actions → Delete Service and confirm.

Go back to Topology and click D barista again to verify that the service was deleted.

Select Actions → Delete deployment to delete the barista deployment.

Confirm the deletion.

2.2 Deploy Barista Component as Knative Service

在本节中,您将把咖啡师容器映像部署为Knative无服务器服务。Knative服务的API包不同于Kubernetes服务,扮演着不同的角色。


Kubernetes Service service.k8s.io/v1: Service is a named abstraction of software service (for example, mysql) consisting of a local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy. https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/


Knative Service serving.knative.dev/v1: A complete application: https://knative.dev/docs/reference/api/serving-api/#serving.knative.dev


On the navigation menu, click Add.

Click Container Images.

Fill in the Image stream from internal registry fields as follows:

Project: dev-coffeeshop

Image Stream: barista

Tag: latest

Complete the remaining fields as follows:

Runtime icon: select the Knative icon

Application: coffee-shop

Name: barista

Resources: select the Knative Service radio button

Create a route to the Application: check this box

Click Create

Expect the Topology view to appear with the new KSVC barista service along with its revision number.

3 更新咖啡店ConfigMap访问Knative咖啡师服务

The route to the barista part of the application has changed, so the coffee shop component cannot find it.


The old service URL was http://barista:8080/processes. The new service URL (Knative route) is http://barista.dev-coffeeshop.svc.cluster.local/processes. Knative使用项目名而不是服务名,并且端口现在由Knative处理。这将断开咖啡店应用程序和咖啡师应用程序之间的连接。


In this exercise, you reconnect them.

3.1 Fix ConfigMap that Associates coffee-shop and barista

The coffee-shop application gets its BARISTA_URL from a ConfigMap.


In the navigation menu, click ConfigMaps and then click CM coffee-shop.

Scroll down to the Data section and the BARISTA_URL of http://barista:8080/processes.

Select Actions → Edit ConfigMap.

In the YAML listing that opens, copy and paste the following URL into the BARISTA_URL value:

http://barista.dev-coffeeshop.svc.cluster.local/processes.

3.2 Restart coffee-shop Application

在本节中,您将向下扩展咖啡店部署并备份以获取ConfigMap更改。


Return to Topology and click D coffee-shop.

In the panel that appears, click the Details tab.

Expect to see three running pods.

3.使用箭头按钮来缩小到0,然后返回到3

3.3 Access coffee-shop Web Application

要确保coffee-shop应用程序工作,请在coffee-shop应用程序上单击Open URL,而不是barista应用程序:

1035234-20181020215539574-213176954.png

预计会出现一两行JSON输出。


Add /index.html to the end of the URL to access the application.

如果看到类似RESTEASY003210的错误…你走的是Knative barista的路线。这是错误的路线。使用coffee-shop路线代替。


点一杯饮料,并验证咖啡师应用程序可以扩展到处理请求

Expect to see some beverages already ordered by the order-drinks cron job. Your order is at the bottom of the list.


The order-drinks cron job orders two new drinks every minute from the coffee-shop application in the dev-coffeeshop namespace.

4 Examine Logs

如果您返回Kibana接口,您会看到结构化类型中现在有更多的字段。它们大多是当您从Kubernetes部署更改为Knative应用程序时,应用程序捕获的应用程序异常。


返回Kibana web界面,从左侧导航面板单击Discovery。

从“可用字段”一节中,将*t* structured.error.message添加到日志发现中。

使用顶部的时间滑块来关注带有错误消息的事件。

希望很容易找到错误消息,例如“RESTEASY004655: Unable to invoke r .”

java.net.NoRouteToHostException: No route to host (Host unreachable)".

您使用Knative将一个无服务器应用程序部署为一个服务应用程序。

现在,在下一个模块中,我们将继续学习GitOps。使用GitOps,您可以将咖啡馆应用程序的部署自动化到生产环境,所有这些都来自一个Git存储库。


相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
179 13
|
4月前
|
机器学习/深度学习 机器人 Serverless
FaaS 的应用场景
FaaS 的应用场景
|
4月前
|
JavaScript Java Serverless
函数计算产品使用问题之如何使用Node.js编写程序
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7天前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
49 12
|
4月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
152 10
|
1月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
99 1
|
1月前
|
运维 监控 Serverless
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
39 1
|
2月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
63 3

相关产品

  • 函数计算