文章目录
-
-
- 一、架构设计
- 二、环境准备
-
- 1.安装GitLab
- 2.安装Jenkins
-
- 1)安装方式
- 2)配置
- 3.安装Harbor
- 4.安装k8s
-
- 1)安装方式
- 2)配置
- 三、服务代码结构
- 四、Jenkins持续集成
-
本文介绍一套比较简单的
Devops
体系的搭建流程,以实现软件的开发运维一体化,参照本文可以从零开始把这套体系建起来,文中实践操作为主,理论较少,需了解相关理论的请自行查找资料。 一、架构设计
文章图片
所需工具如下,全部在
CentOS
服务器上自行搭建- 代码管理:GitLab
- 镜像仓库:Harbor
- 容器:Docker
- 编排:Kubernetes
- 持续集成:Jenkins
系统版本 | IP | 节点角色 | CPU | 内存 | Hostname |
---|---|---|---|---|---|
CentOS 7.6 Minimal | 192.168.73.141 | GitLab | 4核 | 8G | gitlab.rkyao.com |
CentOS 7.6 Minimal | 192.168.73.141 | Jenkins | 4核 | 8G | |
CentOS 7.6 Minimal | 192.168.73.135 | Harbor | 2核 | 4G | harbor.rkyao.com |
CentOS 7.6 Minimal | 192.168.73.143 | K8s master、node | 2核 | 4G |
2.安装Jenkins 1)安装方式 参见 Jenkins安装及使用
2)配置 要在
Jenkins
所在机器上进行如下操作安装
Docker
、JDK
、Git
、Maven
需安装并配置好环境变量,Jenkins
会自动读取Docker 20.10.12因需连接自己本地安装的
JDK 1.8.0_131
Git 1.8.3.1
Maven 3.5.4
GitLab
和 Harbor
,所以需要添加对应的host(云服务不需要)vi /etc/hosts
# 添加如下内容
192.168.73.141 gitlab.rkyao.com
192.168.73.135 harbor.rkyao.com
添加
Harbor
的证书文件(云服务不需要)# 创建目录
mkdir -p /etc/docker/certs.d/harbor.rkyao.com/
# 该目录下添加如下三个文件,从安装Harbor的机器上 /etc/docker/certs.d/harbor.rkyao.com 目录下copy过来,参见《Harbor安装配置》3.5 节
ca.crtharbor.rkyao.com.certharbor.rkyao.com.key
配置
k8s master
节点 ssh
免密登录,需要向 master
节点传输脚本ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.73.143
3.安装Harbor 参见 企业级镜像仓库Harbor的部署及使用
4.安装k8s 1)安装方式 参见 Minikube快速安装Kubernetes
2)配置 在
k8s
的 master
节点上进行如下操作创建名为
myhub
的 secret
,设置 docker
镜像仓库的信息,创建一次即可,不需每个服务都创建kubectl create secret docker-registry myhub \
--docker-server=harbor.rkyao.com \
--docker-username=admin \
--docker-password=Harbor12345 \
--docker-email=yao23711@163.com
创建名为
my-config
的configmap
,设置环境变量,创建一次即可,不需每个服务都创建# 删除
kubectl delete configmap my-config
# 创建 设置环境变量 myenv 为 prod, 用于启动服务时选择配置文件
kubectl create configmap my-config --from-literal=myenv=prod
# 查看
kubectl describe configmap my-config
配置
Harbor
的host
vi /etc/hosts
# 添加如下内容
192.168.73.135 harbor.rkyao.com
添加
Harbor
的证书文件(云服务不需要)# 创建目录
mkdir -p /etc/docker/certs.d/harbor.rkyao.com/
# 该目录下添加如下三个文件,从安装Harbor的机器上 /etc/docker/certs.d/harbor.rkyao.com 目录下copy过来,参见《Harbor安装配置》3.5 节
ca.crtharbor.rkyao.com.certharbor.rkyao.com.key
三、服务代码结构
文章图片
其中用于构建的几个脚本
- build.sh:Maven打包、Docker镜像打包、上传Docker仓库
- deploy.sh:Docker镜像部署到k8s
- k8s-deployment.yaml:k8s部署deployment的yaml
- Jenkinsfile:Jenkins流水线脚本
- bootstrap.sh:Java服务启动脚本
- Dockerfile:用于构建Docker镜像
GitHub
,地址如下https://github.com/yaorongke/docker-demo
四、Jenkins持续集成
创建
Pipeline
流水线任务文章图片
添加Git的登录凭据,输入用户名和密码即可
文章图片
添加流水线脚本,脚本包括拉取
git
代码、构建 docker
镜像、上传镜像到 harbor
、部署到 k8s
文章图片
上述步骤完成后,点击
保存
按钮。【devops|GitLab+Jenkins+Harbor+Kubernetes构建Devops体系】点击
Build Now
开始构建文章图片
查看构建日志,显示成功
文章图片
构建完成后到
Harbor
上可以看到镜像已上传文章图片
登录
Kubernetes
管理界面可以看到部署成功文章图片
测试服务是否正常
# 只能内网访问 pod地址+容器port
curl 172.17.63.31:8090/docker-demo/docker/test01?id=1
# 内外网皆可访问 k8s所在服务器地址 + nodePort
curl 192.168.73.143:30001/docker-demo/docker/test01?id=1
推荐阅读
- docker weave网络
- docker存储卷
- Jenkins 系统升级
- 添加docker权限给其他用户使用
- Ubuntu server22.04 ,kubernetes(k8s)1.24.0,congtainerd 1.6.4安装笔记
- 初识DevOps
- vivo大规模 Kubernetes 集群自动化运维实践
- kubernetes下的Nginx加Tomcat三部曲之二(细说开发)
- kubernetes|CC00095.CloudKubernetes——|KuberNetes&二进制升级.V06|——|kubernetes组件|calico.v3.15.3——>v3.19.1|