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.分布式服务架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TWM论文阅读笔记

这是ICLR2023的一篇world model论文,用transformer来做世界模型的sequence prediction。文章贡献是transformer-based world model(不同于以往的如transdreamer的world model,本文的transformer-based world model在inference 的时候可以丢掉…

redis持久化方式—AOF

redis为什么需要持久化 redis是内存数据库,redis所有的数据都保存在内存中 如果此时pc关机或重启,那么内存中的用户数据岂不是丢失了?redis这么不安全吗? 作为数据库,保证数据的安全,持久是基本需求&…

java基础-IDEA环境基础用法自动导包等设置

IDEA: 是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。 把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。 IDEA项目结构: 多级包用 . 链接。 快速生成 快…

STM32的通用定时器中断编程

如果遇到需要单片机产生严格时序的场景(比如DAC输出特定模拟信号,GPIO口控制模拟开关),延时函数可能就无法胜任了。最近在工作时公司上级教会了我使用“门票”思维(中断标志位)编写单片机裸机程序,今天写一…

论文学习_Large Language Models Based Fuzzing Techniques: A Survey

论文名称发表时间发表期刊期刊等级研究单位 Large Language Models Based Fuzzing Techniques: A Survey 2024年arXiv- 悉尼大学 0.摘要 研究背景在软件发挥举足轻重作用的现代社会,软件安全和漏洞分析对软件开发至关重要,模糊测试作为一种高效的软件…

前端学习-day10

文章目录 01-体验平面转换02-平移效果03-绝对定位元素居中04-案例-双开门06-转换旋转中心点07-案例-时钟-转换原点08-平面转换-多重转换09-缩放效果10-案例-按钮缩放11-倾斜效果12-渐变-线性13-案例-产品展示14-渐变-径向15-综合案例-喜马拉雅 01-体验平面转换 <!DOCTYPE h…

C#(C Sharp)学习笔记_多态【十九】

前言 个人觉得多态在面向对象编程中还比较重要的&#xff0c;而且不容易理解。也是学了一个下午&#xff0c;才把笔记写得相对比较完善&#xff0c;但仍欠缺一些内容。慢慢来吧…… 什么是多态&#xff1f; 基本概念 在编程语言和类型论中&#xff0c;多态&#xff08;Poly…

C# + easyui 写的一个web项目

用C# easyui 来开发&#xff0c;其实就是为了开发速度&#xff0c;用easyui可以一天写很多页面&#xff0c;比一些低代码平台还快。 登陆页面 主界面 记录数统计 家庭信息采集表 新建家庭 家庭成员 低保、五保人员帮扶情况登记表 低保、五保人员帮扶情况登记表的新增和编辑 治…

(done) AFL 都有哪些阶段? Stage progress

参考资料&#xff1a;https://afl-1.readthedocs.io/en/latest/user_guide.html 所有阶段如下&#xff0c;包括详细的解释

论文《Dual-Contrastive for Federated Social Recommendation》阅读

论文《Dual-Contrastive for Federated Social Recommendation》阅读 论文概况MotivationMethodologyClient Local ComputingCenter Server Aggregation 总结 今天简单总结一下一篇关于联邦推荐方面的论文《Dual-Contrastive for Federated Social Recommendation》&#xff0c…

Java | Leetcode Java题解之第162题寻找峰值

题目&#xff1a; 题解&#xff1a; class Solution {public int findPeakElement(int[] nums) {int n nums.length;int left 0, right n - 1, ans -1;while (left < right) {int mid (left right) / 2;if (compare(nums, mid - 1, mid) < 0 && compare(n…

【Linux 内存管理】

文章目录 1. 为什么要有虚拟内存呢&#xff1f;&#x1f50d; 1. 为什么要有虚拟内存呢&#xff1f;&#x1f50d;

如何实现element表格合并行?

前两天我一个朋友咨询我element表格合并行的问题,他研究了很久,已经开始怀疑是不是element UI出现了bug,然后跟我一阵沟通,最终解决了问题,他的问题在于他把事情想复杂了,接下来我们一起来看一下这个经典“案例”,很多人真的很有可能走入这个误区,当然老鸟就不用看了,…

读AI新生:破解人机共存密码笔记04计算的极限

1. 计算的极限 1.1. 光靠速度是无法给我们带来人工智能的 1.1.1. 在速度更快的计算机上运行糟糕的算法并不会使算法变得更优秀&#xff0c;这只意味着你会更快地得到错误的答案 1.1.2. 数据越多&#xff0c;错误答案出现的机会就越大 1.…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 石碑文字组合(200分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

[C++][数据结构][哈希表]详细讲解

目录 1.哈希概念2.哈希冲突3.哈希函数4.哈希冲突解决5.闭散列1.何时扩容&#xff1f;如何扩容&#xff1f;2.线性探测3.二次探测 6.开散列(哈希桶)1.概念2.开散列增容3.开散列思考只能存储key为整形的元素&#xff0c;其他类型怎么解决&#xff1f;除留余数法&#xff0c;最好模…

一季度直播6000场,同比增长60%,遥望科技透露重要信息

6月17日&#xff0c;经由深圳证券交易所许可&#xff0c;遥望科技&#xff08;股票代码&#xff1a;002291&#xff09;正式对《年报问询函》进行公开回复&#xff0c;就经营的多个维度做出解释和回应。 在回复中&#xff0c;遥望科技预测2024年毛利率为14.4%&#xff0c;相比…

【CSS in Depth2精译】1.1.1 样式表来源

您添加到网页的样式表并非浏览器呈现样式的唯一来源。样式表有三种不同的类型或来源。您添加到页面的样式称为 作者样式&#xff08;author styles&#xff09;&#xff1b;此外还有 用户样式&#xff08;user styles&#xff09;&#xff0c;即终端用户设置的自定义样式&#…

configure: error: library ‘crypto‘ is required for OpenSSL

1、执行命令&#xff1a;./configure --prefix/opt/app/postgresql --with-openssl 报错&#xff1a; 2、解决办法 执行命令&#xff1a;yum install openssl-devel 重新执行 ./configure --prefix/opt/app/postgresql --with-openssl

充电学习—3、Uevent机制和其在android层的实现

sysfs 是 Linux userspace 和 kernel 进行交互的一个媒介。通过 sysfs&#xff0c;userspace 可以主动去读写 kernel 的一些数据&#xff0c;同样的&#xff0c; kernel 也可以主动将一些“变化”告知给 userspace。也就是说&#xff0c;通过sysfs&#xff0c;userspace 和 ker…