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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Echarts 社区分享

​ 首页先确定你要使用的Echarts版本,因为现在Echarts5以上版本引入地图与之前版本有所不同。但是大多数地图不太容易搞分享一些比较好用的ECharts社区网站。 1、makeapie 网址:makeapie 2、isqqw 网址:echarts图表集 3、PPchart 网址…

【简单讲解下C++max函数的使用】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

自行车在线租赁管理系统

摘 要 新时代是一个快速发展的时代,信息革命正在各个行业蔓延。互联网拉近了 人们的距离,物质生活水平的提高平静地改变了人类消费的观念。人们对自行车 租赁行业的要求越来越高,这对传统的自行车租赁行业来说既是挑战也是机遇。 有必要提高…

《现代通信原理与技术》数字调制与解调(MSK调制)实验报告

摘 要: 本实验旨在研究数字调制中的最小频移键控(MSK)调制技术,并使用MATLAB软件对其进行模拟和实现。首先,我们介绍了MSK调制的原理和特点,以及其在数字通信系统中的应用。然后,我们使用MATLAB…

Linux驱动开发-01配置开发环境

一、配置网络环境 使用桥接网卡时 Ubuntu 就是使用一个真实的网卡 :开发板的网线也连接到这个真实的网卡上,这样 Windows 、 Ubuntu 、开发板就都可以用过这个网卡互通了。 NAT 网卡: Ubuntu 通过它上网,只要 Windows 能上网&…

图说SpringCloudStream消息驱动

SpringCloud Stream消息驱动实现原理 通过定义Binder绑定器作为中间层,实现了应用程序和消息中间件之间实现细节的隔离。通过向应用程序暴露统一的Channel通道,可以让应用程序不再需要考虑各种不同的消息中间件实现的兼容性问题。当需要升级消息中间件&a…

pytest配置文件配置并通过allure生成报告

之前已经学习了使用pytestrequests实现各种方式的调用和一些脚本的执行,今天来学习下如何使用pytest.ini配置文件来管理用例的执行以及如何使用allure生成测试报告。 1.pytest.ini文件配置 在项目目录下新建pytest.ini文件,然后进行配置,pyt…

QT实现多摄像头监控

工具使用方法: 1、在add camera后面输入对应摄像头的IP后,点击add会自动布局显示。 2、在del camera后选择一个对应IP后,点击del会自动删除对应摄像头的显示,且整体布局会自动调整。 工具使用场景: 测试摄像头的好坏。…

mac如何检测硬盘损坏 常用mac硬盘检测坏道工具推荐

mac有时候也出现一些问题,比如硬盘损坏。硬盘损坏会导致数据丢失、系统崩溃、性能下降等严重的后果,所以及时检测和修复硬盘损坏是非常必要的。那么,mac如何检测硬盘损坏呢?有哪些常用的mac硬盘检测坏道工具呢? 一、m…

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

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

ROS学习记录:SLAM软件包Hector_Mapping

前言 了解和尝试使用Hector_Mapping软件包 一、搜索进入ROS Index 二、搜索hector_mapping 三、选择noetic的版本 四、进入Website 五、订阅的话题中,一个是scan话题,就是获取激光雷达数据的话题 六、另一个话题是syscommand话题,主要用来接…

【ai】初识pytorch

初识PyTorch 大神的例子运行: 【ai】openai-quickstart 配置pycharm工程 简单例子初识一下Pytorch 好像直接点击下载比较慢? 大神的代码 在这个例子中,首先定义一个线性模型,该模型有一个输入特征和一个输出特征。然后定义一个损失函数和一个优化器,接着生成一些简单的线性…

如何用优盘加密自己的电脑:人离后自动锁定

看电影的时候,看到有人展示,用优盘加密自己的电脑,人走开的时候拔下优盘,自动上锁。似乎很科幻,其实这样的软件非常多,不论是成品商业用的还是免费的,都非常多,很多版权管理比较强的…

wondershaper 一款限制 linux 服务器网卡级别的带宽工具

文章目录 一、关于奇迹整形器二、文档链接三、源码下载四、限流测试五、常见报错1. /usr/local/sbin/wondershaper: line 145: tc: command not found2. Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist: No URLs.. 一、关于奇迹整形…

HTML/CSS Xiaomi综合案例day 6.13-6.16

ok了家人们今天不做别的,今天浅做一个小米网站,话不多说看看怎么事 一.顶部 我们先看看代码 1,html 2,css代码 1.我们先消除浏览器自带的内外边距,添加一个总背景颜色为浅灰色,设置顶部盒子的大小&#x…

CentOS7的#!bash #!/bin/bash #!/bin/env bash #!/usr/bin/bash #!/usr/bin/env bash

bash脚本开头可写成 #!/bin/bash , #!/bin/env bash , #!/usr/bin/bash , #!/usr/bin/env bash #!/bin/bash , #!/usr/bin/bash#!/bin/env bash , #!/usr/bin/env bash CentOS7的 /bin 是 /usr/bin 的软链接, /sbin 是 /usr/sbin 的软链接, [root3050 ~]# ll /bin lrwxrwxrw…

IntelliJ IDEA 2024.1安装_idea2024.1版本激 活 码分享

一:IDEA官方下载 ①如题,先到IDEA官方下载,简简单单 ②IDEA官方:IntelliJ IDEA – the Leading Java and Kotlin IDE 二:获取脚本 https://www.yuque.com/fengye-cyk1s/dxii3c/orbl5ruhvm7m3s4g 🌟获取完…

C++ | Leetcode C++题解之第162题寻找峰值

题目&#xff1a; 题解&#xff1a; class Solution { public:int findPeakElement(vector<int>& nums) {int n nums.size();// 辅助函数&#xff0c;输入下标 i&#xff0c;返回一个二元组 (0/1, nums[i])// 方便处理 nums[-1] 以及 nums[n] 的边界情况auto get …

理解CA-IS3050G高速CAN收发器的CANH和CANL的电压

CA-IS3050G高速CAN收发器符合ISO 11898-2物理层标准。 1、CANH和CANL的电压之和为5V&#xff0c;下图是CA-IS3050G的高速CAN收发器参数&#xff0c;分析如下&#xff1a; 1&#xff09;、总线输出显性电压 2.75V < VCANH <4.5V&#xff0c;负载为60Ω&#xff0c;CANH…

【Linux】进程_8

文章目录 五、进程10. 进程等待阻塞等待和非阻塞等待 11. 进程程序替换 未完待续 五、进程 10. 进程等待 上一篇我们知道了 wait 和 waitpid 函数都有一个 status 参数&#xff0c;这个参数是什么呢&#xff1f;这个参数其实就是进程的返回结果&#xff0c;当子进程结束的时候…