架构图

总体流程

  • 开发代码提交到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如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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.运行流水线

部署成功可以发邮件