微服务CI/CD实践(一)环境准备及虚拟机创建
微服务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解析进行配置。
完成主机配置便可以使用浏览器远程访问ESXi 7.0 UI 。
三、 创建虚拟机
VMware ESXi 提供桌面管理UI 和 ESXi Shell继续虚拟机的维护管理,其中ESXi Shell默认是关闭的,如果有远程连接物理主机的需求,需要在物理主机上进行设置。
ESXi UI 通常是 https://{物理主机的IP}/ui/#/host,使用上一步骤设置的用户名和密码登录后进入ESXi 管理页面,ESXi UI 提供了主机管理、虚拟机管理、存储、网络等功能。
3.1 虚拟机模板镜像上传
直接下载Centos官方镜像速度缓慢,我们使用阿里云国内镜像源进行下载:CentOS-7-x86_64-DVD-2009.iso
下载完成后 点击ESXi UI 功能导航>存储>datastore1>数据存储浏览器>上载 进行模板镜像上传
上载成功后,可以在存储浏览器中查看相关文件信息
3.2 创建虚拟机
虚拟机配置说明参考官方文档
step1 点击左侧菜单导航>虚拟机管理>创建虚拟机>创建新的虚拟机
3.2.1 配置虚拟机基本信息配置
step2 配置虚拟机名称和客户机操作系统,这里选择linux centos7 64位操作系统,进入下一步
step3 选择存储,这里没有创建新的存储,直接下一步
3.2.2 虚拟硬盘配置
step4 自定义设置-cpu配置
我们计划配置一个8个cpu的虚拟机,为了获得最佳性能和资源利用效率,需要考虑以下几个方面:
- 物理 CPU 架构:
- 物理主机有两个 CPU 插槽,每个插槽有 10 个内核,共 20 个物理内核。
- 每个物理内核可能支持超线程技术,这意味着每个物理内核可以模拟两个逻辑处理器,因此总共可能有 40 个逻辑 CPU。
- 虚拟机 CPU 配置:
为了优化性能,应该考虑以下几点:- 分配的 CPU 数量:选择合适的 CPU 数量以匹配虚拟机的应用需求。
- CPU 核心数与线程数:决定每个虚拟 CPU 是否对应一个物理核心,还是多个虚拟 CPU 共享一个物理核心。
- NUMA 结构:考虑虚拟机的 NUMA 结构与物理主机的 NUMA 结构相匹配。
- 最优配置:
核心数:建议将虚拟机的 CPU 核心数设置为 8,这样每个虚拟 CPU 都可以对应到一个物理核心。
NUMA 结构: 如果虚拟机的应用程序能够从 NUMA 优化中受益,可以考虑将虚拟机配置为 NUMA 意识型,比如将虚拟机配置为两个 NUMA 节点,每个节点有 4 个核心。NUMA 结构主旨是提升多核心处理内存性能,降低内存访问延迟、提升内存带宽以及内存资源分配优化,NUMA 架构非常适合数据库服务器和高性能计算集群,因为它可以提供更高的内存带宽和更低的延迟。但是NUMA 结构同样会带来跨节点访问延迟、内存一致性、调度复杂度、编程复杂度、资源竞争等问题。因此,在所安装的应用程序没有明确指名对NUMA进行支撑和优化,建议避免使用跨核心配置。
如下图,是8内核虚拟机的参考配置
step5 自定义设置-存储配置
存储配置根据虚拟机实际情况进行合理配置
step5 自定义设置-驱动配置
选择数据存储ISO文件
选择步骤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地址。
本文服务器规划仅适用于开发环境,对于正式环境应该考虑服务器和应用服务的高可用性。
相关文章:

微服务CI/CD实践(一)环境准备及虚拟机创建
微服务CI/CD实践系列: 微服务CI/CD实践(一)环境准备及虚拟机创建 微服务CI/CD实践(二)gitlabs部署 微服务CI/CD实践(三)nexus3部署 微服务CI/CD实践(四)数据库,redis,n…...
【SpringBoot】优化慢启动应用的用户体验
通过深入分析SpringBoot中WebServer的启动流程,插入自定义的Loading页面展示逻辑,优化软件使用时的用户体验。 背景 Java本身的特点,再加上开发人员能力差,软件开发工程化程度低等等问题,经过一段时间的迭代之后&…...
String str=“i“ 与 String str=new String (“i“) 一样吗?
String str"i" 与 String strnew String ("i") String str"i" 这种形式声明了一个 String 对象,其中 "i" 字符串字面量直接赋值给 str。在 Java 中,字符串字面量会自动放入字符串常量池中,这是一个…...

【数据结构】二叉树链式结构的实现
前置声明:在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二叉树结构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉…...

如何有效找到目标客户群体?
在激烈的市场竞争中,找到并锁定目标客户群体是企业成功的关键。以下是几种有效的策略,帮助您精准定位并吸引目标客户。 1. 明确市场定位与客户画像 首先,企业需要明确市场定位,并绘制详细的客户画像,包括年龄、性别、…...
机器学习-混淆矩阵
文章目录 一、混淆矩阵1.混淆矩阵简介2.混淆矩阵图列 二、混淆矩阵指标1. 准确率(Accuracy)2. 精确率(Precision)3. 召回率(Recall)4. F1分数(F1 Score) 三、总结 一、混淆矩阵 1.混…...

数据结构----栈
一丶概念 只能在一端进行插入和删除操作的线性表(又称为堆栈),进行插入和删除操作的一端称为栈顶,另一端称为栈底 二丶特点 先进后出 FILO first in last out 后进先出 LIFO last in first out 三丶顺序栈 逻辑结构&…...

STL六大组件
STL(Standard Template Library,标准模板库)是C标准库的一部分,提供了丰富且高效的数据结构和算法。STL主要由6大组件构成,分别是容器、算法、迭代器、适配器、仿函数和空间配置器。 容器(Containers&#…...

【机器学习】CNN的数学基础
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 CNN的数学基础1. 引言2. 卷积运算2.1 连续卷积2.2 离散卷积2.3 互相关 3. 激活函…...

最小路径和[中等]
优质博文:IT-BLOG-CN 一、题目 给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[…...
【题库】——数组 小鱼比可爱
#include<bits/stdc.h> using namespace std; int main() {int n,m,i;cin>>n;int arr[n]; for(i0;i<n;i) {int count 0;cin>>arr[i];for(mi;m>0;m--){if(arr[i]>arr[m])count;} cout<<count<<" "; } return 0; }...

基于飞腾平台的Hbase的安装配置
【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适…...

【springboot】springboot接口参数全局解密,解决request内容修改后如何重新设置回去的问题
文章目录 核心思路spring&servelt基础核心接口类核心代码 body解密核心原理讲解get解密核心原理讲解get query请求讲解get pathVariables请求讲解 总结 本文不仅介绍了body内容修改后如何传递,也介绍了get请求 在修改内容后如何继续传递。 【原创作者 csdn: 孟秋…...
yml基本语法
YAML(YAML Ain’t Markup Language)是一种简洁且易读的数据序列化格式,常用于配置文件。Spring Boot 中的 application.yml 文件使用 YAML 来配置应用程序的属性。 YAML 基本语法 1. 键值对 基本的键值对表示形式为:key: value…...

橙色简洁大气体育直播自适应模板赛事直播门户自适应网站源码
源码名称:酷黑简洁大气体育直播自适应模板赛事直播门户网站 源码开发环境:帝国cms 7.5 安装环境:phpmysql 带采集,可以挂着电脑上自动采集发布,无需人工操作! 橙色简洁大气体育直播自适应模板赛事直播门户…...

【启明智显技术分享】工业级HMI芯片Model系列GUI合成到项目中的指南
在工业自动化、智能终端HMI、车载仪表盘等领域,高性能的HMI(人机界面)芯片是不可或缺的核心组件。启明智显推出的Model系列(如Model3C、Model3、Model4)HMI芯片,以其卓越的性能和广泛的应用领域,…...

开源服务器运维工具1Panel
1Panel是杭州飞致云信息科技有限公司推出的一款现代化、开源的Linux服务器运维管理面板。 以下是对1Panel的详细介绍: 一、基本信息 产品名称:1Panel所属公司:杭州飞致云信息科技有限公司编写语言:Golang上线时间:20…...

新版本源2.0大模型发布:Yuan2-2B-July-hf
引言 近日,浪潮信息的新一代基础语言大模型源2.0 迎来了重要更新。浪潮信息正式发布了 Yuan2-2B-July-hf 模型,标志着源2.0系列模型在性能和功能上的进一步提升。这一版本将为开发者和研究人员提供更强大的工具,以满足各种语言处理需求。…...

用python生成GIF动图—用于博客插图或封面等
生成GIF动图🚀 由于目前自己是在做大模型,还有一些树莓派硬件之类的东西,一是大模型的流式输出的例子需要用到GIF,二是做单片机的时候例如一些灯的闪烁和变化需要用到,所以之前也是一直有这个打算所以就记录一下这个生…...

[RCTF2019]draw
下载是一个文本文档,百度AI cs pu lt 90 fd 500 rt 90 pd fd 100 rt 90 repeat 18[fd 5 rt 10] lt 135 fd 50 lt 135 pu bk 100 pd setcolor pick [ red orange yellow green blue violet ] repeat 18[fd 5 rt 10] rt 90 fd 60 rt 90 bk 30 rt 90 fd 60 pu lt 90 f…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
Docker、Wsl 打包迁移环境
电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.2609…...

云原生时代的系统设计:架构转型的战略支点
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、云原生的崛起:技术趋势与现实需求的交汇 随着企业业务的互联网化、全球化、智能化持续加深,传统的 I…...