阿里云专家畅谈 Serverless K8S 技术架构

Posted K8sMeetup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云专家畅谈 Serverless K8S 技术架构相关的知识,希望对你有一定的参考价值。

 | 为  |  容  |  器  |  技  |  术  |  而  |  生  |

讲师:张维 / 阿里巴巴 高级技术专家

校对:夏天

编辑:小君君

容器和 Serverless 是如今云原生时代最火热的主题,容器给应用的部署和管理带来了革命性地改变,而 Serverless 则让开发者更加关注应用本身而非基础设施。容器和 Serverless 的结合给企业上云带来了前所未有的便利。


欢迎戳 “阅读原文” 观看讲师【现场视频】,对话框回复【资料下载】获取本文 PPT。



大家好,我是来自阿里云容器服务团队的张维,感谢 CEUC 给我机会和大家分享Serverless Kubernetes 容器服务,一种容器和 Serverless 的创新整合。通过此次分享,大家将会了解 Serverless Kubernetes 容器服务的产品概念及其背后的技术架构,感受无服务器容器化带来的极致云原生体验。


Serverless Kubernetes 的概要


阿里云专家畅谈 Serverless K8S 技术架构


首先了解一下经典 Kubernetes 的架构。经典 Kubernetes 中用户可以通过 UI 和 CLI 访问用户的 Kubernetes 集群,操作 pod/services/ingress/job/node 等资源。用户的 Kubernetes 集群是建立在服务器 node 之上,分别包括 Master 和 Worker 节点。用户可以通过 kubectl get nodes 查看集群中的所有节点。


阿里云专家畅谈 Serverless K8S 技术架构


Serverless Kubernetes 中用户不必关心节点的服务器,这与经典 Kubernetes 集群形成鲜明地对比用户依然可以使用各种 Kubernetes API 操作 pod/service/ingress/job 等资源,但是值得注意的是用户无法操作 node 资源。用户无需关心 Pod 运行在某个 node 之上。这就是大家一直提到的无服务器计算概念:Serverless。


阿里云专家畅谈 Serverless K8S 技术架构


Serverless 在大家看来可能是基于函数的无服务器计算,而 Serverless Kubernetes 则是基于容器的无服务器计算服务。


阿里云专家畅谈 Serverless K8S 技术架构


上图可以看出来,在阿里云平台上 Kubernetes 容器服务和 Serverless Kubernetes 容器服务的明显不同。在 Serverless Kubernetes 容器服务中,用户无需管理节点,无需做集群的容量规划,正因为无需节点管理,所以集群的扩容不会受制于节点的容量限制,集群拥有了“无限”和弹性的能力。


在传统的集群中,往往需要预留一定的计算资源,但这会导致集群整体资源利用率的下降,也意味着用户需要为一部分闲置的计算资源付出额外的成本。据调查, Kubernetes 集群的平均 CPU 利用率只有 15%。


而在 Serverless Kubernetes 中,应用完全按需付费,不存在闲置计算资源的预留,同时用户可以对容器应用进行细粒度的资源配置,比如 CPU 最小可设置为 0.25,最大可设置为 8,memory 最小可以设置为 512 M,最大可以设置为 64 GB。用户根据容器应用的资源需求合理分配计算资源,以最小成本完成计算任务,不存在资源的任何浪费。


另外,在 Serverless Kubernetes 容器服务中,我们对容器应用、部署进行了极致优化,用户可以体验秒级创建集群(逻辑集群,相当于 Namespace),秒级部署容器应用。


阿里云专家畅谈 Serverless K8S 技术架构


为了进一步优化容器服务的使用体验和提供更多场景的丰富支持,除了 Serverless Kubernetes 容器服务,我们还推出了 Serverless Addon 功能,给用户已有的 Kubernetes 集群提供极致的弹性扩容能力。


Serverless Addon 为经典 Kubernetes 集群添加了虚拟节点,此时集群中真实的 Worker 节点和虚拟节点同时存在,通过虚拟节点动态创建 ECI 容器实例。ECI 的 Pod 与真实节点上的 Pod 互联互通,都运行在同一个用户的 VPC 网络中。通过 Serverless Addon,我们给基于有限节点的 Kubernetes 集群赋予了 “无限” 扩容能力。

 

 Cloud Scale 架构设计


阿里云专家畅谈 Serverless K8S 技术架构


Serverless Kubernetes 的极大优势是其强大的弹性扩容能力,为了实现极致的弹性能力,我们在技术上采用了可扩展的云架构。技术架构如果没有足够的扩展能力,就无法支撑产品的极致弹性。


Serverless Kubernetes 选择利用阿里云规模化的 IaaS 构建,提供高稳定、强隔离、大容量、高弹性的能力。其中组件 Viking 连接了 Kubernetes Master 和底层 ECI 弹性容器实例,监听 kube-apiserver 中 pod/service/ingress 的事件变化,动态创建相应资源。


Viking 除了管理 ECI 弹性容器实例外,还会管理 Service 和 Ingress 等资源。比如用户创建 Service 时,Viking 会动态创建相应的 SLB,连接后端 Pod。Pod 通过 ENI(弹性网卡)与用户 VPC 环境互联互通。同时 Pod 之间可以通过 Service 短域名互相访问,实现 Service Discovery 功能,这背后则是基于阿里云 PrivateZone 服务实现。


弹性容器实例 ECI 中的 Viking Agent 则会使用 containerd 创建 Container,并上报 Pod 和 Container 状态给 Viking。通过此链路实现了 Pod 资源创建、Events 上报和持续监控。


Serverless Kubernetes 目前支持的功能


阿里云专家畅谈 Serverless K8S 技术架构


如上图所示,目前 Serverless Kubernetes 兼容大部分原生 Kubernetes API。因为某些 Kubernetes 资源无法支持多租户隔离,所以暂时无法支持(包括 CRD、ClusterRole、 Namespace)。


Serverless Kubernetes 用例


阿里云专家畅谈 Serverless K8S 技术架构


使用 Serverless Kubernetes,用户不再需要关注基础设施的搭建和维护,而是关注应用本身。Serverless Kubernetes 主要适用于弹性扩容场景,轻松部署 0 至 N 个容器应用副本,从容应对业务计算任务的不确定性。


结语


综上所述,相信大家已经对 Serverless Kubernetes 有了基本地了解。如果对 Serverless Kubernetes 有更多兴趣,可通过下方参考文献学习。

阿里云专家畅谈 Serverless K8S 技术架构

张维/ 阿里巴巴高级技术专家

2016 年加入阿里巴巴集团,目前在阿里云容器服务团队负责 Serverless Kubernetes 相关工作。研究 Linux 内核多年,并积极参与多个开源项目。当前的主要兴趣是容器和云原生相关的产品化工作。


参考文献:

[1]容器服务控制台:

https://cs.console.aliyun.com

[2]产品文档:

https://help.aliyun.com/document_detail/71480.html?spm=a2c4g.11186623.6.638.SiqmRb

[3]快速入门指南和 Demo:

https://yq.aliyun.com/articles/591115

[4]参考 samples:

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


伸出你的小手,用三个动作置顶我

以上是关于阿里云专家畅谈 Serverless K8S 技术架构的主要内容,如果未能解决你的问题,请参考以下文章

阿里云资深技术专家李克畅谈边缘云计算趋势与实践

容器技术Docker K8s 38 Serverless Kubernetes(ASK)详解-阿里云Serverless容器(ASK)产品介绍

容器技术Docker K8s 39 Serverless Kubernetes(ASK)详解-阿里云Serverless容器(ASK)适用场景与核心功能

容器技术Docker K8s 40 Serverless Kubernetes(ASK)详解-阿里云弹性容器实例ECI产品概述

深度解说阿里云 Serverless Kubernetes

上海丨阿里云 Serverless 技术实战营邀你来玩!