Probius+Kubernetes任务系统如虎添翼
Probius是一款自定义任务引擎,可以灵活方便的处理日常运维中的各种任务,我们所有的CI/CD任务都通过Probius来完成的,这篇文章Probius:一个功能强大的自定义任务系统对其有详细的介绍,之前通过Probius更新Kubernetes的Deployment是通过脚本的方式来完成的,脚本大概像这样
if [ $# != 2 ];then
echo "USAGE: $0 PROJ ENVT"
exit 1
fi
PROJ=$1
ENVT=$2
BASE_DIR=/home/data/probius/${PROJ}/${ENVT}
DOCKER_DIR=${BASE_DIR}/docker
IMAGE_NAME=`cat ${BASE_DIR}/cache/image.txt`
cd ${DOCKER_DIR} &&\
export KUBECONFIG=/root/.kube/config &&\
kubectl set image deployment/${ENVT}-${PROJ} ${ENVT}-${PROJ}=${IMAGE_NAME} -n ${ENVT} &&\
exit 0 ||\
exit 1
直接通过kubectl命令来更新,这就需要在Probius服务器上安装kubectl并打通整个集群,这种方式仅是能用但不够优雅,并且对于开发测试环境,在部署完成后有查看日志及登录系统排错的需求,这就需要借助Kubernetes-Dashboard来完成,多个系统相互关联跳转增加了使用成本,同时Dashboard的权限也不好控制,所以我就考虑是否可以让Kubernetes以插件的形式集成进Probius系统,用户在Probius系统内完成部署,同时也可以在Probius系统查看Kubernetes的相关信息甚至通过WebSSH登陆,彻底抛弃掉Kubernetes的Dashboard,看上去很完美,正好最近打算升级下Kubernetes集群版本,于是就趁此机会花了几天时间来实现了
Kubernetes子任务
首先在命令和脚本之外添加了Kubernetes类型的子任务,部署任务只需要关联这个Kubernetes类型的子任务就可以实现Deployment的更新

这个子任务的目的主要是为了替换上边的脚本,通过Kubernetes的Python客户端来实现对Deployment的更新,有了这个子任务我们就不需要在Probius服务器上安装kubectl服务来运行kubectl命令了,整个部署流程能够正常跑通
Kubernetes管理
但在部署之前我们需要先新建相关服务,以一个全新的环境为例,需要先创建Kubernetes的namespace,然后在namespace下创建deployment、service、ingress,我们的namespace是根据环境来划分了,例如dev环境的所有容器都跑在名为dev的namespace下

Namespace创建完成后,可以点击进入查看Namespace下的deployment、service、ingress、configmap

当前还没有具体deployment/service/ingress,接下来就创建,每个项目都会有deployment、service和ingress,并且他们之间是相互关联的,新建项目的同时就把这些服务给一并创建了是个不错的选择,为此写了个KubeProject服务,在这里可以定义项目的名称、环境、镜像、域名、配置以及关联的configmap

选择保存仅会保存填写的表单信息到数据库,选择保存并创建K8S环境就可以在保存表单信息到数据库的同时创建Kubernetes的deployment、service和ingress了,保存并更新Deployment会在Deployment配置有变化的情况下使用,例如新的资源限制或是configmap绑定

当资源创建成功后我们就可以在namespace下看到相应资源了

我们最为关注的deployment信息也可以通过点击deployment的名字或是在KubProject里点击项目的名字进入,进入之后可以查看deployment下的pod列表,通过webssh进入pod内部,也可以查看每个pod的日志,甚至可以对deployment进行scale伸缩或是重建

WebSSH很好用,想要实现的可以看看这篇文章:Django实现WebSSH操作Kubernetes Pod

至此可以摆脱Kubernetes-dashboard了
后记
我们使用Kubernetes有超过4年的时间,借助于Kubernetes不仅提高了资源利用率,更是优化了整个运维的工作流程,受益颇多

留个截图纪念下这战功赫赫的集群吧,虽然你已老去,但是你把我带进了Kubernetes的大门,从此打开了另一个世界
Probius+Kubernetes任务系统如虎添翼的更多相关文章
- Probius+Prometheus通过API集成POD监控
上一篇文章Probius+Kubernetes任务系统如虎添翼讲了我们把Kubernetes集成进了任务系统Probius,上线后小伙伴反馈虽然摆脱了Kubernetes-Dashboard,但还是得 ...
- Probius:一个功能强大的自定义任务系统
断更的这些日子,我又折腾了一个轮子,文末参考源码 大约在一年半以前写过一篇文章『探秘varian:优雅的发布部署程序』,里边有讲到我们采用类似lego的模块化方式来构建CICD的流程,虽能满足我们的需 ...
- 039.[转] 基于 Kubernetes 和 Spring Cloud 的微服务化实践
http://dockone.io/article/2967 基于 Kubernetes 和 Spring Cloud 的微服务化实践 写在前面 网易云容器平台期望能给实施了微服务架构的团队提供完整的 ...
- [笔记]kubernetes 无法启动问题
在启动kubernetes的时候报错误. ERROR: timed out for http://localhost:4001/v2/keys/ 原因是无法启动etcd, etcd 监听4001本地端 ...
- 基于Kubernetes在AWS上部署Kafka时遇到的一些问题
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 交代一下背景:我们的后台系统是一套使用Kafka消息队列的数据处理管线 ...
- 基于Python+Django的Kubernetes集群管理平台
➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...
- Docker中部署Kubernetes
Kubernetes为Google开源的容器管理框架,提供了Docker容器的夸主机.集群管理.容器部署.高可用.弹性伸缩等一系列功能:Kubernetes的设计目标包括使容器集群任意时刻都处于用户期 ...
- kubernetes部署Fluentd+Elasticsearch+kibana 日志收集系统
一.介绍 1. Fluentd 是一个开源收集事件和日志系统,用与各node节点日志数据的收集.处理等等.详细介绍移步-->官方地址:http://fluentd.org/ 2. Elastic ...
- kubernetes 文档
kubernetes 官方文档:http://kubernetes.io/docs/ null
随机推荐
- sqli-labs lesson1-4
写在前面: 前四关基本都是基于GET的SQL注入 在Mysql中有一个系统数据库information_schema,存储着所有数据库的相关信息,一般利用这个数据库进行SQL注入. 因为大部分的注入需 ...
- 当任意文件上传偶遇Safedog
0x01 写在前面 渗透过程中可能会经常遭遇WAF,此时不要轻易放弃,绞尽脑汁竭尽全力,或许弹尽粮绝之时也是柳暗花明之日. 0x02 过狗上传 一次项目渗透过程中,找个一处上传功能 先上传图片,测试上 ...
- FirstGradle
一.导入依赖 二.build.gradle 整合SpringBoot plugins { id 'java' } group 'com.qiang' version '1.0.0-SNAPSHOT' ...
- Aspen.net core 身份认证
- 【转】Linux命令:ps -ef |grep java
转自:https://www.cnblogs.com/feizifeiyu/p/8492550.html 一.ps -ef |grep java 查看包含"java"的所有进程 二 ...
- shiro(二)
public class AuthorizerTest { @Test public void testIsPermitted() { login("classpath:shiro-auth ...
- 使用dom4j工具:读取xml标签(二)
package dom4j_read; import java.io.File; import java.util.List; import org.dom4j.Document; import or ...
- 华为音频编辑服务(Audio Editor Kit),快速构建应用音频编辑能力
音频编辑服务(Audio Editor Kit)是华为为开发者开放的各类场景音频处理能力的集合,汇聚了华为在音乐.语音等相关音频领域的先进技术.音频编辑服务提供基础编辑.伴奏提取.空间渲染.变声降噪等 ...
- LeetCode通关:连刷三十九道二叉树,刷疯了!
分门别类刷算法,坚持,进步! 刷题路线参考:https://github.com/youngyangyang04/leetcode-master 大家好,我是拿输出博客来督促自己刷题的老三,这一节我们 ...
- vue element-ui .el-dialog 限制高度
<style scoped> /deep/ .el-dialog { height: 78vh; overflow: auto; } </style>