【云驻共创】云容器引擎:让云上环境搭建更简单
1、概述
云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。
华为云是全球首批Kubernetes认证服务提供商(Kubernetes Certified Service Provider,KCSP),是国内最早投入Kubernetes社区的厂商,是容器开源社区主要贡献者和容器生态领导者。华为云也是CNCF云原生计算基金会的创始成员及白金会员,云容器引擎是全球首批通过CNCF基金会Kubernetes一致性认证的容器服务。
2、云容器引擎架构
云容器引擎可提供高可靠高性能的企业级容器应用管理服务。云容器引擎架构可支持多集群部署,同时可实现容器编排、应用管理、服务治理等功能。
3、云容器引擎相关功能
云容器引擎提供高度可扩展的、高性能的企业级Kubernetes集群,包括集群管理、节点管理、节点池管理、工作负载、亲和/反亲和性调度、容器网络、容器存储、插件管理、模板市场、弹性伸缩、权限管理、系统管家等功能,为您提供一站式容器平台服务。
3.1、集群管理
云容器引擎CCE是一种托管的Kubernetes服务,可进一步简化基于容器的应用程序部署和管理,方便您在CCE中创建Kubernetes集群,部署您的容器化应用,以及方便管理和维护。
- 一站式部署和运维:使用云容器引擎,您可以一键创建Kubernetes容器集群,无需自行搭建Docker和Kubernetes集群。您可以通过云容器引擎自动化部署和一站式运维容器应用,使得应用的整个生命周期都在云容器引擎内高效完成。
- 支持多类型容器集群:通过云容器引擎您可以直接使用高性能的弹性云服务器、裸金属服务器、GPU加速云服务器等多种异构基础设施,您可以根据业务需要在云容器引擎中快速创建集群,并通过云容器引擎对创建的集群进行统一管理。
集群管理功能介绍 |
|
功能模块 |
功能概述 |
CCE Turbo集群 |
支持虚拟机和裸金属服务器混合部署,基于新一代高性能基础设施提供极致的性能体验。 |
CCE集群 |
CCE集群支持虚拟机与裸金属服务器混合、支持GPU、NPU等异构节点的混合部署,基于高性能网络模型提供全方位、多场景、安全稳定的容器运行环境。 |
鲲鹏集群 |
鲲鹏容器集群(ARM指令集)提供了容器在鲲鹏(ARM架构)服务器上的运行能力,提供与X86服务器相同的调度伸缩,快速部署能力,并具有大幅降低成本的潜力。 |
集群弹性扩容 |
根据实际业务需要对CCE集群的工作节点进行扩容和缩容,当集群中出现由于资源不足而无法调度的工作负载时自动触发扩容,从而减少人力成本。 |
集群升级 |
通过云容器引擎管理控制台快速升级到Kubernetes最新版本或者bugfix版本,以支持新特性的使用。 |
集群监控 |
实时查看每个集群控制节点的资源使用情况,了解CCE集群控制节点的监控指标,及时收到异常告警并做出反应,保证业务顺畅运行。 |
3.2、节点管理
节点是容器集群组成的基本元素。节点取决于业务,既可以是虚拟机,也可以是物理机。每个节点都包含运行Pod所需要的基本组件,包括 Kubelet、Kube-proxy 、Container Runtime等。在云容器引擎CCE中,主要采用高性能的弹性云服务器ECS或裸金属服务器BMS作为节点来构建高可用的Kubernetes集群。
节点管理功能介绍 |
|
功能模块 |
功能概述 |
添加节点 |
支持两种添加节点的方式:购买节点和纳管节点,纳管节点是指将“已购买的弹性云服务器(ECS)加入到CCE集群中”。 支持虚拟机、裸金属服务器、GPU、NPU等异构节点的购买添加。 |
节点监控 |
CCE通过云监控服务(Cloud Eye)为您提供节点的监控,每个节点对应一台弹性云服务器。 |
重置节点 |
在CCE集群中重置节点会将该节点以及节点内运行的业务都销毁,重置前请确认您的正常业务运行不受影响,请谨慎操作。该功能支持v1.13及以上版本的集群。 |
删除节点 |
在CCE集群中删除节点会将该节点以及节点内运行的业务都销毁,删除前请确认您的正常业务运行不受影响,请谨慎操作。 |
3.3、节点池管理
支持创建新的自定义节点池,借助节点池基本功能方便快捷地创建、管理和销毁节点,而不会影响整个集群。新节点池中所有节点的参数和类型都彼此相同,您无法在节点池中配置单个节点,任何配置更改都会影响节点池中的所有节点。
节点池管理功能介绍 |
|
功能模块 |
功能概述 |
创建节点池 |
创建节点池、查看节点池 |
管理节点池 |
编辑节点池、删除节点池、拷贝节点池、迁移节点 |
3.4、工作负载
工作负载是在Kubernetes上运行的应用程序。无论您的工作负载是单个组件还是协同工作的多个组件,您都可以在Kubernetes上的一组Pod中运行它。在Kubernetes中,工作负载是对一组Pod的抽象模型,用于描述业务的运行载体,包括Deployment、Statefulset、Daemonset、Job、CronJob等多种类型。
CCE提供基于Kubernetes原生类型的容器部署和管理能力,支持容器工作负载部署、配置、监控、扩容、升级、卸载、服务发现及负载均衡等生命周期管理。
工作负载功能介绍 |
|
功能模块 |
功能概述 |
设置容器规格 |
支持在创建工作负载时为添加的容器设置资源限制。可以对工作负载中每个实例所用的CPU配额、内存配额进行申请和限制,对每个实例所用的GPU和昇腾 310配额设置使用或不使用。 |
设置容器生命周期 |
提供了回调函数,在容器的生命周期的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以注册相应的钩子函数。 |
设置容器启动命令 |
创建工作负载或任务时,通常通过镜像指定容器中运行的进程。在默认情况下,镜像会运行默认命令,如果想运行特定命令或重写镜像默认值,需要用到以下设置: · 工作目录:指定运行命令的工作目录。若镜像中未指定工作目录,且在界面中也未指定,默认是“/”。 · 运行命令:控制镜像运行的实际命令。 · 运行参数:传递给运行命令的参数。 |
设置容器健康检查 |
健康检查是指容器运行过程中,根据用户需要,定时检查容器健康状况。若不配置健康检查,如果服务出现业务异常,pod将无法感知,也不会自动重启去恢复业务。最终导致虽然pod状态显示正常,但pod中的业务异常的情况。 提供了两种健康检查的探针: 1. 工作负载存活探针:用于检测容器是否正常,类似于我们执行 ps 命令检查进程是否存在。如果容器的存活检查失败,集群会对该容器执行重启操作;若容器的存活检查成功则不执行任何操作。 2. 工作负载业务探针:用于检查用户业务是否就绪,如果未就绪,则不转发流量到当前实例。一些程序的启动时间可能很长,比如要加载磁盘数据或者要依赖外部的某个模块启动完成才能提供服务。这时候程序进程在,但是并不能对外提供服务。这种场景下该检查方式就非常有用。如果容器的就绪检查失败,集群会屏蔽请求访问该容器;若检查成功,则会开放对该容器的访问。 |
设置环境变量 |
环境变量是指容器运行环境中设定的一个变量,环境变量可以在工作负载部署后修改,为工作负载提供极大的灵活性。 |
采集容器日志 |
支持配置工作负载日志策略,便于日志的统一收集、管理和分析,以及按周期防爆处理。 |
3.5、亲和/反亲和性调度
云容器引擎提供工作负载和可用区、工作负载和节点以及工作负载间的亲和性/反亲和调度。您可根据业务需求设置亲和性,实现工作负载的就近部署,容器间通信就近路由,减少网络消耗;您也可以对同个工作负载的多个实例设置反亲和部署,减少宕机影响,对互相干扰的应用反亲和部署,避免干扰。
调度策略功能介绍 |
|
功能模块 |
功能概述 |
自定义调度策略 |
开放节点亲和、工作负载亲和以及工作负载反亲和调度策略的配置,以满足用户的更高需求。在自定义调度策略中用户可以设置“节点亲和性”、“工作负载亲和性”和“工作负载反亲和性”。 |
简易调度策略 |
提供简单便捷以及足够功能的调度方式。简易调度策略提供工作负载和可用区的亲和性、工作负载和节点的亲和性以及工作负载间的亲和性调度,用户可根据业务需求进行相应的设置部署工作负载。 |
3.6、 网络访问方式
云容器引擎通过将Kubernetes网络和VPC深度集成,提供了稳定高性能的网络访问方式,能够满足多种复杂场景下工作负载间的互相访问。
网络管理功能介绍 |
|
功能模块 |
功能概述 |
Service |
Service是一种资源,提供了我们访问单个或多个容器应用的能力。每个服务在其生命周期内,都拥有一个固定的IP地址和端口。每个服务对应了后台的一个或多个Pod,通过这种方式,客户端就不需要关心Pod所在的位置,方便后端进行Pod扩容、缩容等操作。 支持的Service类型包括: · 集群内访问(ClusterIP):仅在集群内访问服务。 · 节点访问(NodePort):使用节点私有IP或弹性公网IP访问。 · 负载均衡(LoadBalancer):使用弹性负载均衡器访问服务。 · DNAT网关(DNAT):通过DNAT网关访问服务。 |
七层负载均衡(Ingress) |
七层负载均衡(Ingress)是采用了共享型弹性负载均衡和独享型弹性负载均衡,在四层负载均衡访问方式的基础上支持了URL配置,通过对应的URL将访问流量分发到对应的服务。同时,服务根据不同URL实现不同的功能。 |
网络策略(NetworkPolicy) |
基于Kubernetes的网络策略功能进行了加强,通过配置网络策略,允许在同个集群内实现网络的隔离,也就是可以在某些实例(Pod)之间架起防火墙。使用场景例如:某个用户有支付系统,且严格要求只能某几个组件能访问该支付系统,否则有被攻破的安全风险,通过配置网络策略可免除该风险。 |
网络平面(NetworkAttachmentDefinition) |
网络平面(NetworkAttachmentDefinition)是集群的一种crd资源,为容器对接ENI(Elastic Network Interface,弹性网络接口)提供配置项,如VPC,子网等。关联网络平面的工作负载支持对接弹性网卡服务,容器能直接绑定弹性网卡,并对外提供服务。 |
3.7、持久化存储卷
云容器引擎除支持本地磁盘存储外,还支持将工作负载数据存储在云存储上,当前支持的云存储包括:云硬盘存储卷(EVS)、文件存储卷(SFS)、对象存储卷(OBS)和极速文件存储卷(SFS Turbo)。
存储管理功能介绍 |
|
功能模块 |
功能概述 |
本地磁盘存储 |
通过本地磁盘存储将容器所在宿主机的文件目录挂载到容器的指定路径中(对应Kubernetes的HostPath),也可以不填写源路径(对应Kubernetes的EmptyDir),不填写时将分配主机的临时目录挂载到容器的挂载点,指定源路径的本地硬盘数据卷适用于将数据持久化存储到容器所在宿主机,EmptyDir(不填写源路径)适用于容器的临时存储。 |
云硬盘存储卷 |
支持将云硬盘(EVS)挂载到容器中。通过云硬盘,可以将存储系统的远端文件目录挂载到容器中,数据卷中的数据将被永久保存,即使删除了容器,数据卷中的数据依然保存在存储系统中。 |
文件存储卷 |
支持创建SFS存储卷并挂载到容器的某一路径下,也可以使用底层SFS服务创建的文件存储卷,SFS存储卷适用于多读多写的持久化存储,适用于多种工作负载场景,包括媒体处理、内容管理、大数据分析和分析工作负载程序等场景。 |
对象存储卷 |
支持创建OBS对象存储卷并挂载到容器的某一路径下,对象存储适用于云工作负载、数据分析、内容分析和热点对象等场景。 |
极速文件存储卷 |
CCE支持创建SFS Turbo极速文件存储卷并挂载到容器的某一路径下,极速文件存储具有按需申请,快速供给,弹性扩展,方便灵活等特点,适用于DevOps、容器微服务、企业办公等应用场景。 |
快照与备份 |
通过EVS服务为您提供快照功能,云硬盘快照简称快照,指云硬盘数据在某个时刻的完整拷贝或镜像,是一种重要的数据容灾手段,当数据丢失时,可通过快照将数据完整的恢复到快照时间点。 |
3.8、插件扩展
CCE提供了多种类型的系统插件,用于管理集群的扩展功能,以支持选择性扩展满足特性需求的功能。
- 提供OpenAPI和社区原生API。
- 提供Kubectl插件和社区原生Kubectl工具。
3.9、生态工具
云容器引擎深度集成应用服务网格和Kubernetes Helm标准模板。
Kubernetes生态 |
|
功能模块 |
功能概述 |
应用服务网格 |
提供非侵入式的微服务治理解决方案,支持完整的生命周期管理和流量治理能力,兼容Kubernetes和Istio生态。您无需修改任何服务代码,也无需手动安装代理,只需开启应用服务网格功能,即可实现丰富的服务治理能力。 |
模板市场 |
模板市场是CCE基于Kubernetes Helm标准的模板提供统一的资源管理与调度,高效地实现了模板的快速部署与后期管理,大幅简化了Kubernetes资源的安装管理过程。CCE提供的模板市场功能包括:示例模板和我的模板。 · 示例模板:使用社区Helm开源镜像,提供基础的容器集群体验与模板体验功能,当前支持redis、etcd、mysql-ndb、mongodb、istio、zookeeper、elasticsearch、kibana等示例模板。 · 我的模板:通过自定义Helm模板来简化工作负载部署的服务。 |
3.10、弹性伸缩
CCE支持集群节点、工作负载的弹性伸缩,支持手动伸缩和自动弹性伸缩,并可以自由组合多种弹性策略以应对业务高峰期的突发流量浪涌。
弹性伸缩功能介绍 |
|
功能模块 |
功能概述 |
工作负载伸缩 |
提供HPA策略和CustomedHPA策略两种创建方式。 · HPA策略:即Horizontal Pod Autoscaling,是Kubernetes中实现POD水平自动伸缩的功能。该策略在kubernetes社区HPA功能的基础上,增加了HPA级别的冷却时间窗和扩缩容阈值等功能。 · CustomedHPA策略:自研的弹性伸缩增强能力,能够基于指标(CPU利用率、内存利用率)或周期(每天、每周、每月或每年的具体时间点),对无状态工作负载进行弹性扩缩容。 |
节点伸缩 |
通过节点自动伸缩组件autoscaler实现的,可以按需弹出节点实例,支持多可用区、多实例规格、多种伸缩模式,满足不同的节点伸缩场景。 |
3.11、权限管理
权限管理是在统一身份认证服务(IAM)与Kubernetes的角色访问控制(RBAC)的能力基础上,打造的细粒度权限管理功能,支持基于IAM的细粒度权限控制和IAM Token认证,支持集群级别、命名空间级别的权限控制,帮助用户便捷灵活的对租户下的IAM用户、用户组设定不同的操作权限。
权限管理功能介绍 |
|
功能模块 |
功能概述 |
集群权限 |
CCE集群权限是基于IAM系统策略和自定义策略的授权,可以通过用户组功能实现IAM用户的授权 |
命名空间权限 |
基于Kubernetes RBAC能力的授权,通过权限设置可以让不同的用户或用户组拥有操作不同Kubernetes资源的权限。同时CCE基于开源能力进行了增强,可以支持基于IAM用户或用户组粒度进行RBAC授权、IAM token直接访问API进行RBAC认证鉴权。 |
4、云容器引擎产品优势
云容器引擎是基于业界主流的Docker和Kubernetes开源技术构建的容器服务,提供众多契合企业大规模容器集群场景的功能,在系统可靠性、高性能、开源社区兼容性等多个方面具有独特的优势,满足企业在构建容器云方面的各种需求。
4.1、简单易用
- 通过WEB界面一键创建Kubernetes集群,支持管理虚拟机节点或裸金属节点,支持虚拟机与物理机混用场景。
- 一站式自动化部署和运维容器应用,整个生命周期都在容器服务内一站式完成。
- 通过Web界面轻松实现集群节点和工作负载的扩容和缩容,自由组合策略以应对多变的突发浪涌。
- 通过Web界面一键完成Kubernetes集群的升级。
- 深度集成应用服务网格和Helm标准模板,真正实现开箱即用。
4.2、高性能
- 基于在计算、网络、存储、异构等方面多年的行业技术积累,提供业界领先的高性能云容器引擎,支撑您业务的高并发、大规模场景。
- 采用高性能裸金属NUMA架构和高速IB网卡,AI计算性能提升3-5倍以上。
4.3、安全可靠
- 高可靠:集群控制面支持3 Master HA高可用,3个Master节点可以处于不同可用区,保障您的业务高可用。集群内节点和工作负载支持跨可用区(AZ)部署,帮助您轻松构建多活业务架构,保证业务系统在主机故障、机房中断、自然灾害等情况下可持续运行,获得生产环境的高稳定性,实现业务系统零中断。
- 高安全:私有集群,完全由用户掌控,并深度整合IAM和Kubernetes RBAC能力,支持用户在界面为子用户设置不同的RBAC权限。
4.4、开放兼容
- 云容器引擎在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
- 云容器引擎基于业界主流的Kubernetes实现,完全兼容Kubernetes/Docker社区原生版本,与社区最新版本保持紧密同步,完全兼容Kubernetes API和Kubectl。
5、容器时代的云计算
5.1、容器
容器技术是一种轻量级的操作系统虚拟化方案,可基于操作系统虚拟出更加细粒度的资源单位。
优势:
- 通过共享kernel,细粒度资源隔离
- 定义了环境无关的标准交付,部署规范
- 秒级快速启动和停止
5.2、容器关键概念
镜像:应用发布的标准格式,通过Dockerfile描述,可构建为一个tar包;
镜像仓库:存放镜像文件的场所;
容器:容器是从镜像创建的运行实例,可以被启动、停止和删除。
5.3、 Docker镜像
- Docker镜像提供了一种全新的软件格式。使得软件的分发变得容易,Build Once,Run Anywhere。
- Docker镜像分层的特性,也使得该软件格式能够被快速打包,占用空间也大大减少
5.4、Kubernetes架构
kubernetes主要功能如下:
- 使用Docker对应用程序打包,实例化、运行
- 以集群的方式运行,管理跨节点的容器
- 解决Docer跨节点容器之间的通讯问题
- Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
6、云容器引擎应用场景
6.1、 场景1:自动化运维和高可用
自动化运维和高可用
通过容器服务可快速搭建电商等业务系统,用户可一键创建容器集群,并自动化部署中间件服务和容器化业务,实现全生命周期一站式管理。同时容器的分布式部署方式可最大程序地保证应用高可用。
优势:
- 自动化管理:业务快速部署及自动弹性伸缩,应用全生命周期一站式管理。
- 业务高可用:集群控制面HA和跨AZ高可用,容器应用优雅下线。
6.2、场景2:DevOps持续交付
可定制化持续交付流程:配合第三方开发流水线开发测试工具,自动完成从代码提交到应用部署的DevOps完整流程,替代部署复杂、迭代缓慢的传统方式,提高企业代码交付和部署的效率。
优势:
- 可定制自动化:实现从代码变更、代码构建、镜像构建和应用部署的全流程自动化;
- 开放能力:兼容第三方代码扫描、检测和测试工具,满足开发阶段多样性要求
6.3、场景3:有状态容器应用
有状态容器应用:有状态容器应用是指在运行过程中需要保存数据或状态的一类容器应用。CCE利用华为云的EVS/SFS等存储能力提供高可用存在卷,实现“有状态容器应用”的数据持久化能力。
优势:
- 数据持久化存储:容器实例故障或迁移时,数据不丢失;
- 多实例数据共享:多个实例可共享存储;
6.4、场景4:裸金属私有集群
高性能裸金属私有集群:在物理机上直接部署容器,省去虚拟化开销,计算、存储、网络能力相比虚拟机私有集群大大提升,特别适合有高性能需求的业务场景。
优势:
- 高性能:物理机上直接部署容器,容器性能达到物理机水准;
- 高密度:相比虚拟机集群,容器部署密度提升数倍。
7、小结
基于云容器引擎CCE服务构建,快速部署跨可用区的高可用容器集群环境,可帮助企业快速实现业务系统的容器化改造。
本文参与华为云社区【内容共创】活动第18期。
https://bbs.huaweicloud.cn/blogs/364560
- 点赞
- 收藏
- 关注作者
评论(0)