阿里云 Serverless Kubernetes 的落地实践分享

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: Serverless Kubernetes 基于 Kubernetes 之上,提供按需使用、节点免运维的 Serverless 能力,让开发者真正实现通过 Kubernetes 标准化 API 进行 Serverless 应用编程,值得关注。

作者 | 元毅(阿里云容器平台高级开发工程师)

微信搜索关注 Serverless 公众号,后台回复 深圳 可获取本文 PPT


导读

Kubernetes 作为当今云原生业界标准,具备良好的生态以及跨云厂商能力。Kubernetes 很好的抽象了 IaaS 资源交付标准,使得云资源交付变的更简单,与此同时越来越多的用户期望能够聚焦于业务自身,做到面向应用交付,Serverless 理念也因此而生。

那么如何通过原生 Kubernetes 提供 Serverless 能力?如何借力丰富的云原生社区生态?本文给大家介绍一下我们在 Serverless Kubernetes 上的落地实践。本文将从以下 3 个方面展开介绍:

  • 为什么要做Serverless Kubernetes
  • 如何实现Serverless Kubernetes
  • Serverless Kubernetes 落地实践

Serverless Kubernetes 初衷

1、 Kubernetes

众所周知,Kubernetes 是一款开源容器化编排系统,用户使用 Kubernetes 可以做到降低运维成本、提高运维效率,并且提供标准化 API,某种意义就是避免被云厂商绑定,进而形成了以 Kubernetes 为核心的云原生生态。可以说 Kubernetes 已然成为了云原生业界事实标准。

2、Serverless 与 Kubernetes

那么我们回到 Serverless 上面来,Serverless 的核心理念在于让开发者更聚焦业务逻辑,减少对基础设施的关注。那么我们如何在云原生业界标准之上做 Serverless,Kubernetes 是否也能做到更专注于应用业务逻辑。


3、Kubernetes 做 Serverless 的优势

在看一下 Kubernetes 做 Serverless 有什么优势前,我们先来看一下 Kubernetes 特性包括哪些:

  • 容器化
  • 统一 IaaS 资源交付
  • CI/CD 持续集成部署
  • 跨云厂商
  • 丰富的生态
  • 面向应用管理

对应于 Serverless 来说:

  • 事件驱动:Kubernetes 支持 job 类型、并围绕 Kubernetes 提供丰富的事件源
  • 按需使用:Kubernetes 本身支持 hpa 弹性能力
  • 免运维、高可用:Kubernetes 可以通过容器化、统一资源交付很好的支持。

结合这些来看 Kubernetes 实现 serverless,具备天然优势。

如何实现 Serverless Kubernetes

在 Kubernetes 上实现 Serverless 主要做到一下两点:

  • 向下如何让用户减少对基础设施的关注;
  • 向上如何更聚焦业务应用。


这里我们通过 Serverless Framework ,聚焦业务应用,进一步抽象 Kubernetes 资源,提供按需使用自动弹性的能力。通过 IaaS 资源免运维,减少对基础设施的关注,做到节点免运维。

那么 IaaS 资源免运维,我们又是如何做的呢?

1、减少对基础设置的关注:IaaS 免运维

原生的 Kubernetes 节点资源需要用户自行维护,为了降低用户维护节点成本,我们提供了托管节点池,帮助用户维护节点的生命周期,但用户还是需要对托管节点池策略进行维护,更近一步在 Serverless Kubernetes 中通过虚拟节点结合弹性容器实例 ECI,让用户彻底摆脱对 IaaS 的运维。

Serverless Kubernetes IaaS 资源免运维包括:

  • 基于容器,安全隔离、高移植
  • 无服务器管理:无需容量规划,对服务器免运维
  • 弹性扩容:秒级扩容,无限容器
  • 按需付费,更高资源利用率

向下我们通过虚拟节点结合 ECI 实现了 IaaS 资源免运维,那么向上如何聚焦业务逻辑呢?其实就是以应用为核心。

2、聚焦业务逻辑:以应用为核心

围绕应用来看,无非我们要解这些问题:

  • 应用部署
  • 灰度发布
  • 流量管理
  • 自动弹性
  • 可观测性以及应用的多版本管理

那么有开箱即用的方案去解吗?答案是 Knative。

3、Knative 是什么

Knative 是基于 Kubernetes 之上提供的一款开源 Serverless 应用框架,帮助用户部署和管理现代化的 Serverless 工作负载,打造企业级 Serverless 平台。

Knative 具备如下优势:

  • 在几秒钟内建立可扩展、安全、无状态的服务。
  • 具有更高级别 Kubernetes 应用抽象的 API。
  • 可插拔组件,让您可以使用自己的日志记录和监控、网络和服务网格。
  • 在 Kubernetes 运行的任何地方都可以运行 Knative,无需担心供应商锁定。
  • 开发者无缝体验,支持 GitOps、DockerOps、ManualOps 等。
  • 支持常用工具和框架,例如 Django、Ruby on Rails、Spring 等。

Knative 主要包括 2 大核心模块:Serving 和 Eventing

Serving 提供了 Service 应用模型,支持基于流量的灰度发布、版本管理、缩容到 0 以及自动弹性。

Eventing 提供事件驱动能力。支持丰富的事件源,以及用于事件流转、过滤的 Broker/Trigger 模型。

4、为什么是 Knative

那么我们为什么选择 Knative 呢?

根据 CNCF 2020 中国云原生调查报告,Knative 已经成为 Kubernetes 上最广泛安装的无服务器。

另外 Knative 社区近期也发起了一项统计:当前哪些云厂商或企业在提供或者使用 Knative。我们可以看到,几乎所有的大厂都支持或者集成 Knative, 如阿里云、谷歌云、IBM、Red Hat 等,并且大部分都提供了生产级别能力(Production),这些迹象表明越来越多的用户拥抱 Knative。

此外近期 Knative 已申请成为 CNCF 孵化项目,这无疑让 Knative 开发者为之兴奋。


5、Knative 落地挑战、应对与效果

从开源到产品化落地,必然会面对一些挑战。Knative 产品化落地主要面对如下挑战:

  • 管控组件多,运维复杂
  • 0 到 1 冷启动问题
  • 流量请求 1 对 1 分发

那么我们如何来应对呢?

我们提供组件托管,帮助用户节省资源及运维成本;当请求为 0 时,缩容到低规格保留实例,实现请求 0 到 1 免冷启动,做到成本可控;提供自研事件网关,做到流量的精准控制。

Serverless Kubernetes 落地实践

1、落地方案

结合上述介绍,向上通过 Serverless Framewok Knative 更聚焦业务应用,向下通过虚拟节点减少对基础设施的关注。这就是我们Serverless Kubernetes 落地方案:围绕 Kubernetes api, 下线集成云产品的能力,包括消息事件、弹性容器实例以及日志监控等。向上通过 Knative 围绕应用为核心,提供事件驱动、自动弹性等能力等。

2、典型应用场景

最后我们来看一下目前有哪些落地场景,典型的应用场景及行业领域如图:


3、落地实践:异构资源,按需使用

(1) 客户痛点

用户希望通过 Serverless 技术按需使用资源,节省资源使用成本,简化运维部署 。另外有 GPU 的业务诉求。希望使用容器化的 Serverless ,支持使用 GPU 资源,同时简化应用运维部署(尽可能少的操作 Kubernetes deployment/svc/ingress/hpa等资源),IaaS 资源免运维。

(2) 解决方案

使用 Knative + ASK 作为 Serverless 架构。数据采集之后,通过服务网关访问数据处理服务,数据处理服务根据请求量按需自动扩缩容。


4、落地实践:事件驱动,精准分发

某客户直播系统支持用户在线互动。消息数据的处理主要有以下技术挑战:

  • 业务弹性波动,消息并发高。
  • 互动实时响应,低延迟。

客户选择阿里云的 Knative 服务进行数据的弹性处理。应用实例数随着业务波峰波谷实时扩容和缩容,真正做到了按需使用,实时弹性的云计算能力。整个过程完全自动化,极大的减少了业务开发人员在基础设施上的心智负担。

总结

我们回顾一下本文介绍的主要内容:

首先介绍了为什么在 Kubernetes 提供 Serverless:

  • Kubernetes 已成为云原生业界标准
  • 面向标准 Kubernetes API 进行 Serverless 编程

然后我们如何实现 Serverless  Kubernetes:

  • IaaS 节点免运维
  • Serverless Framework (Knative)

最后介绍了 2 个落地实践场景:

  • 异构资源,按需使用
  • 事件驱动,精准分发

一句话:Serverless Kubernetes 基于 Kubernetes 之上,提供按需使用、节点免运维的 Serverless 能力,让开发者真正实现通过 Kubernetes 标准化 API 进行 Serverless 应用编程,值得关注。

若有收获,就点个赞吧

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
5天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
19天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
19天前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
19天前
|
Kubernetes 算法 调度
阿里云 ACK FinOps成本优化最佳实践
本文源自2024云栖大会梁成昊演讲,讨论了成本优化策略的选择与实施。文章首先介绍了成本优化的基本思路,包括优化购买方式、调整资源配置等基础策略,以及使用弹性、资源混部等高级策略。接着,文章详细探讨了集群优化和应用优化的具体方法,如使用抢占式实例降低成本、通过资源画像识别并优化资源配置,以及利用智能应用弹性策略提高资源利用效率。
|
19天前
|
弹性计算 调度 数据中心
阿里云 ACK One 注册集群云上弹性:扩展业务新利器
随着企业数字化转型深入,传统IDC数据中心因物理容量限制,难以实现动态扩容,缺乏弹性能力。阿里云ACK One注册集群凭借其高度灵活性和丰富资源选择,成为解决此问题的最佳方案。通过与阿里云资源的整合,ACK One不仅实现了计算资源的按需扩展,提高了资源利用率,还通过按需付费模式降低了成本,使企业能够更高效地应对业务增长和高峰需求。
|
19天前
|
运维 Kubernetes Serverless
阿里云Argo X K8s玩转工作流引擎,实现大规模并行计算
本文基于2024云栖大会田双坤的演讲,介绍了Kubernetes作为云原生操作系统的角色及其在各类任务中的应用,重点探讨了Argo Workflows在Kubernetes上编排并行任务的能力。面对自建Argo Workflows的挑战,如稳定性、成本和安全性等问题,阿里巴巴云推出了全托管的Serverless Argo工作流,提供全托管、免运维、可观测和易集成的特点,显著提升了任务编排的效率和稳定性。适用于数据处理、科学计算、自动驾驶仿真等多个领域。
|
19天前
|
Kubernetes 容灾 调度
阿里云 ACK 高可用稳定性最佳实践
本文整理自2024云栖大会刘佳旭的演讲,主题为《ACK高可用稳定性最佳实践》。文章探讨了云原生高可用架构的重要性,通过Kubernetes的高可用案例分析,介绍了ACK在单集群高可用架构设计、产品能力和最佳实践方面的方法,包括控制面和数据面的高可用策略、工作负载高可用配置、企业版容器镜像服务高可用配置等内容,旨在帮助企业构建更加可靠和高效的应用运行环境。
|
19天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
3月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
181 13
|
10天前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
51 12

相关产品

  • 容器服务Kubernetes版
  • 函数计算