背景
--
Kubernetes作为通用的容器编排系统,承载了广泛的应用和场景,包括CI/CD,数据计算,在线应用,AI等,然而由于其通用性和复杂性,管理一个kubernetes集群对于很多用户而言还是充满挑战的,主要体现在:
* 学习成本高;
* 集群运维管理成本高,包括节点管理、容量规划,以及各种节点异常问题的定位;
* 计算成本在很多场景中没有达到最优,比如对于一个定时运行Jobs的集群,长期持有资源池对于用户来说是浪费的行为,资源利用率不高。
Serverless Kubernetes是阿里云容器服务团队对未来kubernetes演进方向的一种探索,通过对kubernetes做减法,降低运维管理负担,简化集群管理,让kubernetes从复杂到简单。
对Kubernetes集群做减法
----------------
### 无节点管理
我们相信未来用户会更加关注应用的开发,而不是基础设施的维护。体现在kubernetes集群中,我们希望用户能够关注在pod/service/ingress/job等应用编排语义上,对底层node则可以减少关注。
无需管理节点也可以显著降低集群的运维管理成本,经统计kubernetes常见的异常问题中大多数与节点相关,比如Node NotReady问题,也无需担忧Node的安全问题,以及基础系统软件的升级和维护。
在ASK集群中,我们使用虚拟节点virtual-kubelet代替ecs节点,虚拟节点的容量可以认为是“无限大”,用户不需要为集群的容量担忧,无需预先做容量规划。
![image](https://yqfile.alicdn.com/bcf093a44401583625b15e23f65f3bc3e699630e.png)
### 无Master管理
和ACK托管版一样,ASK的Master(apiserver, ccm, kcm等)资源被容器服务平台托管,用户无需管理这些核心组件的升级和运维,也不用付出成本。
### 极简的k8s基础运行环境
除了无需管理节点和Master外,我们还对kubernetes集群管理做了大量简化,包括默认托管很多addon,用户无需再管理一些基础的addon,也不需要为这些addon付费。依赖阿里云原生的网络和存储等能力,以及独特的托管架构设计,我们提供了极度简化但功能完备的kubernetes基础运行环境。
功能
ACK
ASK
存储
需要部署aliyun-disk-controller/flexvolume
无需部署(正在支持中)
CNI网络
需要部署terway/flannel daemonset
无需部署,基于vpc网络通信
coredns服务发现
需要部署2个coredns副本
无需部署,基于privatezone访问
kube-proxy
需要部署kube-proxy daemonset
无需部署,基于privatezone访问
Ingress
需要部署nginx-ingress-controller
无需部署,基于SLB七层转发
免密拉取ACR镜像
需要部署acr-credential-helper
无需部署,默认支持
sls日志收集
需要部署logtail daemonset
无需部署,默认支持
metrics统计
需要部署metrics-server
无需部署,开箱即用
挂载eip
需要部署terway
无需部署,使用annotaion指定
云盘随pod创建挂载
依赖aliyun-disk-controller
无需部署,默认支持
弹性伸缩
需要部署cluster-autoscaler
无需部署
GPU插件
需要部署Nivida-docker
无需部署,开箱即用
综上可以看到,ACK集群至少需要2台ecs机器以运行这些基本的Addon,而ASK集群把这些基础Addon化为无形,可以达到0成本创建一个开箱可用的kubernetes集群。
### 简化弹性伸缩
因为无需管理节点和容量规划,因此当集群需要扩容时也就不需要考虑节点层面的扩容,只需要关注pod的扩容,
这对于扩容的速度和效率都是极大的提升,目前一些客户指定使用ASK/ECI的方式来快速应对业务流量高峰。
当前ASK/ECI支持30s完全启动500个pod(至Running状态),单个pod启动可以达到10s以内。
### 更低成本
除去ASK集群本身的低成本创建外,pod的按需使用也让很多场景下资源利用率达到最优。对于很多Jobs或者数据计算场景而言,用户并不需要长期维护一个固定的资源池,这时ASK/ECI可以很好的支持这些诉求。
经验证,当pod一天中运行时间少于16个小时,则ASK/ECI的方式相比保有ecs资源池更节省经济成本。
ECI:快速交付容器资源的弹性计算服务
-------------------
谈起ASK,一定会谈到ASK的资源底座ECI。ECI是阿里云基于ECS IaaS资源池提供的稳定、高效、高弹性容器实例服务。ECI让容器成为了公有云的第一等公民,用户无需购买和管理ecs就可以直接部署容器应用,这种简化的容器实例产品形态和ASK形成了一个完美的组合。
用户可以直接使用ECI Open API创建容器实例资源,但在容器场景中用户普遍需要一个编排系统,来负责容器的调度、高可用编排等能力,而ASK正是这样的kubernetes编排层。
对于ASK而言,ECI让ASK容器服务免去了搭建后台计算资源池的必要,更不用为底层计算资源池的容量而担忧。基于ECI就意味着基于整个阿里云IaaS规模化资源池,天然拥有了库存和弹性优势(比如可以通过Annotation的方式指定底层eci对应的ecs规格,大部分ecs规格都可以在ASK中使用,满足多种计算场景的需求)。另外ECI和ECS复用资源池意味着我们可以最大化释放规模化红利,给用户提供更低成本的计算服务。
容器生态支持
------
ASK对kubernetes容器生态提供了完善的支持,目前已有大量客户使用ASK来支撑如下各种场景。
* CI/CD:gitlab-runner,jenkins/jenkins-x
* 数据计算:spark/spark-operator,flink,presto,argo
* AI:tensorflow/arena
* ServiceMesh: istio,knative
* 测试:locust,selenium
[原文链接](https://yq.aliyun.com/articles/730349?utm_content=g_1000090543)
本文为阿里云内容,未经允许不得转载。
分享到:
相关推荐
7. **兼容性和扩展性**:ACK(阿里云Kubernetes服务)和ASK(阿里云Serverless Kubernetes服务)保持对Kubernetes API的兼容,支持deployment、statefulset、job、service、ingress以及自定义资源定义(CRD)。...
Serverless Kubernetes 在保留 Kubernetes 强大管理能力的同时,消除了对服务器和集群的直接管理需求。用户只需关注自己的应用程序,无需预估或管理容量,而是根据应用实际消耗付费。资源的粒度细化到应用层面,按需...
Serverless Kubernetes技术是一种新兴的解决方案,它将Serverless架构与Kubernetes容器编排平台相结合,旨在简化云原生应用的部署和管理。该技术的核心理念是让用户关注于应用本身,而不是底层基础设施,从而实现更...
同时,Serverless实时数仓还需要成本优化运维成本(集群资源)、开发成本(上线新业务)、对同一份数据使用新的计算资源来计算、弹性伸缩、应对洪峰与日夜变化、每天ETL任务、弹出资源来执行,用完即销毁、Endpoint...
Fission无服务器插件该插件将支持纳入。先决条件确保您正在运行裂变... helloprovider: name: fission runtime: python2.7plugins: - serverless-fissionfunctions: hello: description: ' Hello function ' handler
$ npm i -D serverless-rust :light_bulb: -D标志将其添加到npm talk的开发依赖项中 :light_bulb: 该插件假定您正在构建针对AWS Lambda“提供”的运行时的Rustlang lambda。 使此操作变得容易。 将以下内容添加到...
2021阿里云云原生 Serverless 技术实践营演讲PPT汇总,共5份。 此次活动分别从技术、产品、架构和开发者工具的视角围绕 Serverless 的发展趋势、落地实践与参会者零距离分享最佳实践...Serverless Kubernetes 落地实践
安装npm install --save serverless-finch用法首先,通过添加以下内容来更新serverless.yml : plugins : - serverless-finchcustom : client : bucketName : unique-s3-bucketname # (see Configuration Parameters...
serverless-plugin-typescript, 无服务器插件,支持零配置 serverless-plugin-typescript 无服务器插件,支持零配置特性零配置:不需要安装任何其他编译器或者插件就可以使用这个框支持ES2015语法 特性( export,...
### Serverless入门与实战知识点概览 #### 一、Serverless概述 **1.1 架构演进** - **传统架构**:开发者需管理服务器硬件、操作系统等基础设施。 - **虚拟化技术**:通过虚拟机减少物理资源的管理负担。 - **...
knative入门:Knative入门-构建基于Kubernetes的现代化Serverless应用-https:www.servicemesher.comgetting-started-with-knative
serverless plugin install --name serverless-layers 将插件添加到您的serverless.yml文件中: 单层配置 例: plugins : - serverless-layers custom : serverless-layers : functions : # optional - my_...
cd serverless-postgraphql :floppy_disk: 安装 npm install :rocket: 重建和部署 npm run rebuild-and-deploy :hot_beverage: 咖啡时间:AWS需要约10分钟来设置Postgres数据库 pgEndpoint服务器部署的结果来看,...
Packt.Kubernetes.for.Serverless.Applications.1788620372.PDF Chapter 1, The Serverless Landscape, explains what is meant by serverless. Also, we will get some practical experience of running serverless...
serverless-docker:使用Docker构建无服务器应用程序
【标题】:“Serverless-Tool:基于Serverless开发的前端工具集合站点” 【知识点详解】: Serverless架构是一种云计算模型,其中服务提供商负责管理和运行代码,而开发者只需要编写实际的业务逻辑,无需关心...
**Serverless-CICD: Serverless CICD实践案例** 在现代软件开发中,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)是至关重要的实践,它们能够加速开发流程,确保代码质量,并...
Serverless Kubernetes(K8s)服务允许开发者利用Kubernetes的强大功能,同时享受Serverless的便捷性。通过Serverless K8s,可以低成本运行Job任务、Spark数据计算,甚至GPU机器学习任务,同时提供了极致的...