容器云PaaS平台建设中应关注的重点和难点

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 对于企业级容器云PaaS平台,在多集群管理的模式下,每一个功能都会变得非常复杂。对于建设中的重点和难点,从以下多个方面进行了详细的方案分析和设计实现。

对于企业级容器云PaaS平台,在多集群管理的模式下,每一个功能都会变得非常复杂。对于建设中的重点和难点,从以下多个方面进行了详细的方案分析和设计实现。主要包含安全集中控制、资源统一管理、镜像统一管理、应用统一管理、配置统一管理、统一的监控管理智能运维,以及企业基础服务的提供。


1、安全治理

在容器云PaaS平台中,通过租户、集群、用户三级安全管理,实现多集群管理的安全集中管控。首先要控制对集群的安全访问,每个集群都采用安全模式启动,使用CA证书的安全认证方式对集群进行SSL安全访问。没有证书不允许访问任何一个集群。


在多集群管理中,租户为一个虚拟的单位概念,每个项目可定义为一个租户,如项目A即为一个租户,每个租户下可建立多个集群,租户拥有一个或者多个集群的访问证书,租户实现对自己名下资源的管理和分配。租户再通过用户组绑定不同集群和分区资源,属于某用户组下的用户即可获得对资源的访问权限。用户本身只能部署和监控自己的应用,保证应用的独立性和安全性。

2、从资源管理到资源调度

容器云PaaS平台资源管理与调度中心利用先进、成熟的云计算技术实现资源整合,在资源池提供资源供应(支持私有云资源池、公有云及混合云提供的计算资源、存储资源、网络资源等各类物理资源和虚拟资源)的基础上,实现对资源的统一管理和动态调配。向用户提供可弹性扩展的云化服务。


基于以上资源模型,资源管理的流程如下:

  • 经过证书的安全认证之后,通过Kubernetes API Server对集群进行纳管,把集群的Node的数量、配置等信息导入,同时补充机房、机架等信息。
  • 将纳管集群和租户进行绑定,把集群分配给指定租户。
  • 租户可以继续对集群资源进行分区,比如分成WEB区、DB区等,便于部署不同的应用,并且可以实现不同配置的主机的共存。


容器云PaaS平台资源管理与调度中心具备如下能力:

  • 通过云化技术,将所有物理主机资源合并成统一的资源池,在此基础上实现计算、存储、网络资源的动态按需分配,形成云化服务提供给用户使用。
  • 具有对其他云环境的接入能力,统一进行IT运维与监控,支持自助服务,提供多租户环境支持,并对租户之间的数据和配置进行安全隔离,支持运维监控能力。
  • 标准化并具开放性,安全可靠,有容灾容错方案,并具扩展性,满足未来业务负载的支撑能力,方便维护,并具有可视化自助服务管理能力。

3、镜像的全生命周期管理

在主镜像库实现镜像的全生命周期的管理,镜像的入库、出库和版本更新都在主镜像库中统一集中管理,并和DevOps整合在一起,进行应用镜像统一的开发和持续运营管理。


每个集群都有一个子库或者几个集群共享一个子库。子库可以设定同步规则,只同步一部分镜像到子库,因此,每个项目可以只同步自己的镜像到自己的集群中,提高集群应用部署的效率,并实现镜像的跨地域、跨IP承载网同步和更新,支持全量同步和增量同步。


在镜像管理中,我们提供对应用镜像进行全生命周期的统一管理,提供镜像模板规划、设计、生成、入库及部署、生成容器应用实例等管理流程。

4、应用灰度发布和流水线部署

用户定义完应用之后,选择匹配的镜像包,启动部署,会显示该用户具有权限的集群和分区的列表,用户可以选择在哪个集群的哪个分区上部署应用,即可实现用户一键式部署应用到多个集群上。


容器云PaaS平台自动化部署模块统一对各数据中心进行服务自动化安装部署。通过多集群统一调度引擎,引入“智能调度”机制,实现应用的多集群统一部署,可以实现:

  • 智能感知不同集群中资源的利用率。
  • 根据算法指定同一应用在不同集群上部署容器数量的比例。
  • 在某一集群故障或割接时,实现应用在集群间的无缝迁移。
  • 在应用升级时,用户可以选择按集群和分区进行灰度发布和滚动升级,保证上线时系统业务不中断。


该方案解决了系统分布在不同地域的跨IP承载网的多个集群、跨多个网络域智能的应用部署和调度。统一调度引擎支持一键式自动化滚动发布。

5、配置分离,才能灵活管理

对于支撑多项目多应用共存的容器云PaaS平台,应用在多集群中的部署必须实现应用和配置分离,才能保证应用的独立性,最大限度的减少对镜像包的重复更新。我们通过对Kubernetes ConfigMap的增强,实现了“非侵入式”的应用配置管理框架和配置的统一管理。可以:

  • 实现配置数据在多集群的统一定义。
  • 用户可以上传任意格式的多个配置文件,绑定成一个配置库。
  • 应用部署时,通过名字选择配置数据即可实现应用和配置的绑定。


该方案既实现了应用镜像和配置数据的分离,又保证了配置的集中管理和灵活更新。否则如果要求应用只是因为配置问题,就修改程序和更新镜像包,那么PaaS平台适应性则太差,无法满足大规模应用的快速部署。

6、从服务视角的综合监控

在多集群多租户模式下,每个租户会关心自己的资源和服务的运行状况,因此容器云PaaS平台通过综合监控管理实现对所有租户、集群、资源、应用的集中数据采集、分析和展示,并能在发生故障时及时获取告警信息,快速进行故障隔离和恢复。


容器云PaaS平台能够提供对集群的综合监控、以主机视图的监控和以服务视图的监控。

  • 集群综合监控:直观展示集群的综合监控信息,包含资源的使用情况、应用服务的资源使用情况、公共服务中间件对资源的占用情况、系统关键事件等信息。
  • 主机视图监控:从设备的角度,采集主机CPU、内存资源占用情况,提供设备资源的实时综合监控和历史性能数据监控,并支持监控信息展示更新的频率。
  • 服务视图监控:从业务的角度,监控每个业务的Docker容器对CPU、内存的关键性能指标,业务对总体资源的占用情况。提供业务服务、容器的综合监控,业务服务所占CPU、内存关键性能的实时综合监控和历史性能数据监控。

7、智能,让运维更简单

容器云PaaS平台管理海量的机器设备,运行海量的应用、容器和微服务,业务变更频繁,运维工作量增大,人力运维和简单的监控工具已远远不足以应对,且在传统的开发模式下,开发人员和运维人员工作流程角色之间存在脱节。针对运维方面的问题,我们从智能运维架构设计和团队组织两方面入手,提高运维效率,提升运维质量,来应对容器云PaaS平台中多租户、多项目集中统一的运维管理工作。


在架构设计方面,我们建立基于机器学习的智能运维框架,通过采集、建模、测量、分析、决策、控制来形成有效闭环不断改进的运维框架体系。提炼实际运维过程中的知识经验,设计自动化运维流程,建立多条自动化机器运维流水线,自动化运维流程。

8、企业基础服务的提供

容器云PaaS平台作为基础技术设施平台,应预置各种常用开源的、稳定的基础类服务,以满足用户应用的快速部署需求。基础类的软件大部分是集群类的软件,容器化难度较高,要满足业务的高可用和高可靠要求,需要做很多的技术改造和性能提升。

  • 提供数据库类基础服务(如MySQL、PostgreSQL、MongoDB等):实现初始化脚本挂载、数据服务高可用和数据备份高可用等功能。
  • 提供共享存储类基础服务(如GlusterFS、Ceph等):实现初始化脚本挂载、数据高可用和支持Volume的定义等功能。
  • 提供缓存类基础服务(如Redis、Memcache等):实现初始化脚本挂载,保证Master应用服务高可用,并能够根据容量需求实现快速水平扩展。
  • 提供消息中间件类基础服务(如Kafka、RabbitMQ、ActiveMQ等):实现初始化脚本挂载,支持高可用,单点故障不会影响服务的正常使用,支持管理工具的集成。
  • 提供统一日志采集和查询类基础服务(如ElasticSearch等):采集系统日志和应用日志,集成到ElasticSearch,进行日志的统一存储和分析,并支持高可用。
  • 提供大数据分析类基础服务(如Spark等),实现海量数据的查询和分析。

9、打造高可用的数据中心

容器云PaaS平台除具有良好的管理能力与水平可扩展能力外,还必须具备可靠的稳定性,应能够提供故障恢复、高可用性、灰度升级、弹性支撑等业务连续性保障措施,关键场景包括:


容器云PaaS平台自动化部署模块统一对各数据中心进行服务自动化安装部署。可以定义同一个服务在不同数据中心的Kubernetes集群统一部署,并且可以定义在每个集群部署服务的容器实例的比例。比如按6:4的比例在集群A和集群B上部署服务。在进行自动化服务升级时,通用的做法是先在一部分集群部署新版本,稳定之后再平滑升级全部的节点,以实现服务不中断的灰度发布与版本升级。


当生产数据中心的应用主机高负载运行产生告警,或业务高峰期当一个数据中心容量不足时,容器云PaaS平台自动进行服务的动态扩展,根据扩展策略(如CPU/内存使用率、交易延时、业务量阈值等指标),自动启动容灾数据中心的部分服务来支撑业务。


容器云PaaS管理平台可以自动实现容灾切换,例如,当生产数据中心发生网络整体故障时,监控模块自动探测网络连通性,由容灾数据中心集群自动接管所有业务服务,故障恢复后,切换到容灾集群的容器服务再根据优先策略进行恢复切回。

相关文章
|
6月前
|
运维 Kubernetes 监控
本地CentOS安装轻量级容器PaaS平台KubeSphere并实现无公网IP远程访问
本地CentOS安装轻量级容器PaaS平台KubeSphere并实现无公网IP远程访问
81 0
|
弹性计算 运维 小程序
云效+ACK 构建容器云 DevOps 平台 最佳实践
最佳实践目前已覆盖23类常用场景,已发布200多篇最佳实践,这其中涉及100款以上阿里云产品的最佳使用场景。目前,最佳实践已成功帮助大量客户实现自助上云。本篇主要讲述容器应用DevOpsforACK集群最佳实践。DevOps的目的是构建一种文化和环境,使构建,测试,发布软件更加快捷,频繁和可靠。而到了容器时代,需要部署的机器不但量更大,变化更剧烈,有的甚至需要根据条件自动升缩,为了满足企业敏捷的需求,持续部署也成了必须,本方案使用云效完成容器应用(小程序后端服务)的自动化构建和持续部署。
云效+ACK 构建容器云 DevOps 平台 最佳实践
|
存储 Kubernetes Cloud Native
容器持久化存储训练营”启动倒计时!3天攻破K8s难点
为解决容器数据持久化存储问题,快速帮助开发者攻克 Kubernetes 技术难题,我们和 ACK CNFS 及 NAS 的开发团队一起准备了一场“硬核”训练营,为大家带来干货满满的直播课程,不仅提供技术难点的深度解读、最佳实践经验和成功案例分享,同时实战环节将带你“沉浸式”上手体验,更有多重惊喜好礼等你来拿!
容器持久化存储训练营”启动倒计时!3天攻破K8s难点
|
存储 运维 Kubernetes
Docker+k8s 容器云建设中 10 个常见难点
以Docker为代表的容器技术,是目前有效的应用交付模式之一;以Kubernetes为代表的容器编排技术,是目前流行的应用部署方案。
|
存储 运维 Kubernetes
k8s与caas--容器云caas平台的落地实践
前言 在移动互联网时代,新的技术需要新技术支持环境、新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化。容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施。
2403 0
|
Kubernetes 云计算 Docker
基于Docker及Kubernetes技术构建容器云(PaaS)平台概述
【编者的话】 目前很多的容器云平台通过Docker及Kubernetes等技术提供应用运行平台,从而实现运维自动化,快速部署应用、弹性伸缩和动态调整应用环境资源,提高研发运营效率。
4496 0
|
6月前
|
Kubernetes SDN 微服务
微服务与 Kubernetes 容器云的边界
【2月更文挑战第30天】该文探讨了微服务与Kubernetes集群的关系,主要关注是否应跨多集群部署。理想的状况是每个微服务对应一个Kubernetes集群,配置和注册中心在同一集群内,以减少网络延迟。
|
Kubernetes Cloud Native 安全
从容器到容器云,什么才是Kubernetes的本质?
从容器到容器云,什么才是Kubernetes的本质?
|
存储 Kubernetes 安全
【容器云架构】了解 Kubernetes 网络模型
【容器云架构】了解 Kubernetes 网络模型
下一篇
无影云桌面