容器云平台后端包含多个子模块,包括核心模块、权限模块、日志模块、制品服务
模块、监控告警模块。
容器云平台依赖k8s和harbor进行服务发布和管理。通过k8s的apiserver的
http接口在k8s集群上创建管理各种工作负载和资源,应用的发布基于kubevela的应用
组件,发布过程中根据容器定义的镜像名称从harbor拉取镜像并创建容器运行服务,应用
发布成功后将在k8s集群上创建pod实例。
prometheus作为监控组件,记录容器运行过程中的资源使用情况,
logpilot+logstash+Elasticsearch作为集群的辅助组件,用于日志采集展示。
容器云平台开发多款自定义控制器组件,包括资源池组件、统一网络组件、故障隔
离组件等等,简化集群操作,提高用户使用效率。
多集群应用部署
基于KubeVela灵活运用Component和Trait的特性,创建Application应用资源。将需要创建的
多集群资源写入Application。通过自研组件stellaris将创建出来的Application拆分成资源列表CRD
和关联关系CRD。在需要分发的下层集群分别创建CRD,通过组件stellaris-proxy来创建多集群资
源,并返回资源状态。多集群应用做到能够一次性的在多个集群上创建资源,以及一次性升级负载
等便捷操作。
平台告警
对采集到的集群、节点、应用以及容器的监控数据,包括资源使用、对象状态、异常现象进行分
析,将达到设定阈值的数据产生告警,对大规模的告警信息进行压缩,利用组件将信息传递到上层
集群,采用轮询的负载均衡策略分发到业务应用,通知给用户。保障数据可靠性,大幅提高了对业
务系统健康状况的把控,为业务故障追踪能力提供保障。
备份还原
基于Velero+Minio的设计方案,实现跨集群间的备份还原。在集群内创建定时或实时备份策略,
将集群应用、配置文件等资源对象备份至Minio存储桶中,包括全量ETCD数据。当集群异常时,备
份恢复可按照命名空间进行恢复、还可按照数据内容进行恢复。若重新拉起新集群,还可进行全量
数据同步恢复,配合F5负载和灾备平台,能快速恢复平台不影响业务,大大提升了平台的容灾能力。