Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!) (3)

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的任务,如图

jenkins-pipeline-pro

配置构建触发器,将目标分支设置为develop分支,生成一个token,如图

jenkins-pipeline-config1

记下这里的“GitLab webhook URL”及token值,在Gitlab配置中使用。

配置流水线,选择“Pipeline script from SCM”从项目源码中获取pipeline脚本文件,配置项目Git地址,拉取源码凭证等,如图

jenkins-pipeline-config2.png

保存即完成了项目开发环境的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 凭据页面,添加一个用户名密码类型的凭据,如图

jenkins-cred

jenkins-cred2

添加K8s集群的访问凭证,在master节点上将/root/.kube/config文件内容进行base64编码,

base64 /root/.kube/config > kube-config-base64.txt cat kube-config-base64.txt

使用编码后的内容在Jenkins中创建一个Secret text类型的凭据,如图

jenkins-cred3

在Secret文本框中输入base64编码后的内容。

Gitlab配置

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwwjs.html