探讨基于阿里云的Kubernetes容器云平台设计与实现

2021-01-11 12:12杨津蒋朝惠
科学与生活 2021年27期
关键词:管理器控制器集群

杨津 蒋朝惠

摘要:文章以基于阿里云的Kubernetes容器云平台设计与实现为研究对象,首先对建立基于阿里云的Kubernetes容器云平台的意义进行了阐述分析,随后分析了基于阿里云的Kubernetes容器云平台框架建立过程,最后着重对云控制管理器与容器存储模块设计与实现进行了研究分析,希望能够为相关研究提供一定的参考。

关键词:Kubernetes容器云平台;容器存储模块;云控制管理器;设计与实现

前言:当前很多企业在网络建设方面为节约硬件成本,均选择采用当前比较成熟的Kubernetes容器云平台代替网络硬件设施。但该平台无法存储后端,也不能对外部网关进行管理,因此还需要对此做进一步的设计与完善,促使阿里云Kubernetes容器云平台发挥出应有的作用价值,有效降低企业的网络建设成本,推动企业未来实现更好地发展。

一、建立基于阿里云的Kubernetes容器云平台的意义

在互联网信息时代下,云计算、大数据技术发展也逐渐日趋成熟。一些企业在实际经营时,为降低自身网络运营成本,选择采用“云端”替代企业网络硬件设施。在这一背景下,阿里云Kubernetes容器云平台得到了广泛的应用。但该平台本身无法存储后端,也不能对外部网关进行管理,为实现上述功能,需要借助下层IAAS平台实现。而达到这一目的,用于还需要对Kubernetes进行IAAS层改造。基于此,必须要加强基于阿里云的Kubernetes容器云平台的构建,才能够更好地满足企业用户实际云计算应用需求。

二、基于阿里云的Kubernetes容器云平台框架搭建

在本次基于阿里云的Kubernetes容器云平台框架搭建中,主要包括以下几大功能模块:(1)基础设施平台集成模块。该模块主要用于实现IAAS层服务功能,该模块主要包括两大组成部分:①云控制管理器模块。该管理器一方面能够针对Kubernetes设置外部负载服务,专门设置对应的IAAS层平台的负载均衡服务。另一方面,则能够立足Kubernetes 集群运行过程,从IAAS平台中获得相应节点虚拟机信息,然后将该信息同步至Kubernetes节点中来,从而有效确保集群节点的一致性。②容器存储模块。该模块能够与组件Kube-apiserver进行通信,从中获取Kubernetes集群数据卷的状态,以此为依据,实现对该数据卷生命周期的管理。

(2)容器云平台资源弹性伸缩模块。该模块主要负责对Kubernetes集群资源配置进行优化。在原Kubernetes系统中,只能对应用层资源进行弹性伸缩处理,且策略单一。为改善这一问题,文章从应用与集群两方面入手,完善了平台资源管理体系。首先,在资源弹性伸缩器的帮助下,以集群动态规模为依据,来对应用副本的数量進行灵活调整。如此一来,既能够确保应用有着充足的资源,承载自身工作负载。与此同时,还能够提供资源利用率,防止发生浪费问题。而对集群资源弹性伸缩器来说,则是结合集群内所有应用的总资源实际使用情况,实现对其动态规模的灵活调整。上述两种资源弹性伸缩器,具有递进关系,从单一的应用资源扩展能够“升级”至集群应用资源扩展,因此资源管理体系将会更加完善。

(3)多集群跨可用区管理模块。该模块主要负责对多个Kubernetes集群进行统一管理,同时还能够横跨多个可用区,实现统一的部署与管理工作,最终能够为用户提供无差别的服务。

三、基于阿里云的Kubernetes容器云与IAAS层集成模块设计与实现

文章本次主要对云控制管理器模块与容器存储模块设计与实现进行分析:

(一)云控制管理器设计与实现

通过上文叙述可知,在云控制管理器实际运行时,主要负责管理Kubernetes集群节点与设置外部均衡负载服务。由于上述两种功能彼此独立,因此在云控制管理器中,可以采用两个子控制管理器,对上述两种功能进行分开管理。

首先,在节点控制器实现方面,node-controller控制器主要负责Kubernetes集群节点的管理,主要管理内容是同步Kubernetes集群节点以及IAAS云提供商的虚拟状态信息。在进行节点初始化的过程中,node-controller控制器在IAAS API的帮助下,能够获取虚拟节点信息,然后再将其同步至Kubernetes中。在Kubernetes中,如果节点存在不正常的问题,便会触发节点控制器。该控制器会向云提供者发出询问,确定该节点的虚拟机是否能够正常使用。例如在进行Kubernetes集群节点初始化时,node-controller控制器需要历经以下流程:(1)node-controller控制器在Kube-apiserverd 帮助下,来对node对象进行监控。当Kubernetes创建了新的节点,node-controller控制器则会实时收到节点更新的通知信息。(2)随后,node-controller控制器会调用阿里云API,获取该节点所在位置虚拟机的详细信息。(3)然后node-controller控制器会在Kube-apiserverd 帮助下,完成对node资源对象信息的更新。与此同时,节点管理器还会调用云服务器ECS服务,获取阿里云的虚拟机状态信息以及详细信息。

另一方面,针对服务负载均衡控制器的实现:Kubernetes在实际进行服务创建时,一般会为用户提供外部负载均衡这一功能。但若没有相应的负载均衡控制器,该功能将无法生效。为实现这一功能,可采用loadbalanceer-controller控制器,该控制器能够监听服务资源对象,当外部负载均衡配置项出现了更新时,该控制器便能够调用IASS均衡服务API,完成Kubernetes外部负载均衡功能的配置。

(二)容器存储模块设计与实现

在容器存储控制器中,provision—controller是一个持久化数据生产者(PV),可以以存储类信息动态为依据,建立一个专门的PV,然后交由PVC使用。一般情况下,一个PV对应一个阿里云盘存储设备。如果在Kubernetes,存在的PV较少,无法满足PVC要求,此时PVC则处于mismatch状态。而在实际进行provision—controller设计实现时,需要历经以下流程:(1)调用KubernetesAPI,实现对PVC资源对象的监听。(2)针对处于mismatch状态的PVC,做好收集工作,并以PVC配置文件中指定的Storageclass为依据,完成PVC的数据卷PV创建,最后将PV与PVC进行绑定。(3)然后,将PV信息存储至Volime cache中,再对其进行遍历操作,以此来判断PV是否有对应的PVC。(4)如果发现对应的PVC已经处于被删除状态,那么需要调用delete函数,将该PV也删除。除此之外,该存储器还能够结合不同的存储后端,指定针对性的存储介质类型、磁盘容量等参数信息。在阿里云盘中,支持的存储类型与磁盘容量如表1所示。

总结:总而言之,基于阿里云的Kubernetes容器云平台设计是一项较为复杂系统的过程,在实际建立的过程中,需要结合实际需求,做好Kubernetes容器云平台框架的搭建,明确不同的功能模块。最后,还需要结合不同的功能模块,采取有效措施方法,做好针对性设计与实现,才能更好地彰显Kubernetes容器云平台的作用价值,为广大企业网络设施建设提供更多的便利。

参考文献:

[1]韩沈钢. 基于kubernetes的视频处理软件系统设计和开发[D]. 浙江工业大学, 2020.

[2]翁湦元, 单杏花, 阎志远,等. 基于Kubernetes的容器云平台设计与实践[J]. 铁路计算机应用, 2019, 028(012):49-53.

[3]郑冰. 基于Kubernetes的企业级容器云平台设计[J]. 数字技术与应用, 2019(06):148+151.

猜你喜欢
管理器控制器集群
南京溧水电子3款控制器产品
启动Windows11任务管理器的几种方法
水泥生料立磨压差变参数二型模糊控制器设计
应急状态启动磁盘管理器
基于NFV的分布式SDN控制器节能机制
勤快又呆萌的集群机器人
集群品牌是集群整体的品牌还是集群产品的品牌?
用好Windows 10任务管理器
智能液位控制器在排水系统中的应用
在Win 7下利用凭据管理器提高访问速度等