容器云服务
容器服务
更新时间: 2022-12-09 18:02:00深度集成Kubernetes容器编排引擎。支持类型多样的容器调度设置,例如:通过设置主机亲和性可将容器调度到指定的主机上运行;支持Flannel、Calico、Kube-OVN等多种主流的容器网络模式;支持对接不同类型的存储资源。
1. 资源管理
无缝对接Kubernetes,可按需自定义的Kubernetes CRD(Custom Resource Definition,自定义资源类型)资源,建立贴合业务需求的应用模型以及应用创建流程。Kubernetes原生资源或通过平台的资源管理功能按需自定义的Kubernetes CRD(Custom Resource Definition,自定义资源类型)资源,统一由Kubernetes进行管理。在减少资源数据量过大对平台性能和稳定性影响的同时,降低了平台维护的成本。同时,支持查看和更新集群或命名空间下的Kubernetes资源,提供Kubernetes集群的深度使用体验。
2. 容器调度
全面深度支持Kubernetes容器编排引擎的管理功能特性,容器化管理工作负载,并根据配置自动化执行容器调度。
提供标准的Kubernetes容器编排服务,可实现容器应用的自动化部署、扩展和管理。
支持多种部署策略,可根据服务的特性选择不同的部署策略。
支持为容器配置健康检查,只有当容器内进程处于就绪状态时才能对外提供服务。
3. 容器网络
提供强大的容器网络功能,支持Kubernetes的Flannel覆盖网络(VXLAN和Host-GW)以及Calico、Kube-OVN网络;提供网络双栈支持。
提供支持典型的四层或七层负载均衡,以及可实现多种复杂规则灰度发布的负载均衡器(LoadBalancer)方案。通过配置负载均衡,可把应用组件中的容器实例,挂载到负载均衡器上,把负载均衡器的服务地址作为统一访问入口。
负载均衡本身支持高可用部署。方便应用运维人员配置服务端口,且可保证多个应用共享同一负载均衡器时,端口不会冲突。
支持统一管理客户企业私有的域名资源,可将域名分配给指定的集群下的一个或全部项目使用。
4.容器存储
管理员可通过Kubernetes的存储类使用不同类型的存储资源:外部存储、内置分布式存储或本地存储。普通用户通过为应用关联持久卷声明(PVC)请求持久卷(PV),或挂载主机本地存储的方式,可实现容器持久存储。
● 外部存储
平台支持对接的外部存储资源类型包括:CephFS、CephRBD、NFS(Network File System)。
● 分布式存储
分布式存储为平台提供的集群内超融合存储方案。基于开源的ROOK + Ceph存储方案,内置分布式存储实现了可自动管理、自动扩容、以及自动修复的分布式存储能力,可满足中小规模的块存储、文件存储和对象存储需求。
● 本地存储
为了满足数据库、机器学习、区块链等业务场景下使用高性能存储的需求,平台也提供了本地存储方案。本地存储是一种软件定义的服务器本地存储方案,提供简单、易维护和高性能的本地存储服务能力。基于社区的 TopoLVM 方案,通过系统的 LVM 方式来实现本地存储的持久卷编排管理。
5. 容器配置
通过Kubernetes ConfigMap、Secret统一管理容器配置,并支持在更新配置字典/保密字典后,通过自定义命令,热更新业务容器中的相关配置,不重启容器即可实现配置的即时生效。
6. 容器日志
容器内进程一般会将日志以标准输出方式展示,或写入到日志文件内。容器平台支持将这两种类型的日志收集起来,在前端UI展示和查询。
7. 容器监控
平台提供应用、计算组件、容器组监控能力,收集基础的监控数据,例如:CPU使用率、内存使用率和每秒网络接受/转发字节数。
8. 应用编排&应用治理
● 原生应用
原生应用按创建方式,又分为两种类型。通过UI编辑模式或YAML编排文件创建的,称为自定义应用;通过HelmChart创建的,称为模板应用。原生应用支持用户在研发、运维、测试或生产环境中运行不同类型的业务。
业务的连续性需要长期稳定运行的环境,应用治理是一项持续的工作。平台的自定义应用(Application)作为Kubernetes的CRD资源,由一个或多个关联的工作负载构成,支持根据不同的部署和使用需求,选择对应的部署模式:Deployment、DaemonSet和StatefulSet,并关联网络、存储、监控、健康检查以及其它配置。
自动保留应用全局的历史版本,可按需创建应用快照,实现应用的全局回滚以及应用拓扑的可视化。同时,支持将导出的应用(应用模板)上传至平台的本地仓库,并通过分配仓库的使用权限,在平台上特定的多个命名空间下快速部署相同的应用。
支持查看应用下所有资源的可视化拓扑图。
结合实时监控、Kubernetes原生资源HPA(Horizontal Pod Autoscaler,自动扩缩容)以及CronHPA组件,支持在部署类型为Deployment的组件中,根据CPU的利用率设置指标自动扩缩容规则或定时自动扩缩容规则。
● OAM应用
原生应用作为一组Kubernetes资源集合的方式存在,对原生应用的操作实质上是对一个一个Kubernetes资源的操作。而OAM应用采用了一种更高层的抽象,让应用维护人员可以在不深入Kubernetes资源层的情况下,以更简单和更符合应用架构的方式管理应用。
OAM应用由应用组件组成,应用组件可以包含多个运维特征。应用组件和运维特征都被精心设计为贴近应用的概念。如:WEB服务组件、有状态服务组件、自动伸缩运维特征、自定义监控运维特征等等。平台提供预制的组件和运维特征,同时也开放扩展能力,让用户可以根据自身应用的特点自定义组件和运维特征,从而让应用运维更加标准化、简单化。
● 其他应用
平台中还支持组件应用和联邦应用。组件应用基于Operator,帮助用户深入管理有状态应用。联邦应用基于联邦集群,为应用灾备提供解决方案。
9. 应用商店
针对Kubernetes编排下微服务管理问题,平台集成了Helm和Operator开源项目并进行了扩展(例如:提供了图形化界面),帮助简化Kubernetes应用的部署和管理。
应用商店提供了预置模板一键部署复杂容器化应用及常用中间件服务,并支持使用自定义模板,包括从远端模板仓库、代码仓库导入的模板。
平台管理中的Chart、Git、SVN类型的模板仓库,是存储用户私有化定制的Helm Charts的远端代码仓库的本地映射。而Local类型的仓库则可用于管理用户从本地上传的应用模板。支持用户将远端代码仓库中的应用模板(例如:企业定制开发的MySQL、Kafka等中间件应用模板)同步至平台或将本地Chart上传至平台的本地仓库,并通过分配项目配置仓库中模板的使用权限,控制企业的不同部门或团队访问专属的模板仓库。命名空间开发人员可基于权限范围内可见的应用模板快速在不同的命名空间中部署模板应用。
通过应用商店,平台管理员可便捷地将企业内部的公共服务下发给多个项目开发人员使用。方便企业内部服务的统一管理、维护和分配,一旦服务变更可快速地同步变更并重新部署应用。
10. OperatorHub
通过OperatorHub,展示用作部署和管理Kubernetes原生应用程序的Operator。Operator可以理解为解决某些问题或实现某功能的一个或多个应用的合集。
11. vGPU支持
通过Kubernetes的GPUManager、GPUScheduler模块,支持对接、调度节点上的GPU设备资源。
在使用者创建计算组件时,支持设置所需的vGPU核心数和显存配额;在计算组件运行过程中,支持基于vGPU利用率、显存利用率指标,设置自动扩缩容。
12. 开发测试
通过镜像启动容器应用,能够快速地部署开发、测试环境。同时,使用相同的镜像能保持开发、测试、运维环境一致,减少错误。