Serverless 工程实践 | 零基础上手 Knative 应用

简介: Knative 是一款基于 Kubernetes 的 Serverless 框架。其目标是制定云原生、跨平台的 Serverless 编排标准。

Knative 介绍

Knative 通过整合容器构建(或者函数)、工作负载管理(动态扩缩)以及事件模型这三者实现其 Serverless 标准。

在 Knative 体系架构下,各角色的协作关系如下图所示。

  • 开发者是指 Serverless 服务的开发人员可以直接使用原生 Kubernetes API 基于 Knative 部署 Serverless 服务。
  • 贡献者主要是指社区的贡献者。
  • Knative 可以被集成到支持的环境中,例如云厂商或者企业内部。目前,Knative 是基于Kubernetes来实现的,所以可以认为有 Kubernetes 的地方就可以部署 Knative。
  • 用户指终端用户,其通过Istio网关访问服务或者事件系统触发 Knative 中的 Serverless 服务。
  • 作为一个通用的 Serverless 框架,Knative 由 3 个核心组件组成。
  • Tekton:提供从源码到镜像的通用构建能力。Tekton 组件主要负责从代码仓库获取源码并编译成镜像,推送到镜像仓库。所有这些操作都是在 Kubernetes Pod 中进行的。
  • Eventing:提供事件的接入、触发等一整套事件管理能力。Eventing 组件针对 Serverless 事件驱动模式做了一套完整的设计,包括外部事件源的接入、事件注册、订阅以及事件过滤等功能。事件模型可以有效地解耦生产者和消费者的依赖关系。生产者可以在消费者启动之前生成事件,消费者也可以在生产者启动之前监听事件。

1.png

在 Knative 体系架构下各角色的协作关系

  • Serving:管理 Serverless 工作负载,可以和事件很好地结合,并且提供了基于请求驱动的自动伸缩能力,而且在没有服务需要处理的时候可以缩容到零。Serving 组件的职责是管理工作负载以对外提供服务。Serving 组件最重要的特性就是自动伸缩的能力。目前,其伸缩边界无限制。Serving 还具有灰度发布能力。

Knative 部署

本文将会以在阿里云部署 Kantive 服务为例,详细说明如何部署 Knative 相关服务。首先,登录到容器服务管理控制台,如图所示

2.png

阿里云容器服务管理控制台

如没有集群,可以先选择创建集群,如下图所示。

3.png

配置与创建集群

创建集群比较缓慢,耐心等待集群创建完成,成功之后如图所示。

4.png

集群创建成功示意图

进入集群之后,选择左侧的“应用”,找到 “Knative” 并点击“一键部署”,如图所示。

5.png

创建 Knative 应用

稍等片刻,Knative 安装完成之后,可以看到核心组件已经处于“已部署”状态,如图所示。

6.png

Knative 应用部署完成

至此,我们完成了 Knative 的部署。

体验测试

首先需要创建一个 EIP,并将其绑定到 API Server 服务上,如下图所示。

7.png

图为 API Server 绑定 EIP

完成之后,进行 Serverless 应用的测试。选择应用中的 “Kantive 应用”,并且在服务管理中选择“使用模板创建”,如图所示。

8.png

快速创建示例应用

创建完成之后,可以看到控制台已经出现一个 Serverless 应用,如图所示。

9.png

示例应用创建成功

此时,我们可以点击应用名称查看该应用的详情,如下图所示。

10.png

查看示例应用详情

为了便于测试,可以在本地设置 Host:

101.200.87.158 helloworld-go.default.example.com

设置完成之后,在浏览器中打开系统分配的域名,可以看到已经输出预期的结果,如图所示。

11.png

浏览器测试示例应用

至此,我们完成了一个基于 Knative 的 Serverless 应用的部署和测试。

此时,我们还可以通过 CloudShell 进行集群的管理等。在集群列表页面,选择通过 CloudShell 进行管理,如图所示。

12.png

集群管理列表

通过 CloudShell 管理已创建的集群,如图所示。

13.png

CloudShell 窗口

执行指令:

kubectl get knative

可以看到,刚部署的 Knative 应用,如图所示。

14.png

CloudShell 查看 Knative 应用

关于作者:刘宇(江昱)国防科技大学电子信息专业在读博士,阿里云 Serverless 产品经理,阿里云 Serverless 云布道师,CIO 学院特聘讲师。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DataWorks功能实践速览 05——循环与遍历

简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率!通过往期的介绍,您已经了解到在DataWorks上进行任务运行的最关键的几个知识点,其中上期参数透传中为您介绍了可以将上游…

阿里安全开源顶尖技术“猎豹” 计算更快数据更安全

两家公司想开展合作,发挥各自优势联合开发一款产品,如何以“隐私计算”的形式,在保护隐私的情况下,高效地实现两方联合计算,便成为解决这一问题的关键。 最近,阿里安全最新研发的Cheetah(猎豹&…

PaddlePaddle:在 Serverless 架构上十几行代码实现 OCR 能力

简介: 飞桨深度学习框架采用基于编程逻辑的组网范式,对于普通开发者而言更容易上手,同时支持声明式和命令式编程,兼具开发的灵活性和高性能。 飞桨 (PaddlePaddle) 以百度多年的深度学习技术研究和业务应用为基础,是中…

云原生体系下 Serverless 弹性探索与实践

简介: SAE 通过对弹性组件和应用全生命周期的不断优化以达到秒级弹性,并在弹性能力,场景丰富度,稳定性上具备核心竞争力,是传统应用 0 改造上 Serverless 的最佳选择。 作者:竞霄 Serverless 时代的来临 …

java jndi使用_Java项目中使用JNDI连接数据库

因为写的大作业经常用到数据库连接 所以自己写了个数据库连接的类 package DB_Link_info;/* * 数据库链接信息 */public class DB_link_Info {public static final String driverName "com.microsoft.sqlserver.jdbc.SQLServerDriver";public static开发环境为Java,…

Joint Consensus两阶段成员变更的单步实现

简介: Raft提出的两阶段成员变更Joint Consensus是业界主流的成员变更方法,极大的推动了成员变更的工程应用。但Joint Consensus成员变更采用两阶段,一次变更需要提议两条日志, 在一些系统中直接使用时有些不便。那么Joint Consen…

真香!8 行代码搞定最大子数组和问题

作者 | 码农的荒岛求生来源 | 码农的荒岛求生今天给大家带来一道极其经典的题目,叫做最大和子数组,给定一个数组,找到其中的一个连续子数组,其和最大。示例:输入: nums [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 子数组…

深度干货|云原生分布式数据库 PolarDB-X 的技术演进

简介: 深入解读PolarDB-X的产品架构,以及分布式事务、透明分布式、水平扩展等技术内幕。 一、PolarDB-X是什么 PolarDB-X最早起源于阿里集团2009年提出用分布式架构替代传统商业数据库,阿里研发了TDDL分库分表中间件。2014年阿里集团开始全…

OpenStack 如何跨版本升级

作者 | 孙琦来源 | 万博智云OpenStack是中国私有云的事实标准根据三方统计报告,2020年,中国私有云市场规模达到951.8亿元,同比增长42.1%,私有云在国内IaaS市场占比约45%。私有云提供商有望在云计算市场持续高速发展进程中持续受益…

流计算引擎数据一致性的本质

简介: 本篇文章从流计算的本质出发,重点分析流计算领域中数据处理的一致性问题,同时对一致性问题进行简单的形式化定义,提供一个一窥当下流计算引擎发展脉络的视角,让大家对流计算引擎的认识更为深入,为可能…

java 的io流需要学吗_Java的IO流之字节流,必须要学得内容,你会嘛?

原标题:Java的IO流之字节流,必须要学得内容,你会嘛?伙伴们~端午节过的如何呀~有没有很开心呀~假期已过咱们继续开动了IO流先来认识一下IO流:IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式…

为什么大家都在抵制用定时任务实现「关闭超时订单」功能?

作者 | 阿Q来源 | 阿Q说代码前几天领导突然宣布几年前停用的电商项目又重新启动了,让我把代码重构下进行升级。让我最深恶痛觉的就是里边竟然用定时任务实现了“关闭超时订单”的功能,现在想来,哭笑不得。我们先分析一波为什么大家都在抵制用…

面对疾风吧,如何搭建高协同的精准告警体系?

简介: 想要实现AiOps,智能告警少不了。Arms 告警运维中心让面向告警的组织协同更加便捷高效! 作者|九辩 世上没有一个系统是百分之百尽善尽美的。如果想要保证可用性,那么技术团队就得对服务的各种状态了如指掌&…

KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点

简介: 10 月 16 日上海,OAM/KubeVela、OpenKruise、OCM 三大开源项目的社区负责人、核心贡献者和企业用户将齐聚 KubeMeet,和现场 100 名开发者聊聊新的技术环境和企业需求下,有关“云原生应用管理”的那些事儿。 随着云原生关注…

Redis 究竟适不适合当队列来用?

‍作者 | Magic Kaito来源 | 水滴与银弹我经常听到很多人讨论,关于「把 Redis 当作队列来用是否合适」的问题。有些人表示赞成,他们认为 Redis 很轻量,用作队列很方便。也些人则反对,认为 Redis 会「丢」数据,最好还是…

EDA 事件驱动架构与 EventBridge 二三事

简介: 事件驱动型架构 (EDA) 方兴未艾,作为一种 Serverless 化的应用概念对云原生架构具有着深远影响。当我们讨论到一个具体架构时,首当其冲的是它的发展是否具有技术先进性。这里从我们熟悉的 MVC 架构,SOA 架构谈起&#xff0c…

如果被问到分布式锁,应该怎样回答?

作者 | tech-bus.七十一来源 | 程序员巴士说到锁,在平时的工作中,主要是使用synchronized关键字,或者相关的一些类库来实现同步,但这都是基于单机应用而言的,当我们的应用多实例部署时,这时候就需要用到分布…

工业视觉智能实战经验之IVI算法框架2.0

简介: 工业视觉智能团队在交付了多个工业视觉智能质检项目后,发现了工业视觉智能的共性问题和解法,打造了工业视觉智能平台,通过平台的方式积累和提升工业视觉的通用能力。在平台建设上最核心的能力是算法能力。算法能力包括不断增…

技术干货 | jsAPI 方式下的导航栏的动态化修改

简介: 操作指导:通过 jsAPI 实现导航栏的动态修改。 很多开发同学在接入 H5 容器后都会对容器的导航栏进行深度定制,除了 Native 的定制化之外,还有很多场景是使用到 jsAPI 的方式,通过 jsAPI 实现导航栏的动态修改。 …

Gartner:企业机构需重新定义网络安全领导者角色

编辑 | 宋慧 供稿 | Gartner 根据Gartner的最新调查,由于网络风险责任已被转移到IT以外,并且日益分散的生态系统导致网络安全领导者正在失去对决策的直接控制权,企业机构需要重新定义网络安全领导者的角色。 如今,安全和风险管理…