k8s业务上线流程

k8s业务上线流程

搭建好k8s集群之后,需要在集群内部运行一些业务程序,并可以访问,这样的集群才有意义。之前只是自己学习如何搭建集群,如何创建资源对象,更多的是在学习和练习层面,并没有实际用处,对k8s实际业务上线流程也不是很了解,所以最近学习了下k8s集群的部署流程,简单整理记录如下。

1.传统部署

整体流程为:

开发人员将写好的代码提交到代码仓库(如Gitlab),运维人员通过CI/CD工具(如Jenkins)将代码拉取下来,并执行相应的命令或脚本进行构建,对于多节点集群来说,还需要使用自动化工具(如Ansible)将代码分发到各个节点,并启动程序,另外还需要配置负载均衡器实现请求转发和负载均衡。

2.k8s部署

 

整体流程为:

开发人员将写好的代码提交到代码仓库(如Gitlab),运维人员通过CI/CD工具(如Jenkins)将代码拉取下来,然后使用新版本代码构建新版本镜像并上传到镜像仓库。如果是新上线的业务,需要基于新镜像创建pod等,如果是系统升级,则直接修改已有pod的镜像版本即可,k8s会自动完成滚动升级。当然还需要创建相应的service和ingress以使我们的业务程序可供外部访问。

3.项目迁移到k8s流程

整体流程为:

首先构建新版本镜像,然后基于新镜像启动相应pod,并使用volume对数据进行持久化存储,然后创建service将应用暴露出去,使用ingress对外发布应用,最后为集群添加日志和监控等系统。

4.Jenkins接入k8s流程

整体流程为:

1.项目开发:开发写好代码并提交到Gitlab仓库中;

2.编写dockerfile:一般研发同事会写好,如果研发不会写,运维也可以帮忙写,通用是这样的,由运维构建一个只有lnmp的镜像,研发在写dockerfile时from指定lnmp的镜像,并添加相应的代码文件和启动命令即可,然后把dockerfile文件上传到Gitlab仓库;

3.配置Jenkins:运维人员搭建并配置Jenkins,添加相应的执行命令或执行脚本,包括代码拉取,镜像构建,程序启动等;

4.构建:开发人员只需要在Jenkins页面上点一下立即构建,就会执行相应命令或脚本来拉取代码,构建镜像,启动程序;

5.镜像上传:构建完docker镜像后可以将镜像上传到私有仓库中;

6.创建pod:一般会在Jenkins远程通过kubectl -s apiserver地址去调用k8s管理命令去创建pod,kube-apiserver会在相应node节点从私有仓库获取镜像并运行容器;

7.暴露应用:如果是全新部署直接使用run命令部署即可,然后用expose开放端口,过滤出svc的端口发个邮件提示上线成功;

8.发布应用:对于实际业务来说,一般需要创建ingress来对外发布应用,并实现七层负载均衡;

即:开发写代码---将代码上传至gitlab---通过Jenkins从gitlab上获取代码并构建镜像---将镜像上传至私有仓库---调用kube-apiserver创建pod---暴露并发布应用---上线。

说明:如果使已有项目升级,只需要修改相应pod的镜像版本即可,k8s会自动完成滚动升级,不会影响业务系统正常运行。

5.分布式服务架构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux运维老纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值