1.4 集群系统层

集群系统层是指Kubernetes及其组件,比如网络组件CNI、存储插件FlexVolume等。这部分内容,实际上是大部分工程师学习Kubernetes的起点,也是工程师相对比较熟悉的一部分内容。

为了适配云环境,以及支持百万级线上集群稳定运行,阿里云三种版本Kubernetes集群的实现,对原生的Kubernetes做了一些定制和改造。比如为了支持托管版和Serverless版,API Server的形态和部署位置都做了调整。

1.4.1 专有版

总体上来说,集群系统层的组件和功能,在专有版集群里,体现在Master节点和Worker节点上。

在Master节点上,运行着集群中心数据库Etcd,以及集群管控的三大件API Server、Controller Manager和Scheduler,另外包括Cloud Controller Manager等定制组件。

在Worker节点上,运行着服务代理Proxy、节点代理Kubelet,以及网络插件和存储插件等自定义组件,如图1-6所示。

图1-6 专有版集群系统层架构

1.4.2 托管版

在托管版集群的实现中,Kubernetes管控三大件被封装成Pod,运行在Master集群隔离的命名空间中,如图1-7所示。

Master集群里混合部署了很多集群的管控三大件。我们通过主备Pod以及集群本身的高可用特性,保证用户集群管控三大件的高可用。

图1-7 托管版集群系统层架构

1.4.3 Serverless版

从集群系统层的角度来看Serverless版和托管版集群,两者的实现是非常类似的。如图1-8所示,Serverless版也使用了Master集群,并以Pod的形式来管理集群的管控三大件。

不一样的地方在于,Serverless版集群在Master集群里部署了Virtual Kubelet组件,这个组件会直接通过ECI编程接口来管理ECI实例生命周期,给Pod提供运行环境。

图1-8 Serverless版集群系统层架构