胡海波
摘要:市场经济制度的不断完善和信息化水平的不断提高,迫使企业在经营管理当中不断提高信息化系统能力和水平,传统的年轻化建设模式在故障和运营维护等方面的不足日益凸显,在这种情况下企业必须探索一个新的信息化系统建设模式。本文以现有的研究成果为基础,针对Kubernetes基础架构、Docker技术和容器与虚拟化对比都进行了分析,提出了一种基于“Kubernetes+Docker”技术的开源容器平台设计方案,并阐述了设计的效果及其问题,希望能够对企业的容器云平台建设提供一些帮助和启示。
关键词:虚拟化;Kubernetes;Docker;容器云
Abstract: The continuous improvement of the market economic system and the continuous improvement of the level of information, forcing enterprises to constantly improve the ability and level of information system in the operation and management, the traditional younger construction mode in the fault and operation and maintenance of the deficiencies are increasingly prominent, in this case, enterprises must explore a new information system construction mode. Based on the existing research results, this paper analyzes the Kubernetes infrastructure, Docker technology and the comparison between container and virtualization, proposes an open source container platform design scheme based on "Kubernetes+Docker" technology, and expounds the design effects and problems. Hope to provide some help and inspiration for enterprise container cloud platform construction.
Keywords: virtualization; Kubernetes; Docker. Container cloud
0 引言:
信息技术的不断发展进步,对企业的信息化业务系统建设和改进提出了更高的标准和要求,由于企业在经营管理当中会产生大量的数据信息,对数据信息的管理使用等都会对企业的信息系统产生更高的要求,在这种情况下,企业不得不强化系统的日常运维和升级,但是运营升级的过程中也会出现污染率增多等现象。在这种情况下,企业如何搭建一个更加稳定的信息化系统新技术架构平台,解决运营维护和升级过程中所产生的各种问题,就成为企业在信息化系统建设工作中需要解决的一个重要问题。来解决这一问题的过程中,基于“Kubernetes+Docker”技术的开源容器云平台是企业信息化系统建设过程中可以学习和借鉴一种方案。
1 Kubernetes的内涵分析
Kubernetes是一种基于Docker技术的集群管理系统,简称为 K8S,Kubernetes技术与传统的虚拟开发技术有明显的不同,在开发过程中,只需要关注应用开发本身即可,不需要解决资源利用效率等一系列的问题,这些问题本身都是由该技术进行处理的。另外,这种技术还支持跨主机的Docker容器操作和管理,具备服务发现和弹性伸缩等一系列的重要的容器管理功能,其管理功能更加丰富,更富有管理的针对性。在管理的过程中可以实时观察掌握运行在其上的每一个应用的实时状态,一旦发生异常可以自动进行重启。另外,资源调度也是 Kubernetes技术的一个亮点,对于传统的虚拟模拟技术,Kubernetes技术在资源调度上具有智能化管理的功能,可以根据worker节点的负载情况随时调整负载状况,实现负载的均衡化,这对提高资源利用效率具有显著的帮助和促进作用。当然, Kubernetes技术在应用的过程中也受CPU和内存等的限制,但是这种技术可以设定阈值,一旦达到这一标准可以进行负载弹性伸缩,从而有效的避免负载过大对系统运行的影响。所以相对于传统的虚拟管理系统, Kubernetes技术为基础所搭建出来的容器云平台,具备良好的过载保护功能,每一款应用都处于良好的运行状态。另外转型升级相对比较简单,因为系统运行的过程中可以保存每一个历史容器或者镜像,在升级的过程中只需要替换即可。
2 基于Kubernetes的企业级容器云平台搭建和运行分析
2.1 基于Kubernetes的企業级容器云平台搭建
2.1.1 master节点组件
etcd:平台存储设施,在系统当中扮演数据库的角色,主要用于平台运行过程中的集群键值的存储,从而实现集群一致性状态的维持和观测。
kube-apiserver:资源管理入口,也可以称之为资源管理后台,借助于该功能可以对平台上的资源进行增、删、改、查等操作,同时也是集群控制的入口,可以对每一个集群的运行状况进行监控并加以控制。
kube-controller-manager:集群控制管控中心,是整个平台管理的大脑,通过这一功能,实时掌握每一个master节点、worker节点的运行状况,判断整个容器云平台的运行状况,分析是否存在故障,对节点或者集群进行操作控制,包括自动重启等。
kube-schedule:资源控制器,在平台运行过程中负责调动和合理配置资源,以自由算法为基础,根据算法分析的结果判断资源使用情况并进行管理操作,从而提高的资源的利用效率,保持平台的稳定运行。
2.1.2 worker节点组件
kubelet:容器云的管理控制模块,在管理中实现启动、停止等操作,与master节点通过通信协议链接。
kube-proxy:负载管理器,根据资源控制器的算法分析结果,调节平台服务负载,实现负载均衡稳定的目标。
2.2 Docker和Kubernetes环境部署
Docker和Kubernetes环境部署比较复杂,但是实践中也有比较成熟的方案,比如说阿里云镜像仓库方式,该方式运行比较稳定,环境搭建可以满足大部分企业的经营发展需要,其docker-ce.repo 的配置源信息为开源,所以企业可以借鉴和使用,只需要购买和使用阿里云即可。另外,Kubernetes的传输协议上,目前从其它企业的建设和应用情况来看,不同组件之间多数企业都是采用TLS(传输层安全性协议)证书进行通信加密,通过cfssl秘钥管理功能确保通信安全,一般情况下证书和秘钥都存放在节点的/etc/kubernetes/pki/目录中。
2.3 高可用集群部署
2.3.1节点规划
理论上Kubernetes节点规划并没有数量的限制,但是现有的企业在建设的过程中,集群规划3台master节点和的3台worker节点就可以满足企业经营管理的需要,并且可以根据企业的经营发展情况随时对节点进行拓展。
2.3.2 高可用部署和扩展
企业经营发展中的业务量的增多,与之对应的worker节点的负载可能也需要增加,为了保持负载的均衡性,需要对worker节点进行横向扩展。当然,基于Kubernetes的的容器云平台在搭建的初期,一般都是通过的多master节点进行部署,worker 节点通过集群内部负载均衡连接到 master 节点,所以worker节点的横向扩展并非是无限制的,需要在扩展的同时增加master节点。Nginx +Keepalived 架构可以解决的集群的高效利用问题,是一种非常边界的管理工具,etcd可以采用集群管理模式,解决大规模的数据管理与存储等一系列的问题。
3 基于Kubernetes的企业级容器云平台效果及问题分析
3.1 基于Kubernetes的企业级容器云平台建设效果
基于“Kubernetes+Docker”容器技术组搭建的生產云平台,是目前企业云平台建设的主流方案之一,其构建的效果主要体现在以下几个方面上。第一,有助于提高业务部署效率,与传统的信息化平台部署升级方式不同的是,此种容器云平台是采用镜像版本替换或副本更换的方式进行升级或改造,在升级的过程中各种业务不会中断,不会影响其他工作的使用,即便是发现新版本的业务管理出现问题,也可以重新回到旧版本进行使用,解决新版本业务问题以后再回归到新版本,对业务部署的效率会有明显的提升。第二,故障率会明显下降, 以Kubernetes技术为基础的容器云平台,是一种高可用架构设计模式,内部容器业务发生故障,可以自动寻找其他的worker节点来发布新业务,初步实现了自动化部署的目标,即便是出现内部业务故障也不会对平台的运行造成极大的影响也不会影响业务处理的效率。第三,提高了集群监控能力,此种容器云平台实现了多级监控,同时对多个集群能全面的运行控制,并且可以与邮件和短信等模块对接,一旦出现故障可以及时发送故障信息,组人员可以在不影响平台运行的情况下加快故障处理器,确保平台的安全运行。
3.2 基于“Kubernetes+Docker”容器云平台面临的问题
基于“Kubernetes+Docker”的容器平台在建设的过程中也存在着一些需要解决的问题。首先隔离性问题,这种架构之下所建立起来的容器云平台,是通过一个操作系统的内核和驱动完成整个平台的运行,这种技术设计模式的优点在于可以提高平台的运行效率,但是潜在的安全问题也应该引起人们的重视,因为通过外部安全漏洞来攻击底层系统,从而获取相关数据信息,将会影响上层容器服务和系统的运行安全。在建设的过程中,目前还没有一个非常安全的隔离技术,解决外部与内部平台数据信息的隔离保护问题,如果采用不同虚拟机部署不同容器服务的模式,虽然可以解决隔离性的问题,但是建设成本和运营维护的难度都会增加。另外,性能也是需要考虑的一个重要问题,从前面的分析中可以看出思路,建设方案对硬件的要求比较高,尤其是多任务处理能力和水平,因为同时部署在单一宿主机上,当需要支撑的容器服务业务增加的时候,可能会出现服务资源紧张的情况,导致前端应用卡顿。所以要最大程度的提高硬件能力和水平。
总之,容器云技术是企业在经营管理当中实现业务信息化管理的重要选择,是对传统信息化管理模式的一种升级或改造。以“Kubernetes+Docker”技术为基础的容器云平台建设对企业来说是一个非常重要的选择,但是企业在建设的过程中也可以选择其他方案,不管选择哪一种方案都需要企业在实践当中进行探索。
参考文献:
[1] 张有帅,佘葭,尹雪龙.基于Kubernetes的容器云平台研究与设计[J].电子设计工程. 2021(22)