基于kubernetes构建CI/CD的流程(2)-Docker和Jenkins的安装

5 篇文章 0 订阅

1. 安装Docker

正常的时候我们可以直接使用yum install docker就可以直接安装docker了,但是我之前试过了,安装的docker是20.x的版本,在后面安装kubernetes的时候可能会报错,所以这里我们选择18.x的版本。

device-mapper-persistent-data 是 Linux 下的一个存储驱动, Linux 上的高级存储技术。 Lvm 的作用则是创建逻辑磁盘分区。这里我们使用 CentOS 的 Yum 包管理器安装两个依赖:

yum install -y yum-utils device-mapper-persistent-data lvm2

依赖安装完毕后,我们将阿里云的 Docker 镜像源添加进去。可以加速 Docker 的安装。

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

可以使用一下命令看看自己本地yum源里面对应的docker的版本

yum list docker-ce --showduplicates | sort -r

找到一个我们需要的版本,直接安装docker

yum -y install docker-ce-18.06.0.ce-3.el7

这里可能需要等一会才可以。

安装完毕,我们就可以使用 systemctl 启动来启动 Docker 了。systemctl 是 Linux 的进程管理服务命令,他可以帮助我们启动 docker 

systemctl start docker
systemctl enable docker

接着执行一下 docker -v ,这条命令可以用来查看 Docker 安装的版本信息。当然也可以帮助我们查看 docker 安装状态。如果正常展示版本信息,代表 Docker 已经安装成功。

这样我们的docker就安装好了。

2. 安装Jenkins

Jenkins 是一个基于 Java 语言开发的持续构建工具平台,主要用于持续、自动的构建/测试你的软件和项目。它可以执行你预先设定好的设置和构建脚本,也可以和 Git 代码库做集成,实现自动触发和定时触发构建。

1.安装JDK

在这里,我们选择安装开源的 openjdk 即可。 openjdk 是 SunJDK 一种开源实现。关于openjdk是 SunJDK 的具体区别可以看下面的文章了解下。在这我们直接使用 yum 包管理器安装 openjdk即可。

yum install -y java

安装完成,直接执行java -version,看看我们对应的jdk的版本就可以了,我这里安装的版本是1.8.0_275

2.安装Jenkins

JDK安装完了,咱们继续安装Jenkins,我们还是使用yum来安装Jenkins,由于 Yum 源不自带 Jenkins 的安装源,于是我们需要自己导入一份 Jenkins 安装源进行安装。导入后,使用 Yum 命令安装即可。注意,这里可能没有安装过wget,所以我们可能需要先安装wget,然后在去执行下面的命令。

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

这样我们的Jenkins就安装好了。

3.启动Jenkins

我们直接调用 service jenkins start 启动 Jenkins 即可

service jenkins start
# service jenkins restart restart 重启 Jenkins
# service jenkins restart stop 停止 Jenkins

在启动 Jenkins 后,此时 Jenkins 会开启它的默认端口 8080 。但由于防火墙限制,我们需要手动让防火墙放行 8080 端口才能对外访问到界面。我们在 CentOS 下直接关闭防火墙。

systemctl disable firewalld

直接根据我们自己设置的IP:8080去访问Jenkins,第一次访问的时候是需要我们自己去查询密码的,直接根据提示去找密码

填写完密码之后,可能需要稍微等一下会。然后就到了我们需要选择安装插件的地方了。

这个时候,先不要去安装,因为Jenkins 插件服务器在国外,速度可能会比较忙,所以我们需要把Jenkins插件源更新更我们国内的就好了。

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json

执行完了就可以了,然后我们就直接根据推荐的去安装Jenkins的插件就可以了,这个安装的过程比较长。

4.安装完成

安装完成的时候会出现一个创建第一个管理员用户的页面

我这里还是直接使用的admin的用户,所以我自己把admin的密码给改了。登录完了就可以看到一个欢迎界面了。

5.添加任务

我们点击 Jenkins 首页 -> 左侧导航 -> 新建任务 -> Freestyle project 

新建完毕后,找到 构建 一项,选择 增加构建步骤,选择 执行shell ,输入以下命令:

docker -v
docker pull node:latest

保存之后,我们去构建,看看是不是就可以了。

控制台直接抛出来异常了,我们发现提示无访问权限。这又是什么情况呢?这里就不得不提到 Linux 下的 Unix Socket权限问题了。关于Unix Socket 权限问题,大家可以去百度看看。

sudo groupadd docker          #新增docker用户组
sudo gpasswd -a jenkins docker  #将当前用户添加至docker用户组
newgrp docker                 #更新docker用户组
service jenkins restart      # 重启 Jenkins

直接执行上述的命令就可以了,然后再去Jenkins去构建一次。

这样我们Jenkins就完了。

 

 

第一章介绍docker的前世今生,了 解docker的实现原理,以Django项目为例,教大家如何编写最佳的Dockerfile实现构业务镜像的制作。通过本章的学习,大家会知道docker的概念及基本操作,并学会构建自己的业务镜像,并通过抓包的方式掌握Docker最常用的bridge网络模式的通信。第二章本章学习kubernetes的架构及工作流程,重点介绍如本章学习kubernetes的架构及工作流程,重点介绍如断的滚动更新,通过服务发现来实现集群内部的服务间访问,并通过ingress- -nginx实现外部使用域名访问集群内部的服务。同时介绍基于EFK如何搭建Kubernetes集群的日志收集系统。学完本章,我们的Django demo项目已经可以运行在k8s集群中,同时我们可以使用域名进行服务的访问。第三章本章基于k8s集群部署gitlab、sonarQube、 Jenkins等工具,并把上述工具集成到Jenkins中,以Django项目为例,通过多分支流水线及Jenkinsfle实现项目代码提交到不同的仓库分支,实现自动代码扫描、单元测试、docker容器构建k8s服务的自动部署。第四章由于公司内部项目众多,大量的项目使用同一套流程CICD,那么势必会存在大量的重复代码,因此本章主要通过使用groovy实现Jenkins的sharedL ibrary的开发,以提取项目在CICD实践过程中的公共逻辑,提供一系列的流程的接口供公司内各项目调用,开发完成后,还是以Django的demo项目为例,进行Jenkinsfle的改造,最后仅需通过简单的Jenkinsfle的配置,即可优雅的完成CICD流程的整个过程,此方式已在大型企业内部落地应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值