微服务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](#二、 配置VMware ESXi)
  • [三、 创建虚拟机](#三、 创建虚拟机)
    • [3.1 虚拟机模板镜像上传](#3.1 虚拟机模板镜像上传)
    • [3.2 创建虚拟机](#3.2 创建虚拟机)
      • [3.2.1 配置虚拟机基本信息配置](#3.2.1 配置虚拟机基本信息配置)
      • [3.2.2 虚拟硬盘配置](#3.2.2 虚拟硬盘配置)
      • [3.2.3 虚拟机操作系统初始化](#3.2.3 虚拟机操作系统初始化)
      • [3.2.4 虚拟机网络配置](#3.2.4 虚拟机网络配置)
      • [3.2.5 虚拟机用户名密码配置](#3.2.5 虚拟机用户名密码配置)
      • [3.2.6 使用xshell远程连接检查安装是否成功](#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的虚拟机,为了获得最佳性能和资源利用效率,需要考虑以下几个方面:

  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内核虚拟机的参考配置

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地址。

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

相关推荐
你的秋裤穿反了5 小时前
博图 modbus tcp 通讯实操
服务器·网络·tcp/ip
liulilittle5 小时前
XDP VNP虚拟以太网关(章节:二)
linux·服务器·网络·c++·通信·xdp
m0_612591975 小时前
中小企业服务器托管哪家好?尚航科技综合实力解析
服务器·科技·idc
代码游侠5 小时前
应用——Linux Framebuffer 图形库显示
linux·运维·服务器·数据库·笔记·算法
不断学习加努力5 小时前
在同一局域网下,使用ssh命令进行文件传输
服务器·ssh
网硕互联的小客服5 小时前
windows2025服务器系统如何开启多人远程?
运维·服务器·网络·安全
xingzhemengyou15 小时前
LINUX modprobe 智能加载和卸载内核模块
linux·服务器·前端
gaize12135 小时前
服务器是什么?有什么用途?如何架设服务器?
服务器
xingzhemengyou15 小时前
Linux who指令查询和显示当前登录系统的用户信息
linux·服务器·网络
殷忆枫5 小时前
Ubuntu搭建mosquitto服务器(MQTT服务器)
运维·服务器