基于git+drone+harbor+k8s+rancher的持续集成
程序员文章站
2022-04-25 22:10:29
...
在公司培训学习了基于git+drone+harbor+k8s+rancher的持续集成环境的搭建和使用,在这里总结回顾一下
工具介绍:
git:代码仓库
drone:持续集成工具,类似Jenkins
harbor:镜像仓库
k8s:集群部署环境
rancher:k8s管理界面
pipeline持续集成步骤:
本地代码提交到git–》触发git中的钩子(目的是触发drone)–》drone执行项 目中.drone.yml文件,yml文件中配置持续集成步骤eg:去git拉代码->打包成镜像->将镜像推送到harbor仓库中->在k8s中拉起新生成的镜像,这样一个基本的持续集成链就完成了,贴一个配置样例。
clone:
git:
image: plugins/git
tags: true
pipeline:
build:
image: mvn的镜像库地址eg:127.0.0.1:8080/teamci/maven:1.0.1
pull: true
commands:
- mvn clean package
docker_latest:
image: plugins/docker:17.12
registry: harbor的地址eg:127.0.0.1:8081
secrets: [ docker_username, docker_password ]
repo: 生成的镜像要推送的地址eg:127.0.0.1:8082/test/test
tags:
- latest
dockerfile: Dockerfile
when:
branch: master
event: [ push ]
insecure: true
deploy:
image: k8s依赖包eg:127.0.0.1:8083/teamci/drone-k8s-deploy:0.0.13
when:
event: [ push ]
secrets:
- source: K8S_TOKEN
target: K8S_TOKEN
environment:
- K8S_SERVER=k8s服务器地址eg:https://127.0.0.1:8080
- K8S_NAMESPACE=**
- K8S_USER=**
- K8S_CLUSTER_NAME=**
- REPO=要拉起的镜像地址eg:127.0.0.1:8082/test/test
- TAG=${DRONE_TAG}
- CONTAINER=test
- DEPLOYMENTS=test
- DEBUG=true
其中我们可能还涉及一些其他的东西:
1、nfs技术
用于一些持久化数据的挂载,docker技术因为数据不做处理的话是放在容器中的,如果这个容器死掉了,那么你的所有数据就消失了,因此需要将数据保存到服务器上,因此用了nfs技术,将容器中的数据挂载到服务器上。
2、ldap技术
因为这个链中涉及很多工具,因此用了ldap技术,但是我们好像不是所有的都做了统一登录.
推荐阅读
-
iOS使用fastlane实现持续集成的方法教程
-
Springboot 2.0.x 集成基于Centos7的Redis集群安装及配置
-
Jenkins+Docker持续集成的实现
-
基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程
-
ASP.NET Core+Docker+Jenkins实现持续集成的完整实例
-
iOS使用fastlane实现持续集成的方法教程
-
dotnet 部署 github 的 Action 进行持续集成
-
使用Hudson与JsTestDriver实现的Javascript持续集成
-
Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置
-
在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法