架构图

总体流程

  • 开发代码提交到Gitlab
  • Rahcher设置代码库为Gitlab
  • Rahcher流水线配置编译源码
  • Rahcher流水线Build Docker镜像
  • Rancher流水线Push Docker镜像到私有镜像库Harbor
  • Rancher流水线根据k8s yaml部署文件部署容器

重要步骤 1.添加LDAP认证 全局--安全--认证--编辑--启用OpenLDAP认证 设置仅允许授权的用户和组织,方便账号管理及安全使用

2.添加通知 Local--工具--通知 默认支持Slack、Mail、PagerDuty、Webhook、企业微信、钉钉、Microfoft Teams,这里选择邮件

3.添加日志 Local--工具--日志 有Elasticsearch、Splunk、Kafka、Syslog、Fluentd,这里使用的是Elasticsearch

4.集成Gitlab Local--Defalt--工具--流水线 需要先在Gitlab对应项目账号中新建Application,然后在流水线中配置Gitlab应用,设置好id和secret后验证确认授权

5.配置镜像库凭证 Local--Default--资源--密文--镜像库凭证列表--添加凭证

6.配置流水线 Local--Default--资源--流水线--设置代码库--启用项目--编辑流水线

查看YAML如下

stages:
- name: Build
  steps:
  - runScriptConfig:
      image: core-harbor.minminmsn.com/public/centos-jdk8-maven
      shellScript: bash ./build.sh
- name: Publish
  steps:
  - publishImageConfig:
      dockerfilePath: ./Dockerfile
      buildContext: .
      tag: core-harbor.minminmsn.com/public/${CICD_GIT_REPO_NAME}:${CICD_GIT_COMMIT}
      pushRemote: true
      registry: core-harbor.minminmsn.com
- name: Deploy
  steps:
  - applyYamlConfig:
      path: ./deployment.yaml
notification:
  recipients:
  - recipient: op@minminmsn.com
    notifier: local:n-chlz9
  condition:
  - Success
  

7.运行流水线

部署成功可以发邮件