在K8S上建设CI/CD

82 阅读1分钟

架构图

image.png

image.png

原理讲解

原理讲解

部署讲解

部署讲解

构建

自定义镜像

在Jenkins中配置类似如下内容(注意顺序:配置在构建的后面) image.png

构建后操作

通过Jenkins“构建后操作”调用“send build artifacts over SSH”进行部署。部署脚本如下

# 必要的5个参数(按需替换)
horbar_addr=$1
horbar_repo=$2 # horbar目录
project=$3
version=$4
port=$5 # 实际需要两个port,一个宿主机的、一个容器的

# 构造镜像名称
imageName=$horbar_addr/$horbar_repo/$project:$version

# 如果有已经运行的容器,则删除
containerId=`docker ps -a | grep ${project}| awk '{print $1}'`
if [ "$containerId" != "" ] ; then
  docker stop $containerId
  docker rm $containerId
fi

# 如果有已经存在的镜像,则删除
tag=`docker images | grep ${project}| awk '{print s2}'`
if [[ "$tag" =~ "version" ]]; then
  docker rmi $imageName
fi

# 将新镜像拉下来
docker login -u admin -p Harbor12345 $horbar_addr
docker pull $imageName

# 运行新容器
docker run -d -p $port:$port --name $project $imageName
echo "SUCCESS"

使用Jenkins的pipline模式进行构建等操作

pipline操作和K8S部署yaml文件一起放到git上

K8S master中要设置Jenkins无密码登录

可集成的组件

代码质量检测:SonarQube 视频