CD(二)
DevOps八卦大阵
1. 整体流程
像较于前面用例,本次搭建CD的架构更为完善,更为详细
- 由于本次使用java编写代码,新增了maven及nexus仓库
- 使用K8s部署服务
有些模块可能在现实中用的不多或者并不使用,但是为了整体链路的完整,也一并进行部署。另外,由于本文以梳理流程为目的,所以流程中有大量软件使用docker部署,确实省时省力,但是生产环境中还需要斟酌。
本次用java部署web服务
2. 环境准备
服务器规划
linux服务器操作系统均为CentOS 7.9
[root@node-132 home]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
主机名 | IP 地址 | 所需组件 |
---|---|---|
node-128 | 192.168.17.128 | docker,kubectl,kubeadm,containerd,keepalived,haproxy |
node-129 | 192.168.17.129 | docker,kubectl,kubeadm,containerd,keepalived,haproxy |
node-130 | 192.168.17.130 | docker,kublet, kube-proxy,containerd |
node-131 | 192.168.17.131 | docker,kublet, kube-proxy,containerd |
node-132 | 192.168.17.132 | docker,gitlab-ce,jenkins,nexus,java11 |
node-133 | 192.168.17.133 | docker,maven,java11 |
node-134 | 192.168.17.133 | docker,harbor |
windows服务器操作系统为Windows 11
主机名 | IP 地址 | 所需组件 |
---|---|---|
node-157 | 192.168.2.157 | java,IntelliJ IDEA |
1. jenkins安装
由于笔者jenkins安装的版本较高(Jenkins 2.401.2),所以要求java版本至少是11或以上的,笔者这里重新装java
注意:这里不光是安装jenkins的服务器需要较高版本的java,节点机也需要较高版本,否则无法连接节点
参考 CHAPTER 1 Jenkins部署与基础配置 1.1.2 红帽系安装
注意:
需要安装jenkins插件
http Request
,Nexus Artifact Uploader
和Pipeline Utility Steps
,后面有用
2. 编译安装git
参考 gitlab/gerrit 2.1 环境准备
3. docker安装
参考 CHAPTER 1 Docker入门 1.3.1 yum安装
4. docker-compose安装
参考 CHAPTER 12 Compose(一)12.2.2 二进制包
5. sonarqube安装
参考 CHAPTER 5 Jenkins & SonarQube
账号:admin
密码:yurq
6. harbor安装
6bDg3XQ81Y3NDWJhtIVacMDyqeNzj3oO
7. gitlab私服
参考 CHAPTER 3 Jenkins SVN GItlab 3.2.1 搭建gitlab服务器(使用官方镜像搭建)
8. maven安装
参考 Maven
9. Nexus部署
10. K8s部署
https://www.cnblogs.com/Luquan/p/12273595.html
3. 安装java及编写代码
本节在Windows服务器执行,由于笔者不是java开发工程师,所以代码是借的。折腾了挺长时间终于把本地的服务搞定了
3.1 安装java
官网下载java安装包 Java Downloads | Oracle
jdk-11.0.19_windows-x64_bin.exe
配置环境变量
变量名:path,变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
变量名:JAVA_HOME,路径:JDK的安装目录,本机为:C:\Program Files\Java\jdk-11
变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
3.2 安装IntelliJ IDEA
3.3 安装tomcat
3.4 安装maven
参考 Maven
3.5 code
配置完成后,代码部分请跳至本文的
3.7 code更新
,由于maven项目笔者打包完成后,war包无法启动(具体原因不明),所以笔者更换了代码
- 首先利用maven创建webapp,注意一定选择maven-archetype-webapp
- 将工程命名为MyJava,等工程创建好后,创建源码目录,默认是没有的,一般放在main下面,目录名叫java
- 在java目录中添加MyServlet.java代码
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class MyServlet extends HttpServlet {
protected void doPods(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException,java.io.IOException{
//request.getRequestDispatcher("/index.jsp").forward(request,response);
response.setContentType("text/html");
response.getWriter().println("my first servlet code"