基于Kubernetes构建CICD

实战案例——基于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编排文件:

猜你喜欢

转载自blog.csdn.net/Pierreze/article/details/122030954
今日推荐