Docker技术的三大核心概念,分别是:
·镜像(Image)·容器(Container)·仓库(Repository)镜像是一个特殊的文件系统。提供容器运行时所需的程序、依赖库、资源、配置文件等,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。负责对Docker镜像进行管理的,是DockerRegistry服务(类似仓库管理)。DockerRegistry服务对镜像的管理是非常严格的。最常使用的Registry公开服务,是官方的DockerHub,这也是默认的Registry,并拥有大量的高质量的官方镜像。容器(Container)是应用实例运行的虚拟环境,最大特点支持跨平台,跨环境部署。Docker的口号就是:“Buildonce,Runanywhere(搭建一次,到处能用)”。在实践中发现,如果想要将Docker应用于具体业务实现,是有困难的,编排、管理和调度等方面都不容易。于是,迫切需要一套管理系统,对Docker及容器进行更有效的管理。.3第三部:容器云管理与Kubernetes时代进入容器世界后,却发现新的生态系统如此庞大。需要众多跨主机的容器协同工作,需要支持各种类型的工作负载,企业级应用开发需要支持协作开发、持续集成、持续交付平台。容器相关的网络、存储、集群、高可用等问题需要解决。容器云的进化应运而生。Kubernetes是基于容器的集群管理平台,包括资源调度,编排,部署,监控,配置管理,存储网络管理,安全,应用支撑平台等。Kubernetes来自于希腊语,含义是舵手或领航员。K8S是它的缩写,用“8”字替代了“ubernete”这8个字符。K8S是04年6月由Google公司正式公布并开源的,集成了开发者社区的大量优秀资源,加以完善。Kubernetes是管理跨主机容器化应用的系统,是容器的编排工具。实现了应用部署、高可用管理和弹性伸缩等一系列基础功能,并封装成为一套完整、简单易用的RESTfulAPI对外提供服务。容器云以容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建,发布和运行分布式应用的平台。当容器云专注于资源共享与隔离、容器编排与部署,它更接近传统的IaaS;当容器云渗透到应用支撑与运行时环境时,它更接近与传统的PaaS。容器云技术的主要优势如下:.高资源利用率与隔离容器没有管理程序的额外开销,与底层共享操作系统,系统负载低,可以充分利用系统资源。同时,容器拥有资源隔离与限制能力,可以对应用分配CPU和内存等资源,保证了应用间不会相互影响。.容器跨平台部署运行容器在原有Linux容器的基础上大胆革新,为容器设定了一整套标准化的配置方法,将应用依赖的运行环境打包成镜像,真正实现了“构建一次,到处运行”的理念,大大提高了容器的跨平台部署能力。3.环境标准化便于持续集成与测试容器消除了线上线下的环境差异,保证了应用生命周期的环境一致性和标准化。开发人员使用镜像实现标准开发环境的构建,开发完成后,通过封装完整环境和应用的镜像进行迁移。4.全流程持续集成与版本控制基于容器提供的环境一致性和标准化,使用Git等工具对容器镜像进行版本控制,相比于代码的版本控制来说,能够对整个应用运行环境实现版本控制,一旦出现故障可以快速回滚。
5.强大的应用镜像仓库Docker官方构建了一个镜像仓库,组织和管理形式类似于GitHub,其上已累积了成千上万的镜像,因为Docker的跨平台适配性,相当于用户提供了一个非常有用的应用商店,所有人都可以自由地下载为服务组件,这为开发者、用户提供了巨大便利。中科天玑BDEC包含自研行业应用软件模块,封装成私有镜像,可基于应用商店快速部署。
二、Kubernetes体系架构与概念基于Kubernetes体系架构,中科天玑BDEC平台统一IaaS层和PaaS层,有效避免双重建设的成本开销。BDEC可以基于各类IaaS场景进行混合部署,统一运维管理;运行在BDEC上的各类组件和服务,通过虚拟路由冗余和负载故障实现自动感知维护机制,充分满足系统高可用需求,极大提高系统稳定性,显著降低系统运维成本。.Kubernetes的关键特性Kubernetes积累了作为Google生产环境运行工作负载5年的经验,并吸收了来自于社区的最佳想法和实践。Kubernetes经过这几年的快速发展,形成了完善的生态环境。Kubernetes的关键特性包括:服务发现和负载均衡:开发者不需要使用额外的服务发现机制,就能够基于Kubernetes进行服务发现和负载均衡。自愈能力:当容器失败时,会对容器进行重启;当所部署的Node节点有问题时,会对容器进行重新部署和重新调度;当容器未通过监控检查时,会关闭此容器;直到容器正常运行时,才会对外提供服务。弹性扩容:通过简单的命令、用户界面或基于CPU的使用情况,能够对应用部署进行弹性扩缩。自动发布和回滚:Kubernetes能够程序化的发布应用和相关的配置。如果发布有问题,Kubernetes将能够回归变更版本。存储编排:自动挂接存储系统,这些存储系统可以来自于本地、公共云提供商(例如:GCP和AWS)、网络存储(例如:NFS、iSCSI、Gluster、Ceph、Cinder和Floker等)。账户密文和配置管理:在不需要重新构建镜像的情况下,可以部署和更新账户密文和应用配置。.Kubernetes的整体架构Kubernetes属于主从分布式架构,主要由MasterNode和WorkerNode组成,以及包括客户端命令行工具kubectl和其它附加组件。MasterNode:作为控制节点,对集群进行调度管理;MasterNode由APIServer、Scheduler、ClusterStateStore(默认使用etcd存储)和ControllerManagerServer所组成;WorkerNode:作为真正的工作节点,运行业务应用的容器;WorkerNode包含kubelet、kubeproxy和ContainerRuntime;Kubectl集群管理的命令行客户端:用于通过命令行与APIServer进行交互,而对Kubernetes进行操作,实现在集群中进行各种资源的增删改查等操作;Add-on附加组件:是对Kubernetes核心功能的扩展,目前主要有网络、服务发现和可视化这三大类的附加项。无论是主控节点,还是工作节点,K8S是以Pod而非容器为单位管理的。Pod是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。Pod是K8S中的工作单元,可以理解为Docker单机环境。一个Pod的容器在K8S集群中有相同的地址和端口范围,即容器暴露于K8S集群的端口号不可重复。除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口。三、天玑大数据云计算平台的特点中科天玑BDEC平台可统一管理多集群,支持Linux和Windows容器集群,支持不同类型的应用统一编排管理。PaaS层包含主流的数据平台组件、大数据分析组件以及应用构建关键组件,诸多组件通过应用商店统一管理和部署,内置CI/CD工具链,可以帮助企业解决数据存储、数据分析、应用管理、规范开发流程等问题。产品架构图3.大数据平台
面对结构复杂、需求多变的异构大数据处理业务,BDEC数据平台提供适用于各类数据应用场景的统一、稳定、高效的存储管理子系统,包括Hadoop生态群的成熟组件,还包括文档型数据库、检索系统、内存数据库、高性能数据总线等各类主流大数据基础组件,整合先进的分布式集群资源管理和调度方案,把包括Hadoop在内的各类大数据组件自底向上有机整合在一起,为用户提供稳定可靠、便于管理、易于扩展、用户体验友好的大数据存储组件平台。提供高性能数据自动流转组件,方便用户业务针对不同数据源,做灵活业务适配和高效数据处理。支持对各类大数据组件统一使用SQL方式进行访问,实现不同类型大数据存储组件的统一接口适配。
3.应用开发组件
BDEC分析服务平台可以满足数据分析师对于数据进行灵活的报表分析和可视化展现,支持数据分析师在同一平台上对数据进行分析,预览,共享分析结果,支持多种可视化结果的大型仪表盘配置,支持用户自定义风格和展示方式。分析服务平台预置分类回归、结构化分析、深度学习、文本表达、推荐排序等不同领域上百种成熟机器学习和人工智能算法模型,提供REST接口服务,统一使用微服务架构进行有效管理,便捷集成到业务处理流程中,可以为线上系统提供稳定高效、可扩展的实时数据分析能力。
3.3应用管理平台
BDEC提供丰富的应用构建组件,为各类上层应用系统的构建提供了主流中间件支持,解决应用开发部署、权限管理、单点登录、服务网关等应用构建共性问题。基于容器云平台提供的微服务框架,为开发/部署人员提供高效率CI/CD工具链,进一步规范应用开发流程,提高开发效率和研发质量。同时提供良好的服务治理和编排能力,基于组件的编排构建实际业务应用,一键部署,同时提供部署实例弹性扩展的能力。
3.4IaaS运维管理
BDEC对IaaS层的主机节点服务能力进行了进一步抽象封装,能够更加有效解决资源高效管理和利用的问题。对计算、存储、网络等各类资源虚拟化、服务化,完善的多租户机制提供细粒度资源权限控制,支持多级别资源配额分配。同时,能够对资源的分配和消耗情况进行全面监控管理。
四、结束语基于中科天玑BDEC的产品化大数据全生命周期管理能力,可以轻松完成数据集成、数据开发、数据治理等过程,协助企业轻松构建数据中台,实现数据标准可控、快速构建数据处理过程,异构数据融合查询,帮助企业更快将数据融入业务,赋能业务数据化,构建可持续发展的数据平台,降低企业运营和研发成本。为了让业务开发人员更专注业务,借助业务中台沉淀能力,BDEC平台增强对业务支持,比如身份、验证、用户管理、平台管理等共性模块,支持多个业务子系统。可以直接获取业务中台支撑,不需要重复开发,持业务快速搭建,业务开发更敏捷。企业软件的运行方式都因为“云”产生了根本转变。新的应用程序是一系列的微服务,每一个都可以独立的变化,工程团队在一个松散耦合的DevOps环境中制作使用自助CI/CD工具,加速了创新独立的决定。运营成本也因此降低。采用云计算基础设施,更加有效的利用资源,并有了十足的灵活性。放眼未来,云计算服务的竞争已趋白热化。为用户提供大数据处理和机器学习的能力,是行业竞争者的必然选择。中科天玑的BDEC平台将集成主流大数据组件与高性能深度学习、图关系分析自研组件,帮助客户应对数据规模增长,业务动态发展的大数据时代挑战。预览时标签不可点