欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于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技术,但是我们好像不是所有的都做了统一登录.

相关标签: 持续集成 CI