如何使用GitLab Jenkins Kubernetes(k8s)构建DevOps实战的CICD解决方案?

摘要:DevOps实战:使用GitLab+Jenkins+Kubernetes(k8s)建立CICD解决方案。DevOps简介,CICD简介,安装并配置docker参数,使用registry搭建镜像仓库,安装
目录一.系统环境二.前言三.DevOps简介四.CI/CD简介五.安装并配置docker参数六.使用registry搭建镜像仓库七.安装部署gitlab代码仓库7.1 创建gitlab容器7.2 修改gitlab容器配置文件7.3 访问gitlab web界面7.4 创建项目7.5 创建Git版本库八.安装部署CI/CD服务器jenkins8.1 创建jenkins容器8.2 修改Jenkins配置文件8.3 查看jenkins管理员密码并登录8.4 安装Jenkins插件8.5 配置Jenkins连接docker8.6 安全设置8.7 配置Jenkins连接Kubernetes(k8s)集群九.创建jenkins项目十.创建deployment十一.配置gitlab触发jenkins十二.测试DevOps12.1 写代码12.2 上传代码到gitlab12.3 Jenkins执行CI/CD(自动构建自动部署)流程12.4 再试一次12.5 降低用户权限继续测试CI/CD十三.总结 一.系统环境 本文主要基于Kubernetes1.21.9和Linux操作系统CentOS7.4。 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 v1.21.9 x86_64 CI/CD解决方案架构图: CI/CD解决方案架构图描述: 程序员写好代码之后,向gitlab代码仓库提交代码,gitlab检测到变化之后,触发CI/CD服务器Jenkins,CI/CD服务器 Jenkins构建镜像,镜像构建好之后推送到registry镜像仓库,最后使用新的镜像在Kubernetes(k8s)环境部署。 CI/CD解决方案架构:k8scloude1作为Kubernetes(k8s)的master节点,k8scloude2,k8scloude3作为Kubernetes(k8s)的worker节点,由于机器有限,etcd1作为CI/CD服务器,镜像仓库,代码仓库。 服务器 操作系统版本 CPU架构 进程 功能描述 etcd1/192.168.110.133 CentOS Linux release 7.4.1708 (Core) x86_64 docker,jenkins CI/CD服务器 etcd1/192.168.110.133 CentOS Linux release 7.4.1708 (Core) x86_64 registry 镜像仓库 etcd1/192.168.110.133 CentOS Linux release 7.4.1708 (Core) x86_64 gitlab,Git 代码仓库 k8scloude1/192.168.110.130 CentOS Linux release 7.4.1708 (Core) x86_64 docker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calico k8s master节点 k8scloude2/192.168.110.129 CentOS Linux release 7.4.1708 (Core) x86_64 docker,kubelet,kube-proxy,calico k8s worker节点 k8scloude3/192.168.110.128 CentOS Linux release 7.4.1708 (Core) x86_64 docker,kubelet,kube-proxy,calico k8s worker节点 二.前言 DevOps是一种将开发(Development)和运维(Operations)相结合的软件开发方法论。它通过自动化和持续交付的方式,将软件开发、测试和部署等环节紧密集成,以提高效率和产品质量。在本篇博客中,我们将介绍如何使用GitLab、Jenkins和Kubernetes(k8s)来构建一个完整的CI/CD解决方案。
阅读全文