Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

这篇具有很好参考价值的文章主要介绍了Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rancher + Jenkins k8s集群 CI/CD全流程最佳实践

CI方面,官方推荐的视频教程等多是使用极狐Gitlab CI,但社区版极狐每月仅400分钟构造时间,额外购买价格为1000分钟/68元,而私有化部署极狐Gitlab对比部署使用Jenkins,具有更高的成本、更狭窄的适用面,且如果个人使用其代码仓库功能,并不比Gitee可靠。

Gitee 同样提供CI服务,但相比极狐Gitlab更加抠门,只对新用户提供200分钟的构建时长。

CD方面,官方推荐使用内置的Fleet,但其模型和文档比较晦涩,而直接使用Jenkins脚本调取Rancher Server的API更为方便,故采取的解决方案为后者。

基于以下流程的结果,相信你将不难实现一个初步的Git Ops工作流。

需要:

  • Jenkins(仅测试过非docker部署版本)
  • Rancher2.7.3、非local的自定义RKE(k8s)集群
  • 阿里云私有镜像仓库(服务器与仓库在同一地域时可以用内网连接,即vpc.cn-前缀的链接)

Jenkins

  • 安装Jenkins
  • 安装jdk
  • 安装maven
  • 将jenkins加入系统docker权限组

新建任务

Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

流水线一般配置项:

Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

Gitee仓库设置

Gitee WebHook 密码

点击生成,复制字串到仓库管理,并设置如下:

Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

流水线脚本

pipeline {
    agent any

    tools {
        // Install the Maven version configured as "M3" and add it to the path.
        maven "maven3.8.4"
    }

    stages {
        stage('git update') {
            steps {
                // 需要提前在Jenkins->manage credentials建立名称为gitee-copytool的凭据
                git credentialsId: 'gitee-copytool', url: 'https://gitee.com/XXXXXXX/xxxxxxxx.git'
            }
        }

        stage('maven install') {
            steps {
                sh 'mvn clean install'
            }
        }

        stage('Docker Build') {
            steps {
                sh 'docker build -t registry-vpc.cn-xxxxxxx.aliyuncs.com/xxxxxx/xxxxxxx_repo:xxxxxx-backend-vX.1.0 .'
            }
        }
        
        stage('Docker Push') {
            steps {
                // 需要提前在Jenkins->manage credentials建立名称为aliyun-image-repo的凭据
                withCredentials([usernamePassword(credentialsId: 'aliyun-image-repo', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
                    sh "docker login --username $USERNAME --password $PASSWORD registry-vpc.cn-xxxxxxx.aliyuncs.com"
                    sh "docker push registry-vpc.cn-xxxxxxx.aliyuncs.com/xxxxxxx/repo_xxxxxxx:xxxxxxxx-backend-vX.1.0"
                }
            }
        }
        
        stage('Rancher Deploy') {
            steps {
                sh '''curl -u "token-gxxxxq:kxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc" \\
                    -X POST \\
                    -H \'Accept: application/json\' \\
                    -H \'Content-Type: application/json\' \\
                    \'https://xxx.xxx.xx/v3/project/c-862b2:p-xfnmp/workloads/deployment:default:xxxxxxxx?action=redeploy\''''
            }
        }
    }
}

其中:

Jenkins - maven

maven “maven3.8.4”

与Jenkins设置保持一致
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
另外jdk设置如下Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
其余保持默认

Rancher API

权限获取

Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

token-g9gdq:klk8dnzc47rwmqz4hl89xvf2hhp75vcp45m7hwcgnqk876nk5ptrtc

API地址

查找最终结果地址:

https://xxx.xxxx.xx/v3/project/c-862b2:p-xfnmp/workloads/deployment:default:xxxxx?action=redeploy

curl指令:

curl -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" \ # 替换为权限获取到的key,即:token-gxxxq:kxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
'https://xxx.xxxx.xx/v3/project/c-862b2:p-xfnmp/workloads/deployment:default:xxxxxxx?action=redeploy'

通过Jenkins pipeline脚本生成器生成
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

API查找过程

Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

即为查找的API地址和curl命令,贴入权限的key-value即可。Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践
Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践文章来源地址https://www.toymoban.com/news/detail-445662.html

到了这里,关于Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实现基于 GitLab 的数据库 CI/CD 最佳实践

    数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA(DevOps Research Assessment)是一家专注于 DevOps 的研究机构, 在该领域以专业与客

    2024年02月07日
    浏览(97)
  • Jenkins CI/CD 持续集成专题三 Jenkins 使用shell脚本打包组件配置流程

    第六步 查看编译状态和产物 到这里,jenkins 配置shell脚本打包组件的完整配置流程就已经完成

    2024年04月29日
    浏览(59)
  • 持续集成与持续交付(CI/CD):探讨在云计算中实现快速软件交付的最佳实践

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云计算 ✨文章内容:软件交付 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 持续集成(Continuous Integration,CI)和持续交付(Continuous D

    2024年02月10日
    浏览(62)
  • 【CI/CD】Rancher CD过程--20230906

    HARBOR_PASSWORD:密码 HARBOR_USER:工号 K8S_TOKEN:Bearer + rancher key K8S_WORKLOAD_URL:选择【View in API】的URL,并非workload的URL。 如果是新版rancher,则使用/g回去旧版界面。 选择workload,进入【View in API】 right panel click edit Move to buttom , and click “Show Request” Copy the highlight area from “-d”

    2024年02月09日
    浏览(43)
  • 【CI/CD】Rancher & K8s

    Rancher 和 K8s 的关系是什么?K8s 全称为 Kubernetes,它是一个开源的,用于管理云平台中多个主机上的容器化的应用。而 Rancher 是一个完全开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数

    2024年02月13日
    浏览(34)
  • Jenkins CI/CD

    1、 Jenkins CI/CD 流程图 说明:这张图稍微更形象一点,上线之前先把代码git到版本仓库,然后通过Jenkins 如Java项目通过maven去构建,这是在非容器之前,典型的自动化的一个版本上线流程。那它有哪些问题呢? 如:它的测试环境,预生产环境,测试环境。会存在一定的兼容性

    2024年02月05日
    浏览(47)
  • Jenkins与CI/CD

    Continuous  Integration是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。 Continuous Delivery一种软件

    2024年02月12日
    浏览(43)
  • 基于Jenkins实现的CI/CD方案

    最近基于Jenkins的基座,搭建了一套适用于我们项目小组的持续集成环境。现在把流程整理分享出来,希望可以给大家提供一些帮助和思路。 组件名称 组件版本 作用 Harbor 2.7.3 镜像仓库 Jenkins 2.319.2 持续集成工具 Pipeline 2.6 Jenkins插件,编排流水线脚本 SSH Pipeline Steps 2.0.0 Jenki

    2024年02月22日
    浏览(45)
  • CI/CD持续集成持续发布(jenkins)

            在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试; 或者前后端分离后,经常会修改接口,然后重新部署; 这些情况都会涉及到频繁的打包部署; 手动打包常规步

    2024年02月14日
    浏览(68)
  • 基于 Jenkins 搭建一套 CI/CD 系统

    一、CI/CD环境介绍 本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打包,再自动化完成部署到Tomcat服务器提供访问。 环境准备三台Centos7.6机器: 服务器 IP地址 配置 包含功能及版本 Gitlab 192.1

    2024年03月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包