《基于Kubernetes舵手集群的设计与实现》
前言
《基于Kubernetes舵手集群的设计与实现》是我的毕业设计项目。本系统采用Kubernetes容器编排、基于Jenkins\Gitlab的CICD技术、EFK日志收集、Prometheus监控告警、Ceph后端存储和Harbor镜像管理,设计并实现了具有“源码一键部署”、“日志实时收集”、“监控告警展示”、“数据存储分析”和“镜像管理维护”五大模块的舵手集群系统。
拓扑图
总体架构图

日志收集架构图

原理
部署方案

(1) Kubernetes集群采用三主三从模式,从架构规划上防止单点故障,保证集群高可用性;
(2) 由bs-k8s-ceph-209、bs-k8s-gitlab-208、bs-k8s-harbor-207三节点组成后端分布式存储Ceph集群;
(3) Gitlab源码管理仓库是供开发工程师使用,独立于Kubernetes集群之外,既减轻了Kubernetes集群的负担又权限分明便于维护管理。
部署原理
(1) 开发工程师将项目源码合并到Master分支并推送到Gitlab源码管理仓库服务器;
(2) Gitlab Webhook感知到Master分支发生改动后触发Jenkins持续集成Pod在Kubernetes集群中临时启一个Jenkins-slave Pod,进行项目源码拉取、编译、测试、构建Docker镜像、并推送镜像到私有仓库Harbor;
(3) Jenkins通过Kubernetes deployment插件在Kubernetes集群中拉取推送到Harbor镜像仓库中的应用镜像制做成应用Pod,此时已经完成一键部署源码到Kubernetes集群;
(4) Traefik代理容器编排集群中的应用服务,将应用服务暴漏到公网供用户访问;
(5) EFK日志收集集群的Kibana界面可以展示采集到的已经发布的应用服务的日志信息,供运维工程师和开发工程师分析;
(6) Prometheus监控告警集群的Grafana展示界面可以实时刷新整个容器编集群和应用服务的运行状态,并将越限行为进行邮件告警发送给运维工程师;
(7) 舵手集群内所有有状态类应用程序的数据都存储在分布式存储集群Ceph中。
后续
《基于Kubernetes的舵手集群系统》是由我借鉴互联网现有拓扑架构图而独立设计并完成的项目,代表了我大学期间的最高水平,设计到了运维、开发、容器三个方面。但此项目并不完善如:缺乏微服务、Go项目不优秀等,还需要进行改动升级。此项目的监控部分、日志收集部分、数据存储部分依然存在不深入的问题,我会持续的进行优化下去。
大学不是终点,人生正式起步。道阻且长,我对自己有要求:今年的目标是完成容器生态圈之旅-第三章《容器编排工具Kubernetes》、容器生态圈之旅-第四章《自动化部署CICD》、容器生态圈之旅-第五章《日志收集EFK》、容器生态圈之旅-第五章《监控告警Prometheus》、容器生态圈之旅-第六章《监控告警Prometheus》、容器生态圈之旅-第七章《数据存储Ceph》。对于Mysql、Redis、Zookeeper、Kafka的掌握也是今年的要求,对了还有Go语言的深入学习(这块要求不高,今年还是围绕web深入,务必拿出原创项目)。
今年的任务很简单全面提升自我,钱不是今年的目标。人生的路很长,IT的路不会太长,我渴望站在巨人(前辈)的肩膀上成为新的巨人(前辈)。我要求自己明年的时候IT江湖有我名,紫色代表高贵,飞猪代表不屈服。我就是紫色飞猪,站在巨人的肩膀上成为新的巨人。
下半年必须在工作的同时全面提示自我!
《基于Kubernetes舵手集群的设计与实现》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- how to remove git commit history
how to remove git commit history 如何删除 GitHub 仓库的历史数据 git filter-branch remove GitHub git commit hist ...
- 12月17日BGV币行情分析
目前BGV收于353.95美金,较前一交易日上涨28.25%. 非小号数据显示,BGV最大客户aofexpay.ngk出现+490.2349的持币变化,其次减仓数额均不大,分别为-80.1,-30,- ...
- Anno&Viper -分布式锁服务端怎么实现
1.Anno简介 Anno是一个微服务框架引擎.入门简单.安全.稳定.高可用.全平台可监控.依赖第三方框架少.底层通讯RPC(Remote Procedure Call)采用稳定可靠经过无数成功项目验 ...
- 微信小程序:解决小程序中有些格式如webpiPhone手机暂不支持的问题
问题:小程序中有些格式是iPhone手机暂不支持的,如goods_introduce中的webp格式,在小程序的模拟器中是可以正常显示webp格式的,但是一旦你做真机调试,很可能某些iPhone手机是 ...
- Dyno-queues 分布式延迟队列 之 辅助功能
Dyno-queues 分布式延迟队列 之 辅助功能 目录 Dyno-queues 分布式延迟队列 之 辅助功能 0x00 摘要 0x01 前文回顾 0x2 Ack机制 2.1 加入Un-ack集合 ...
- 基于vue3+electron11实现QQ登录切换|自定义导航栏|托盘|打包
上一篇有给大家分享过使用vue3和electron快速搭建项目.创建多窗口/父子modal窗口的一些方法.今天继续给大家分享一些vue3.x+electron11项目开发中的一些知识点/踩坑记录,希望 ...
- 设置ViewPager 自动滑动时间,速度 方便展示动画
ViewPager.setCurrentItem(position),即使已设置动画,但是没有动画效果 原因:因为ViewPager滑动之前的时间间隔太短,可以通过反射,去修改ViewPager自动滑 ...
- hive中更改表impala中不能生效
hive中的更新或者新建表impala 不能实时更新 Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的meta ...
- iOS 14.5 有啥新功能?Apple Watch 也能解锁 iPhone 了
转: iOS 14.5 有啥新功能?Apple Watch 也能解锁 iPhone 了 苹果今天发布了即将发布的 iOS 14.5 和 iPadOS 14.5 更新的第一个 Beta 版本,我们在其中 ...
- 常用linux命令,开发必备-速收藏
在前面我们介绍了通过VirtualBox安装Linux的方法,参考: 一网打尽,一文讲通虚拟机VirtualBox及Linux使用 本文我们将介绍在使用linux的过程中常用的一些Linux命令,掌握 ...