Docker Build,构建Docker镜像,并推送到镜像仓库,不同环境的镜像通过tag区分,开发环境使用dev.commitId的形式,如dev.88f5822,测试环境使用test.commitId,生产环境可以将webhook事件设置为tag push event,直接使用tag名称
Helm Deploy,使用helm完成新项目的部署,或已有项目的升级,不同环境使用不同的参数配置,如访问域名,K8s集群的访问凭证kube_config等
Jenkins配置 Jenkins任务配置在Jenkins中创建一个pipeline的任务,如图
配置构建触发器,将目标分支设置为develop分支,生成一个token,如图
记下这里的“GitLab webhook URL”及token值,在Gitlab配置中使用。
配置流水线,选择“Pipeline script from SCM”从项目源码中获取pipeline脚本文件,配置项目Git地址,拉取源码凭证等,如图
保存即完成了项目开发环境的Jenkins配置。测试环境只需将对应的分支修改为pre-release即可
Jenkins凭据配置在Jenkinsfile文件中,我们使用到了两个访问凭证——Docker Registry凭证与本地K8s的kube凭证,
DOCKER_REGISTER_CREDS = credentials('aliyun-docker-repo-creds') //docker registry凭证 KUBE_CONFIG_LOCAL = credentials('local-k8s-kube-config') //开发测试环境的kube凭证这两个凭证需要在Jenkins中创建。
添加Docker Registry登录凭证,在Jenkins 凭据页面,添加一个用户名密码类型的凭据,如图
添加K8s集群的访问凭证,在master节点上将/root/.kube/config文件内容进行base64编码,
base64 /root/.kube/config > kube-config-base64.txt cat kube-config-base64.txt使用编码后的内容在Jenkins中创建一个Secret text类型的凭据,如图
在Secret文本框中输入base64编码后的内容。
Gitlab配置