架构图
总体流程
- 开发代码提交到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.运行流水线
部署成功可以发邮件