微服务CI/CD实践(一)环境准备及虚拟机创建

news2025/1/12 3:43:17

微服务CI/CD实践系列:
 
微服务CI/CD实践(一)环境准备及虚拟机创建
微服务CI/CD实践(二)gitlabs部署
微服务CI/CD实践(三)nexus3部署
微服务CI/CD实践(四)数据库,redis,nacos等基础中间件部署
微服务CI/CD实践(五)Jenkins部署
微服务CI/CD实践(六)Server服务器环境初始化
微服务CI/CD实践(七)Jenkins + Dokcer 部署微服务后端项目
微服务CI/CD实践(八)Jenkins + Dokcer 部署微服务前端VUE项目
微服务CI/CD实践(九)Minio服务器部署及应用

文章目录

  • 一、环境准备
  • 二、 配置VMware ESXi
  • 三、 创建虚拟机
    • 3.1 虚拟机模板镜像上传
    • 3.2 创建虚拟机
      • 3.2.1 配置虚拟机基本信息配置
      • 3.2.2 虚拟硬盘配置
      • 3.2.3 虚拟机操作系统初始化
      • 3.2.4 虚拟机网络配置
      • 3.2.5 虚拟机用户名密码配置
      • 3.2.6 使用xshell远程连接检查安装是否成功
  • 四、 服务器规划

文章主旨是在本地环境使用一台物理主机搭建CI/CD环境并部署一套前后端分离微服务项目。微服务项目采用前后端分离,前端主要是VUE架构,后端是Spring Cloud Alibaba 微服务架构。服务部署采用Jenkins + GitLab + Docker的CI/CD体系。基于Docker的CI/CD体系适用于服务节点规模不是特别大(通常是100以内)的场景 ,大规模服务节点部署建议使用k8s + server

一、环境准备

物理主机和虚拟机规划可以根据条件自行调整,操作系统因为对centos最熟悉,所有还是选择最熟悉Centos7作为虚拟服务器的镜像。

  • 物理主机:Lenovo ThinkSystem SR658 20 CPUs x Intel® Xeon® Silver 4210R CPU @ 2.40GHz
  • 虚化软件:ESXi-7.0U3n-21930508-standard (VMware, Inc.)
  • 虚拟镜像: CentOS-7-x86_64-DVD-2009.iso

二、 配置VMware ESXi

创建虚拟机使用 VMware ESXi 进行虚拟机的管理,选择 VMware ESXi是因为购买物理主机已经内置授权的商用 VMware ESXi ,如果没有安装虚化软件可以选择免费开源的KVM虚化软件。
使用外部显示器、键盘、鼠标等外设连接物理主机,开机根据指引初始化 VMware ESXi ,初始化完成重启服务器,进入ESXi 7.0 正式页面
在这里插入图片描述
按【F2】键输入root用户密码进入主机配置模式
首次登录后,建议更改默认密码
主机模式
在主机模式,选择“IPv4 Configuration”对IP进行配置,IP4配置根据实际的局域网情况对IP地址、子网掩码、网关路由、DNS解析进行配置。
network config
完成主机配置便可以使用浏览器远程访问ESXi 7.0 UI 。

三、 创建虚拟机

VMware ESXi 提供桌面管理UI 和 ESXi Shell继续虚拟机的维护管理,其中ESXi Shell默认是关闭的,如果有远程连接物理主机的需求,需要在物理主机上进行设置。
ESXi UI 通常是 https://{物理主机的IP}/ui/#/host,使用上一步骤设置的用户名和密码登录后进入ESXi 管理页面,ESXi UI 提供了主机管理、虚拟机管理、存储、网络等功能。

ESXi UI

3.1 虚拟机模板镜像上传

直接下载Centos官方镜像速度缓慢,我们使用阿里云国内镜像源进行下载:CentOS-7-x86_64-DVD-2009.iso
下载完成后 点击ESXi UI 功能导航>存储>datastore1>数据存储浏览器>上载 进行模板镜像上传
upload1
上载成功后,可以在存储浏览器中查看相关文件信息
iso xinfo

3.2 创建虚拟机

虚拟机配置说明参考官方文档
step1 点击左侧菜单导航>虚拟机管理>创建虚拟机>创建新的虚拟机
虚拟机

3.2.1 配置虚拟机基本信息配置

step2 配置虚拟机名称和客户机操作系统,这里选择linux centos7 64位操作系统,进入下一步
custom config
step3 选择存储,这里没有创建新的存储,直接下一步
store

3.2.2 虚拟硬盘配置

step4 自定义设置-cpu配置
我们计划配置一个8个cpu的虚拟机,为了获得最佳性能和资源利用效率,需要考虑以下几个方面:

  1. 物理 CPU 架构:
    • 物理主机有两个 CPU 插槽,每个插槽有 10 个内核,共 20 个物理内核。
    • 每个物理内核可能支持超线程技术,这意味着每个物理内核可以模拟两个逻辑处理器,因此总共可能有 40 个逻辑 CPU。
  2. 虚拟机 CPU 配置:
    为了优化性能,应该考虑以下几点:
    • 分配的 CPU 数量:选择合适的 CPU 数量以匹配虚拟机的应用需求。
    • CPU 核心数与线程数:决定每个虚拟 CPU 是否对应一个物理核心,还是多个虚拟 CPU 共享一个物理核心。
    • NUMA 结构:考虑虚拟机的 NUMA 结构与物理主机的 NUMA 结构相匹配。
  3. 最优配置:
    核心数:建议将虚拟机的 CPU 核心数设置为 8,这样每个虚拟 CPU 都可以对应到一个物理核心。
    NUMA 结构: 如果虚拟机的应用程序能够从 NUMA 优化中受益,可以考虑将虚拟机配置为 NUMA 意识型,比如将虚拟机配置为两个 NUMA 节点,每个节点有 4 个核心。NUMA 结构主旨是提升多核心处理内存性能,降低内存访问延迟、提升内存带宽以及内存资源分配优化,NUMA 架构非常适合数据库服务器和高性能计算集群,因为它可以提供更高的内存带宽和更低的延迟。但是NUMA 结构同样会带来跨节点访问延迟、内存一致性、调度复杂度、编程复杂度、资源竞争等问题。因此,在所安装的应用程序没有明确指名对NUMA进行支撑和优化,建议避免使用跨核心配置。

如下图,是8内核虚拟机的参考配置
cup config
step5 自定义设置-存储配置
存储配置根据虚拟机实际情况进行合理配置
store config
step5 自定义设置-驱动配置
选择数据存储ISO文件
isoconfig
选择步骤1.2.1 上载的虚拟机模板镜像
在这里插入图片描述
其他配置选择默认,直接进入下一步,点击完成。

3.2.3 虚拟机操作系统初始化

step6 开机->进行虚拟机初始页面,选择Install Centos7
在这里插入图片描述
在这里插入图片描述
step7 等待系统自检完成进入Centos7 Install 引导页面,选择语言>中文>简体中心,继续下一步

在这里插入图片描述
step8 选择软件安装>
在这里插入图片描述
根据需求选择合适的基本环境和选择环境的附加选项,如果没有特殊需求,建议选择基础设施服务器,他模式下会安装网络服务器必备的系统软件。
在这里插入图片描述

3.2.4 虚拟机网络配置

step9 选择网络配置

在这里插入图片描述
进入网络配置页面,配置主机名并点击配置进入网络配置
在这里插入图片描述
在网络配置页面选择IPV4设置->手动设置
在这里插入图片描述
点击add,新增IPV4配置,点击保存完成配置
在这里插入图片描述
返回网络配置页面,点击启用按钮会显示ipv4设置信息,并点击完成
在这里插入图片描述

3.2.5 虚拟机用户名密码配置

完成上述配置后点击完成,进入密码设置页面,配置虚拟机root账户和用户
在这里插入图片描述

step10 配置虚拟机root账户、普通账户
在这里插入图片描述
设置完用户名密码后自动进行软件安装,等待系统完成安装即可
在这里插入图片描述
初始完成后,点击重启
在这里插入图片描述
重启完成,查看虚拟机基本信息
在这里插入图片描述

3.2.6 使用xshell远程连接检查安装是否成功

四、 服务器规划

文章的示例基于spring cloud alibaba 微服务框架, 后端工程基座采用jdk8 + Spring Boot 2.2.9.RELEASE + spring-cloud Hoxton.SR7 + spring-cloud-alibaba 2.2.1.RELEASE + postgresql + redis + minio,前端采用VUE框架。按照上述前后端技术栈完成微服务前后端服务的CI/CD预计需要6台虚拟机。

虚拟服务器具体规划如下:

  • gitlab-server 8C16G 500GB硬盘
  • db-server 8C16G 500GB硬盘 包含postgresql 和 redis
  • jenkins-server 4C8G 200GB硬盘
  • nacos-server/nexus3 4C8G 200GB硬盘
  • minio-server 4C8G 200GB硬盘
  • docker-server 16c 16G 200GB硬盘
    虚拟服务器需要分配固定IP地址。

本文服务器规划仅适用于开发环境,对于正式环境应该考虑服务器和应用服务的高可用性。

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

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

相关文章

天猫商品评论API:获取商品热门评价与最新评价

天猫(Tmall)作为中国最大的B2C电商平台之一,提供了丰富的商品和服务。然而,天猫并没有直接公开一个通用的API来允许第三方开发者直接获取商品的热门评价或最新评价。这主要是出于保护用户隐私、防止恶意抓取和滥用数据等考虑。 不…

SpringIoCDI

前言👀~ 上一章我们介绍了Spring MVC,今天介绍Spring核心功能之一IoC Spring到底是什么? Spring IoC 什么是 IoC 容器? IoC 介绍 DI 介绍 IoC详解 获取Bean对象的其他方式 Bean的存储 方法注解 Bean 扫描路径 DI详解 …

计算机网络——TCP协议与UDP协议详解(下)

一、TCP协议 1.1 TCP协议的报文 TCP全称为 "传输控制协议(Transmission Control Protocol")。人如其名,要对数据的传输进行一个详细的控制。我们先看其报文格式,如下图: TCP报文由以下几个字段组成: 源端口号和目标端口…

【第三版 系统集成项目管理工程师】第13章 监控过程组

持续更新。。。。。。。。。。。。。。。 【第三版】第十三章 监控过程组 13.1控制质量13.1.1主要输入1.项目管理计划-P4992.项目文件-P4993.批准的变更请求-P5004.可交付成果-P5005.工作绩效数据-P500 13.1.2主要工具与技术1.数据收集-P5002.数据分析-P5003.检查-P5014.测试/…

数据结构—— 初识二叉树

1.树概念及结构 1.1树的概念 树是由根和子树构成 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 1. 树有…

安卓设备使用Linux运行Python sklearn进行机器学习. 2024-08-19

0. 测试环境 设备: 国美u7 系统: 安卓7.1(armv8a) 工具软件termux: Termux GitHub linux发行版: archlinux (aarch64) 1. Android手机安装termux (1)下载与安装termux : Releases termux/termux-app GitHub 根据设备处理器和系统框架选择适宜的最新版本. 这里我选择: …

krita安装krita_ai_diffusion插件后没有AI image generation

为krita 安装krita_ai_diffusion插件后却找不到AI image generation, 开始以为是插件安装问题,但发现插件安装是正确的; 既然安装正确,却看不到,应该是设置的问题,折腾了一下,发下是设置-》面板…

如何获取mostly单拷贝和strictly单拷贝基因

参考这篇文章的有意思的分析脚本~ 如何严格定义单拷贝基因的类型,值得思考。 Insights into angiosperm evolution, floral development and chemical biosynthesis from the Aristolochia fimbriata genome https://github.com/yihenghu/Aristolochia_fimbriata_…

数据驱动下的优化渠道管理与决策支持

在当今竞争激烈的市场环境中,渠道管理作为企业连接产品与消费者的重要桥梁,其效率与效果直接关系到企业的市场竞争力和可持续发展能力。随着大数据技术的广泛应用,数据驱动下的优化渠道管理与决策支持正成为企业提升管理效能、精准把握市场脉…

企业网站制作流程,企业网页怎么制作

​企业网站建设,需要对自身的需求进行分析,确定网站的基本功能和定位。这包括确定网站的目标受众、内容类型、功能模块、风格定位等方面。只有明确了需求,才能为后续的网站建设提供指导。 01、网站建设流程 02、网站制作多少钱 一、网站制…

Adobe Audition AU 2023-23.6.6.1 解锁版下载及安装教程(一款优秀的音频处理工具)

前言 Audition是Adobe旗下一款非常好用的音频处理工具,软件为用户们提供了功能强大的音频编辑功能和一个相对完善的工作流程,用户们无论是录制音乐、无线电广播还是视频配音,多音频合成,这款软件都能够给你足够的创作动力。audit…

https://mvnrepository.com cannot access

https://mvnrepository.com 有时候无法访问 1)设置下DNS,看下行不行 WLAN DNS proxy settings (Win 10)-CSDN博客 2)或者直接找个链接试一下 https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans https://mvnrepository.com

一、hal库配置0.96寸oled屏幕+tftlcd屏幕演示

一、硬件iic配置(使用oled演示) 图省事复制即可(注意:从机地址0x78或0x7a) //初始化 void MX_I2C1_Init(void) {hi2c1.Instance I2C1;hi2c1.Init.ClockSpeed 100000;//标准hi2c1.Init.DutyCycle I2C_DUTYCYCLE_2;/…

如何高效应对团队中的低效程序员?

目录 引言:理解“低效”的真正含义 自我反思:领导者的责任 分析问题根源:环境与流程的影响 行动方案:培训与重新评估 总结:领导力的关键在于共赢 其它视角:中国与西方管理文化的对比 作为Leader&…

渠道管理是什么?一文教你优化渠道管理!

在当今竞争激烈的市场环境中,渠道管理已成为企业实现持续增长和市场份额扩张的关键。本文旨在深入探讨渠道管理的定义、重要性、优化策略及面临的挑战,并为企业提供一套全面的渠道管理优化指南,同时植入关于分销推广系统的广告,助…

websocket的介绍及springBoot集成示例

目录 一、什么是Websocket 二、Websocket特点 三、WebSocket与HTTP的区别 四、常见应用场景 五、SpringBoot集成WebSocket 1. 原生注解 2. Spring封装 一、什么是Websocket WebSocket 是一种在单个 TCP 连接上进行 全双工 通信的协议,它可以让客户端和服务器…

Djangorestframework+Vue搭建前后端分离项目

文章目录 1、Django环境搭建2、安装Vue3、安装ant-design插件4、echarts图标插件5、解决跨域问题 1、Django环境搭建 安装anaconda https://www.anaconda.com/download 打开命令行工具,出现base就表示安装成功了,表示当前的虚拟环境名 创建虚拟环境的p…

Isaac Sim仿真平台学习(2)系统架构

目录 0.前言 1.isaac sim的系统架构 1.Design(设计) 2.Tune(调试)和Train(训练) 1.PhysX 2.RTX 3.Sensors 1.感知型扩展传感器 2.物理传型感器 4.Replicator 5.Digital Twins 6.Omnigraph 7.I…

火爆国内外的《黑神话:悟空》,需要什么显卡才能玩?

一路西行,大圣归来! 8月20日,国产游戏《黑神话:悟空》上午10时正式上线。这款游戏在Steam平台的同时在线玩家突破了114万,超越《CS2》登顶Steam热玩榜。 仅单日实际在线人数就超过了210万 ,超过《幻兽帕鲁…

在线问诊平台开发指南:基于互联网医院系统源码的实现路径

今天,小编将详细讲解如何通过互联网医院系统源码开发在线问诊平台。 一、在线问诊平台的需求分析 在线问诊平的核心目标是通过互联网技术,实现患者与医生之间的远程交流与诊断。因此,在开发过程中,首先需要明确平台的核心功能需求…