Serverless Kubernetes入门:对kubernetes做减法

ASK: Alibaba Serverless Kubernetes
https://cs.console.aliyun.com/#/k8s/cluster/create/serverless

布景

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节点,虚拟节点的容量可以认为是“无限大”,用户不需求为集群的容量担忧,无需预先做容量规划。
Serverless Kubernetes入门:对kubernetes做减法

无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

ASK集群不支撑Helm v2,近期ACK/ASK会发布Helm v3的支撑,之后用户都可以非常便当的在ASK集群中安置Charts。

更多ASK参看文档

  • 快速安置jenkins环境及实行流水线构建:https://yq.aliyun.com/articles/685219
  • 创建Service:https://help.aliyun.com/document_detail/86397.html
  • 依据privatezone服务发现:https://help.aliyun.com/document_detail/141685.html
  • 创建Ingress:https://help.aliyun.com/document_detail/86398.html
  • 运用nginx ingress:https://yq.aliyun.com/articles/727019
  • sls日志收集: https://help.aliyun.com/document_detail/86402.html
  • 运用kaniko自动化构建镜像:https://yq.aliyun.com/articles/693541
  • 运用虚拟节点:https://help.aliyun.com/document_detail/118970.html
  • 运用GPU容器实例:https://help.aliyun.com/document_detail/119191.html
  • pod挂载eip:https://help.aliyun.com/document_detail/119199.html
  • 运用镜像快照加速发起:https://help.aliyun.com/document_detail/141241.html
  • 收集pod日志到sls:https://help.aliyun.com/document_detail/131598.html
  • 工作Argo workflow:https://yq.aliyun.com/articles/727132
  • 运用vk-autoscaler: https://help.aliyun.com/document_detail/131590.html

ASK Examples: https://github.com/AliyunContainerService/serverless-k8s-examples