GitLab+Jenkins+Harbor+Kubernetes构建Devops体系

GitLab+Jenkins+Harbor+Kubernetes构建Devops体系,第1张

文章目录
      • 一、架构设计
      • 二、环境准备
        • 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 Minimal192.168.73.141GitLab4核8Ggitlab.rkyao.com
CentOS 7.6 Minimal192.168.73.141Jenkins4核8G
CentOS 7.6 Minimal192.168.73.135Harbor2核4Gharbor.rkyao.com
CentOS 7.6 Minimal192.168.73.143K8s master、node2核4G
1.安装GitLab

参见 GitLab安装配置教程-Docker方式安装

2.安装Jenkins 1)安装方式

参见 Jenkins安装及使用

2)配置

要在 Jenkins 所在机器上进行如下 *** 作

安装Docker JDKGitMaven需安装并配置好环境变量,Jenkins 会自动读取

Docker 20.10.12

JDK 1.8.0_131

Git 1.8.3.1

Maven 3.5.4

因需连接自己本地安装的 GitLabHarbor,所以需要添加对应的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.crt  harbor.rkyao.com.cert  harbor.rkyao.com.key

配置 k8s master 节点 ssh免密登录,需要向 master 节点传输脚本

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
3.安装Harbor

参见 企业级镜像仓库Harbor的部署及使用

4.安装k8s 1)安装方式

参见 Minikube快速安装Kubernetes

2)配置

k8smaster 节点上进行如下 *** 作

创建名为 myhubsecret,设置 docker 镜像仓库的信息,创建一次即可,不需每个服务都创建

kubectl create secret docker-registry myhub \
  --docker-server=harbor.rkyao.com \
  --docker-username=admin \
  --docker-password=Harbor12345 \
  --docker-email=[email protected]

创建名为 my-configconfigmap,设置环境变量,创建一次即可,不需每个服务都创建

# 删除
kubectl delete configmap my-config
# 创建 设置环境变量 myenv 为 prod, 用于启动服务时选择配置文件
kubectl create configmap my-config --from-literal=myenv=prod
# 查看
kubectl describe configmap my-config

配置Harborhost

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.crt  harbor.rkyao.com.cert  harbor.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

上述步骤完成后,点击 保存 按钮。

点击 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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/800226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存