微服务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的虚拟机,为了获得最佳性能和资源利用效率,需要考虑以下几个方面:
- 物理 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地址。
本文服务器规划仅适用于开发环境,对于正式环境应该考虑服务器和应用服务的高可用性。