开源组件搭建完整的Kubernetes-Devops平台方案
文章目录
平台六大模块
K8S自动化运维容器平台(Rancher + Kubernetes)
利用Rancher对K8S系统进行统一化部署维护和管理,解决K8S平台使用门槛高的问题。同时利用K8S系统统一管理底层硬件系统,提供容器环境;使得微服务开发者无需关注底层硬件,只需在平台上注册发布应用。同时K8S具有自动维护,自动修复的特性,可以实现高度自动化运维,极大减轻了微服务发布者的运维压力。同时系统支持多种更新方式,利用ServiceMesh网络架构,轻松实现蓝绿发布,滚动发布和灰度发布;帮助位服务开发者轻松实现业务迭代。
CI/CD自动构建自动部署平台(Jenkins + Harbor + Helms)
开发者只需要提交代码到Jenkins上(无状态服务为佳,有状态服务需要额外配置存储资源)。Jenkins自动监控到代码变化,再到Helms(镜像商城)里面提取基础配置文件,通过基础配置文件把环境和代码构建打包成统一镜像上传到测试环境的镜像仓库Harbor里存储。Jenkins会检测到镜像的变化,首先将新镜像推送到测试环境,发邮件提醒测试人员测试。当测试通过后,Jenkins会把镜像挪动到正式环境的Harbor上,并通知K8S部署新的镜像。全流程自动化管理,无需开发人员手动操作,大大提高了开发和部署效率。
监控告警平台(Prometheus+Grafana)
K8S提供统一的API接口给第三方程序提取监控数据,Prometheus系统从API接口中调取运行状态数据,存入自带时序数据库中。Prometheus有完备的监控与告警功能,方便系统运维人员实时监控PAAS平台的运行状态。同时后端可以连接Grafana绘图系统,随时定制Dashboard监控系统上的各类指标。
微服务ServiceMesh平台(Lstio)
微服务平台由于微服务之间复杂的网络连接,通过网络配置文件来实现网络互通非常困难。此时引入的ServiceMesh服务,Istio,用以实现微服务的自动发现,自动组网。开发人员只需要在Istio上配置简单的服务组网信息,Istio就会调用K8S来完成微服务的组网。
共享存储系统(Ceph/GlusterFS)
由于容器内部存储在容器生命周期结束后就会销毁回收,因此需要外挂存储做PV来承载有状态的应用。通过共享存储,将所有服务器上的冗余硬盘绑定成一个大的存储池。将存储池里的存储做成一个个PV绑定给需要存储资源的K8S服务。
日志统一管理系统(EFK)
由于容器在不停的生成和回收,因此程序日志需要统一收集和存储。在这里需要引入日志统一管理系统,在容器端部署Fluentd收集程序产生的日志,然后统一推送到Elasticsearch数据库中,通过Elasticsearch的高效索引机制,可以很方便的查询不同的程序和服务的日志。
参考https://www.hanyunplat.com/show-17-5-1.html