基于Kubernetes构建CICD

  • Post author:
  • Post category:其他



实战案例——基于


Kubernetes


构建持续集成


1.1.1


案例目标

(1)了解Jenkins的离线安装步骤。

(2)掌握Gitlab的使用和管理。

(3)了解CICD的配置步骤和方法。


1.1.2


案例分析


1.


规划节点

ZooKeeper集群系统的节点规划,见表1-1-1。

表1-1-1节点规划


IP



主机名



节点

10.24.2.156

master

master节点

10.24.2.157

node

node节点

10.24.2.156

master

harbor节点

10.24.2.156

master

cicd节点


2.


基础准备

登录OpenStack平台,使用提供的CentOS_7.5_x86_64_XD.qcow2镜像创建两台云主机,并使用提供的软件包部署好双节点Kubernetes集群。


1.1.3


案例实施


1.


安装


Jenkins


环境

(1)基础环境准备

查看Kubernetes集群状态和节点信息:



[root@master ~]# kubectl get cs



NAME             STATUS    MESSAGE             ERROR



controller-manager    Healthy     ok



scheduler            Healthy     ok



etcd-0               Healthy   {“health”:”true”}



[root@master ~]# kubectl get nodes



NAME     STATUS   ROLES    AGE     VERSION



master      Ready     master     37m      v1.18.1



node        Ready     <none>   3m59s     v1.18.1

将提供的离线包CICD_Offline.tar上传至master节点/root目录下,解压文件:



# tar -zxvf CICD_Offline.tar -C /opt/

导入镜像:



# cd /opt/



# docker load -i jenkins.tar

(2)安装Jenkins

编写Jenkins编排文件:



[root@master ~]# mkdir jenkins



[root@master ~]# cd jenkins



[root@master jenkins]# vi docker-compose.yaml



version: ‘3.1’



services:



jenkins:



image: ‘jenkins/jenkins:2.262-centos’



volumes:



– /home/jenkins_home:/var/jenkins_home



– /var/run/docker.sock:/var/run/docker.sock



– /usr/bin/docker:/usr/bin/docker



– /usr/bin/kubectl:/usr/local/bin/kubectl



– /root/.kube:/root/.kube



ports:



– “8080:8080”



expose:



– “8080”



– “50000”



privileged: true



user: root



restart: always



container_name: jenkins

启动Jenkins:



[root@master jenkins]# docker-compose -f docker-compose.yaml up -d



Creating network “root_default” with the default driver



Creating jenkins … done



[root@master jenkins]# docker-compose up -d



Creating network “jenkins_default” with the default driver



Creating jenkins … done



[root@master jenkins]# docker-compose ps



Name       Command             State                 Ports



———————————————————————————————————-



jenkins   /sbin/tini — /usr/local/b …      Up      50000/tcp, 0.0.0.0:8080->8080/tcp

安装插件:



[root@master jenkins]# cp -rfv /opt/plugins/* /home/jenkins_home/plugins/



[root@master jenkins]# docker restart jenkins



jenkins

在web端通过http://IP:8080访问Jenkins,如图所示:

查看密码:



[root@master ~]# docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword



54670064056e42a2a47485a5e3356e57

输入密码并点击“继续”,如图所示:

依次点击“系统管理”、“管理用户”按钮进入用户列表界面,如图所示:

点击“新建用户”,输入用户信息,如图所示:

点击“创建用户”如图所示:

退出admin用户登录,使用新创建的用户登录Jenkins。

依次点击 “系统配置”按钮进入系统配置界面,在“Resource root URL”处配置Jenkins URL,如图所示:

完成后点击“保存”。


2.


部署


Gitlab

GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。与Github类似,GitLab能够浏览源代码,管理缺陷和注释,可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库,团队成员可以利用内置的简单聊天程序(Wall)进行交流。Gitlab还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

本项目Gitlab与Harbor共用一台服务器。

(1)启动Gitlab

编写Gitlab编排文件:



版权声明:本文为Pierreze原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。