Serverless Kubernetes入门:对Kubernetes做减法

  

作者|贤维阿里巴巴高级技术专家

  
  

<>强导读:Serverless Kubernetes是阿里云容器服务团队对未来Kubernetes演进方向的一种探索,通过对Kubernetes做减法,降低运维管理负担,简化集群管理,让Kubernetes从复杂到简单。

     

背景

  

Kubernetes作为通用的容器编排系统,承载了广泛的应用和场景,包括CI/CD,数据计算,在线应用,人工智能等,然而由于其通用性和复杂性,管理一个Kubernetes集群对于很多用户而言还是充满挑战的,主要体现在:

  
      <李>学习成本高;李   <李>集群运维管理成本高,包括节点管理,容量规划,以及各种节点异常问题的定位;李   <李>计算成本在很多场景中没有达到最优,比如对于一个定时运行工作的集群,长期持有资源池对于用户来说是浪费的行为,资源利用率不高。   
  

对Kubernetes集群做减法

  

无节点管理

  

我们相信未来用户会更加关注应用的开发,而不是基础设施的维护体。现在Kubernetes集群中,我们希望用户能够关注在豆荚/服务/进入/工作等应用编排语义上,对底层节点则可以减少关注。

  

无需管理节点也可以显著降低集群的运维管理成本,经统计Kubernetes常见的异常问题中大多数与节点相关,比如节点也许问题,也无需担忧节点的安全问题,以及基础系统软件的升级和维护。

  

在问集群中,我们使用虚拟节点virtual-kubelet代替ecs节点,虚拟节点的容量可以认为是“无限大”,用户不需要为集群的容量担忧,无需预先做容量规划。

  

 Serverless Kubernetes入门:对Kubernetes做减法

  

无主管理

  

和ACK托管版一样,问的主人(ccm, apiserver kcm等)资源被容器服务平台托管,用户无需管理这些核心组件的升级和运维,也不用付出成本。

  

极简的k8基础运行环境

  

除了无需管理节点和主外,我们还对Kubernetes集群管理做了大量简化,包括默认托管很多插件,用户无需再管理一些基础的插件,也不需要为这些插件付费。依赖阿里云原生的网络和存储等能力,以及独特的托管架构设计,我们提供了极度简化但功能完备的Kubernetes基础运行环境。

           功能   消   问               存储   需要部署aliyun-disk-controller/flexvolume   无需部署(正在支持中)         CNI经过网络   需要部署terway/法兰绒daemonset   无需部署,基于vpc网络通信         coredns服务发现   需要部署2个coredns副本   无需部署,基于我的地盘访问         kube-proxy   需要部署kube-proxy daemonset   无需部署,基于我的地盘访问         入口   需要部署nginx-ingress-controller   无需部署,基于SLB七层转发         免密拉取ACR镜像   需要部署acr-credential-helper   无需部署,默认支持         sls日志收集   需要部署logtail daemonset   无需部署,默认支持         指标统计   需要部署metrics-server   无需部署,开箱即用         挂载eip   需要部署terway   无需部署,使用annotaion指定         云盘随pod创建挂载   依赖aliyun-disk-controller   无需部署,默认支持         弹性伸缩   需要部署cluster-autoscaler   无需部署         GPU插件   需要部署Nivida-docker   无需部署,开箱即用            

综上可以看的到,ACK集群至少需要2台ecs机器以运行这些基本的插件,而问集群把这些基础插件化为无形,可以达到0成本创建一个开箱可用的Kubernetes集群。

  

简化弹性伸缩

  

因为无需管理节点和容量规划,因此当集群需要扩容时也就不需要考虑节点层面的扩容,只需要关注pod的扩容,这对于扩容的速度和效率都是极大的提升,目前一些客户指定使用问/ECI的方式来快速应对业务流量高峰。

  

当前问/ECI支持30年代完全启动500个吊舱(至运行状态),单个吊舱启动可以达到10年代以内。

  

更低成本

  

除去问集群本身的低成本创建外,pod的按需使用也让很多场景下资源利用率达到最优。对于很多工作或者数据计算场景而言,用户并不需要长期维护一个固定的资源池,这时问/ECI可以很好的支持这些诉求。

Serverless Kubernetes入门:对Kubernetes做减法