CCE

云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。
云容器引擎深度整合华为云高性能的计算(ECS/BMS)、网络(VPC/EIP/ELB)、存储(EVS/OBS/SFS)等服务,并支持GPU、ARM、FPGA等异构计算架构,支持多可用区(Available zone,简称AZ)、多区域(Region)容灾等技术构建高可用Kubernetes集群。
华为云是全球首批Kubernetes认证服务提供商(Kubernetes Certified Service Provider,KCSP),是国内最早投入Kubernetes社区的厂商,是容器开源社区主要贡献者和容器生态领导者。华为云也是CNCF云原生计算基金会的创始成员及白金会员,云容器引擎是全球首批通过CNCF基金会Kubernetes一致性认证的容器服务。
    
    图1 使用云容器引擎
    
产品功能
    云容器引擎提供了Kubernetes集群管理、容器应用全生命周期管理、应用服务网格、Helm应用模板、插件管理、应用调度、监控与运维等容器全栈能力,为您提供一站式容器平台服务。

    1. 一站式部署和运维
    使用云容器引擎,您可以一键创建Kubernetes容器集群,无需自行搭建Docker和Kubernetes集群。您可以通过云容器引擎自动化部署和一站式运维容器应用,使得应用的整个生命周期都在云容器引擎内高效完成。
    
    2. 支持多类型容器集群    通过云容器引擎您可以直接使用华为云高性能的弹性云服务器、裸金属服务器、GPU加速云服务器等多种异构基础设施,您可以根据业务需要在云容器引擎中快速创建混合集群、鲲鹏集群、裸金属集群和GPU容器集群,并通过云容器引擎对创建的集群进行统一管理。
    图2 云容器引擎支持的集群类型
    
    
    3. 支持多种网络访问方式
    云容器引擎提供了丰富的网络访问方式,支持四层、七层负载均衡,满足不同场景下的访问诉求。
    
    4. 支持多种持久化存储卷
    云容器引擎除支持本地磁盘存储外,还支持将工作负载数据存储在华为云的云存储上,当前支持的云存储包括:云硬盘存储卷(EVS)、文件存储卷(SFS)、对象存储卷(OBS)和极速文件存储卷(SFS Turbo)。
    
    5. 丰富的亲和/反亲和调度    云容器引擎提供工作负载和可用区、工作负载和节点以及工作负载间的亲和性/反亲和调度。您可根据业务需求设置亲和性,实现工作负载的就近部署,容器间通信就近路由,减少网络消耗;你也可以对同个工作负载的多个实例设置反亲和部署,减少宕机影响,对互相干扰的应用反亲和部署,避免干扰。
    
    6. 灵活的弹性伸缩策略
    支持集群节点、工作负载的弹性伸缩,支持手动伸缩和自动弹性伸缩,并可以自由组合多种弹性策略以应对业务高峰期的突发流量浪涌。
    
    7. 深度集成Kubernetes生态工具
    云容器引擎深度集成应用服务网格和Kubernetes Helm标准模板。
    应用服务网格提供非侵入式的微服务治理解决方案,支持完整的生命周期管理和流量治理能力,兼容Kubernetes和Istio生态。您无需修改任何服务代码,也无需手动安装代理,只需开启应用服务网格功能,即可实现丰富的服务治理能力。
    模板市场基于Kubernetes Helm标准模板提供统一的资源管理与调度,高效地实现了模板的快速部署与后期管理,大幅简化了Kubernetes资源的安装管理过程。
    
    8. 容器DevOps能力
    配合容器镜像服务提供容器自动化交付流水线,您无需编写Dockerfile与Kubernetes Manifests,基于ContainerOps流水线模板可以自定义企业级容器DevOps流程,大幅提升容器交付效率。
    
产品优势
    云容器引擎的优势
    云容器引擎是基于业界主流的Docker和Kubernetes开源技术构建的容器服务,提供众多契合企业大规模容器集群场景的功能,在系统可靠性、高性能、开源社区兼容性等多个方面具有独特的优势,满足企业在构建容器云方面的各种需求。
    
    1. 简单易用    
    通过WEB界面一键创建Kubernetes集群,支持管理虚拟机节点或裸金属节点,支持虚拟机与物理机混用场景。
    一站式自动化部署和运维容器应用,整个生命周期都在容器服务内一站式完成。
    通过Web界面轻松实现集群节点和工作负载的扩容和缩容,自由组合策略以应对多变的突发浪涌。
    通过Web界面一键完成Kubernetes集群的升级。
    深度集成应用服务网格和Helm标准模板,真正实现开箱即用。

    2. 高性能    
    基于华为在计算、网络、存储、异构等方面多年的行业技术积累,提供业界领先的高性能云容器引擎,支撑您业务的高并发、大规模场景。
    采用高性能裸金属NUMA架构和高速IB网卡,AI计算性能提升3-5倍以上。
    
    3. 安全可靠    
    高可靠:集群控制面支持3 Master HA高可用,当其中某个或者两个Master节点故障时,集群依然可用,从而保障您的业务高可用。集群内节点和工作负载支持跨可用区(AZ)部署,帮助您轻松构建多活业务架构,保证业务系统在主机故障、机房中断、自然灾害等情况下可持续运行,获得生产环境的高稳定性,实现业务系统零中断。
    图1 集群高可用
    
    高安全:私有集群,完全由用户掌控,并深度整合华为云账号和Kubernetes RBAC能力,支持用户在界面为子用户设置不同的RBAC权限。
    
    4. 开放兼容    
    云容器引擎在 Docker 技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
    云容器引擎基于业界主流的Kubernetes 实现,完全兼容Kubernetes/Docker社区原生版本,与社区最新版本保持紧密同步,完全兼容Kubernetes API和Kubectl。

云容器引擎对比自建Kubernetes集群
    云容器引擎和自建kubernetes集群对比        

对比项

自建kubernetes集群

云容器引擎

易用性

自建kubernetes集群管理基础设施通常涉及安装、操作、扩展自己的集群管理软件、配置管理系统和监控解决方案,管理复杂。每次升级集群的过程都是巨大的调整,带来繁重的运维负担。

简化集群管理,简单易用

借助云容器引擎,您可以一键创建和升级Kubernetes容器集群,无需自行搭建Docker和Kubernetes集群。您可以通过云容器引擎自动化部署和一站式运维容器应用,使得应用的整个生命周期都在容器服务内高效完成。

您可以通过云容器引擎轻松使用深度集成的应用服务网格和Helm标准模板,真正实现开箱即用。

您只需启动容器集群,并指定想要运行的任务,云容器引擎帮您完成所有的集群管理工作,让您可以集中精力开发容器化的应用程序。

可扩展性

自建kubernetes集群需要根据业务流量情况和健康情况人工确定容器服务的部署,可扩展性差。

灵活集群托管,轻松实现扩缩容

云容器引擎可以根据资源使用情况轻松实现集群节点和工作负载的自动扩容和缩容,并可以自由组合多种弹性策略,以应对业务高峰期的突发流量浪涌。

可靠性

自建kubernetes集群多采用单Master节点,一旦出现故障,集群和业务将不可使用。

服务高可用

创建集群时若“高可用”选项配置为“是”,集群将创建3个Master节点,当其中某个或者两个节点故障时,集群依然可用,从而保障您的业务高可用。

高效性

自建kubernetes集群需要自行搭建镜像仓库或使用第三方镜像仓库,镜像拉取方式多采用串行传输,效率低。

镜像快速部署,业务持续集成

云容器引擎配合容器镜像服务提供容器自动化交付流水线,您无需编写Dockerfile与Kubernetes Manifests,基于ContainerOps流水线模板可以自定义企业级容器DevOps流程,镜像拉取方式采用并行传输,大幅提升容器交付效率。

成本

自建kubernetes集群需要投入资金构建、安装、运维、扩展自己的集群管理基础设施,成本开销大。

云容器引擎成本低

您只需支付用于存储和运行应用程序的基础设施资源(例如云服务器、云硬盘、弹性IP/带宽、负载均衡等)费用和容器集群Master管理节点费用。

应用场景
    1. 弹性伸缩架构
    应用场景:    
        电商客户遇到促销、限时秒杀等活动期间,访问量激增,需及时、自动扩展云计算资源。
        视频直播客户业务负载变化难以预测,需要根据CPU/内存使用率进行实时扩缩容。
        游戏客户每天中午12点及晚上18:00-23:00间需求增长,需要定时扩容。
    价值:    
        云容器引擎可根据用户的业务需求预设策略自动调整计算资源,使云服务器或容器数量自动随业务负载增长而增加,随业务负载降低而减少,保证业务平稳健康运行,节省成本。    
    优势:
        自由灵活
        支持多种策略配置,业务流量达到扩容指标,秒级触发容器扩容操作。    
    高可用
        自动检测伸缩组中实例运行状况,启用新实例替换不健康实例,保证业务健康可用。    
    低成本
        只按照实际用量收取云服务器费用。
    
    图1 弹性伸缩场景
    
    

    2. 微服务治理
    应用场景
        伴随着互联网技术的不断发展,各大企业的系统越来越复杂,传统的系统架构越来越不能满足业务的需求,取而代之的是微服务架构。微服务是将复杂的应用切分为若干服务,每个服务均可以独立开发、部署和伸缩;微服务和容器组合使用,可进一步简化微服务的交付,提升应用的可靠性和可伸缩性。
        随着微服务的大量应用,其构成的分布式应用架构在运维、调试、和安全管理等维度变得更加复杂,在管理微服务时,往往需要在业务代码中添加微服务治理相关的代码,导致开发人员不能专注于业务开发,还需要考虑微服务治理的解决方案,并且将解决方案融合到其业务系统中。
    
    价值:    
        云容器引擎深度集成应用服务网格,提供开箱即用的应用服务网格流量治理能力,用户无需修改代码,即可实现灰度发布、流量治理和流量监控能力。    
    优势:    
        开箱即用
        与云容器引擎无缝对接,一键开启后即可提供非侵入的智能流量治理解决方案。    
    策略化智能路由
        无需修改代码,即可实现HTTP、TCP等服务连接策略和安全策略。    
    流量治理可视化
        基于无侵入的监控数据采集,深度整合华为云APM能力,提供实时流量拓扑、调用链等服务性能监控和运行诊断,构建全景的服务运行视图,可实时、一站式观测服务流量健康和性能状态。    
    图2 微服务治理场景

    3. DevOps持续交付
    应用场景:
        当前IT行业发展日益快速,面对海量需求必须具备快速集成的能力。经过快速持续集成,才能保证不间断的补全用户体验,提升服务质量,为业务创新提供源源不断的动力。大量交付实践表明,不仅传统企业,甚至互联网企业都可能在持续集成方面存在研发效率低、工具落后、发布频率低等方面的问题,需要通过持续交付提高效率,降低发布风险。    
    价值:    
        云容器引擎搭配容器镜像服务提供DevOps持续交付能力,能够基于代码源自动完成代码编译、镜像构建、灰度发布、容器化部署,实现一站式容器化交付流程,并可对接已有CI/CD,完成传统应用的容器化改造和部署。    
    优势:
        高效流程管理
        更优的流程交互设计,脚本编写量较传统CI/CD流水线减少80%以上,让CI/CD管理更高效。    
    灵活的集成方式
        提供丰富的接口便于与企业已有CI/CD系统进行集成,灵活适配企业的个性化诉求。    
    高性能
        全容器化架构设计,任务调度更灵活,执行效率更高。    
    图3 DevOps持续交付场景

    4. 混合云架构
    应用场景:
        多云部署、容灾备份
        为保证业务高可用,需要将业务同时部署在多个云的容器服务上,在某个云出现事故时,通过统一流量分发的机制,自动的将业务流量切换到其他云上。    
        流量分发、弹性伸缩
        大型企业客户需要将业务同时部署在不同地域的云机房中,并能自动弹性扩容和缩容,以节约成本。    
        业务上云、数据库托管
        对于金融、安全等行业用户,业务数据的敏感性要求将数据业务保留在本地的IDC中而将一般业务部署在云上,并需要进行统一管理。    
        开发与部署分离
        出于IP安全的考虑,用户希望将生产环境部署在公有云上,而将开发环境部署在本地的IDC。    
    价值:    
        云容器引擎利用容器环境无关的特性,将私有云和公有云容器服务实现网络互通和统一管理,应用和数据可在云上云下无缝迁移,并可统一运维多个云端资源,从而实现资源的灵活使用以及业务容灾等目的。    
    优势:    
        云上容灾
        通过华为云容器引擎,可以将业务系统同时部署在多个云的容器服务上,统一流量分发,单云故障后能够自动将业务流量切换到其他云上,并能快速自动解决现网事故。    
    流量自动分发
        通过云容器引擎的统一流量分发机制,实现应用访问流量的地域亲和,降低业务访问时延,并需要能够将线下IDC中的业务在云上扩展,可根据业务流量峰值情况,自动弹性扩容和缩容。    
    计算与数据分离,能力共享
        通过华为云容器引擎,用户可以实现敏感业务数据与一般业务数据的分离,可以实现开发环境和生产环境分离,可以实现特殊计算能力与一般业务的分离,并能够实现弹性扩展和集群的统一管理,达到云上云下资源和能力的共享。    
    降低成本
        业务高峰时,利用公有云资源池快速扩容,用户不再需要根据流量峰值始终保持和维护大量资源,节约成本。    
    图4 混合云场景

    5. 高性能AI计算
    应用场景:
        对于AI、基因测序、视频处理等行业的用户,其计算任务依赖特殊的硬件,如GPU、裸金属服务器等,用户需要将计算业务部署在云上,弹性利用云上的特殊硬件算力,而在私有云部署一般业务,避免大规模使用特殊硬件带来的成本压力。    
    价值:
        面向AI计算的容器服务,采用华为云高性能GPU计算实例,并支持多容器共享GPU资源,在AI计算性能上比通用方案提升3-5倍以上,并大幅降低了AI计算的成本,同时帮助数据工程师在集群上轻松部署计算应用,您无需关心复杂的部署运维,专注核心业务,快速实现从0到1快速上线。    
    优势:
        超强性能
        裸金属NUMA架构与高速IB网卡,AI计算性能提升3~5倍。    
    高效计算
        GPU资源多容器共享调度,整体计算成本大幅降低。    
    成熟应用
        主流GPU型号全适配,并在华为云EI产品大规模使用。
    图5 AI计算    
    
基本概念
    云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。

    云容器引擎提供Kubernetes原生API,支持使用kubectl,且提供图形化控制台,让您能够拥有完整的端到端使用体验,使用云容器引擎前,建议您先了解相关的基本概念。
    
    1. 集群(Cluster)
    集群指容器运行所需要的云资源组合,关联了若干云服务器节点、负载均衡等云资源。您可以理解为集群是“同一个子网中一个或多个弹性云服务器(又称:节点)”通过相关技术组合而成的计算机群体,为容器运行提供了计算资源池。
    
    2. 节点(Node)
    每一个节点对应一台服务器(可以是虚拟机实例或者物理服务器),容器应用运行在节点上。节点上运行着Agent代理程序(kubelet),用于管理节点上运行的容器实例。集群中的节点数量可以伸缩。
    
    3. 虚拟私有云(VPC)
    虚拟私有云是通过逻辑方式进行网络隔离,提供安全、隔离的网络环境。您可以在VPC中定义与传统网络无差别的虚拟网络,同时提供弹性IP、安全组等高级网络服务。
    
    4. 安全组
    安全组是一个逻辑上的分组,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当弹性云服务器加入该安全组后,即受到这些访问规则的保护。

    
    集群、虚拟私有云、安全组和节点的关系    
    如 图1,同一个Region下可以有多个虚拟私有云(VPC)。虚拟私有云由一个个子网组成,子网与子网之间的网络交互通过子网网关完成,而集群就是建立在某个子网中。因此,存在以下三种场景:
        不同集群可以创建在不同的虚拟私有云中。
        不同集群可以创建在同一个子网中。
        不同集群可以创建在不同的子网中。


    5/ 实例(Pod)
    实例(Pod)是 Kubernetes 部署应用或服务的最小的基本单位。一个Pod 封装多个应用容器(也可以只有一个容器)、存储资源、一个独立的网络 IP 以及管理控制容器运行方式的策略选项。    
    图2 实例(Pod)
    
    
    6. 容器(Container)
    一个通过 Docker 镜像创建的运行实例,一个节点可运行多个容器。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。
    
    7. 工作负载
    工作负载即Kubernetes对一组Pod的抽象模型,用于描述业务的运行载体,包括Deployment、Statefulset、Daemonset、Job、CronJob等多种类型。
    
        无状态工作负载:即kubernetes中的“Deployments”,无状态工作负载支持弹性伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如:nginx、wordpress等。
        有状态工作负载:即kubernetes中的“StatefulSets”,有状态工作负载支持实例有序部署和删除,支持持久化存储,适用于实例间存在互访的场景,如ETCD、mysql-HA等。
        创建守护进程集:即kubernetes中的“DaemonSet”,守护进程集确保全部(或者某些)节点都运行一个Pod实例,支持实例动态添加到新节点,适用于实例在每个节点上都需要运行的场景,如ceph、fluentd、Prometheus Node Exporter等。
        普通任务:即kubernetes中的“Job”,普通任务是一次性运行的短任务,部署完成后即可执行。使用场景为在创建工作负载前,执行普通任务,将镜像上传至镜像仓库。
        定时任务:即kubernetes中的“CronJob”,定时任务是按照指定时间周期运行的短任务。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。
    图3 工作负载与Pod的关系    
    
    8/ 编排
    编排模板包含了一组容器服务的定义和其相互关联,可以用于多容器应用和虚机应用的部署和管理。
    
    9. 镜像(Image)
    Docker镜像是一个模板,是容器应用打包的标准格式,用于创建Docker容器。或者说,Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。在部署容器化应用时可以指定镜像,镜像可以来自于 Docker Hub、华为云容器镜像服务或者用户的私有 Registry。例如一个Docker镜像可以包含一个完整的Ubuntu操作系统环境,里面仅安装了用户需要的应用程序及其依赖文件。
    
    镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
     
    10. 命名空间(Namespace)
    命名空间是对一组资源和对象的抽象整合。在同一个集群内可创建不同的命名空间,不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务,也能够互不干扰。    
    例如:可以将开发环境、测试环境的业务分别放在不同的命名空间。
    
    11. 服务(Service)
    服务定义了实例及访问实例的途径,如单个稳定的IP地址和相应的DNS名称。
    为了解决组件间的通信问题,CCE使用服务名称代替IP地址,从而实现组件间的相互访问。在创建工作负载时会指定服务名称。
    
    12. mcore
    mcore是CPU使用单位,为千分之一个核。通常容器工作负载的CPU用量以mcore为单位衡量。
    
    13. 亲和性与反亲和性    在应用没有容器化之前,原先一个虚机上会装多个组件,进程间会有通信。但在做容器化拆分的时候,往往直接按进程拆分容器,比如业务进程一个容器,监控日志处理或者本地数据放在另一个容器,并且有独立的生命周期。这时如果他们分布在网络中两个较远的点,请求经过多次转发,性能会很差。
    
    亲和性:可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的损耗。如:应用A与应用B两个应用频繁交互,所以有必要利用亲和性让两个应用的尽可能的靠近,甚至在一个节点上,以减少因网络通信而带来的性能损耗。
    反亲和性:主要是出于高可靠性考虑,尽量分散实例,某个节点故障的时候,对应用的影响只是 N 分之一或者只是一个实例。如:当应用采用多副本部署时,有必要采用反亲和性让各个应用实例打散分布在各个节点上,以提高HA。
    环境变量
    环境变量是指容器运行环境中设定的一个变量,您可以在创建容器模板时设定不超过30个的环境变量。环境变量可以在工作负载部署后修改,为工作负载提供了极大的灵活性。
    
    在CCE中设置环境变量与Dockerfile中的“ENV”效果相同。
    
    14. 应用服务网格(Istio)
    Istio是一个提供连接、保护、控制以及观测功能的开放平台。    云容器引擎深度集成了应用服务网格,提供非侵入式的微服务治理解决方案,支持完整的生命周期管理和流量治理能力,兼容Kubernetes和Istio生态。一键开启应用服务网格后即可提供非侵入的智能流量治理解决方案,其功能包括负载均衡、熔断、限流等多种治理能力。应用服务网格内置金丝雀、蓝绿等多种灰度发布流程,提供一站式自动化的发布管理。基于无侵入的监控数据采集,深度整合华为云应用性能管理(APM)能力,提供实时流量拓扑、调用链等服务性能监控和运行诊断,构建全景的服务运行视图。

发布了220 篇原创文章 · 获赞 16 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/zhanggqianglovec/article/details/103771869
CCE
今日推荐