基于git+drone+harbor+k8s+rancher的持续集成

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

你可能感兴趣的:(基于git+drone+harbor+k8s+rancher的持续集成)