cicd 03--构建通用scale流程

2024-05-30 23:48
文章标签 通用 流程 构建 03 scale cicd

本文主要是介绍cicd 03--构建通用scale流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

cicd 03--构建通用scale流程

  • 1 介绍
  • 2 cicd构建过程
    • 2.1 基本配置
    • 2.2 测试结果
  • 3 注意事项
  • 4 说明

1 介绍

在实际项目中, 如果没有专用的变更系统,那么可以使用jenkins来快速实现各类基础流程,而且能够达到操作溯源的效果。本文基于jenkins做了一个简单的k8s服务scale流程,用于用户scale服务,同时达到操作溯源的目的。

2 cicd构建过程

2.1 基本配置

  1. 参数
    Cluster 参数:

    名称: Cluster
    类型: Choice Parameter
    数值: 
    cloudsim
    data-pipeline
    dtp-quarantine
    

    namespace 参数:

    名称: namespace
    类型: Active Choices Reactive Parameter
    Groovy Script:if( Cluster == "cloudsim" ){return ['sre-test', 'pi-prod', 'pi-dev', 'simulation-prod', 'simulation-dev' ]
    }else if ( Cluster == "data-pipeline" ){return ['sre-test', 'pi-prod', 'pi-dev', 'debezium-prod']
    }else if ( Cluster == "dtp-quarantine" ){return ['sre-test', 'quarantine']
    }else{
    return[]
    }Choice Type: Single Select
    Referenced parameters: Cluster
    

    deployment参数:

    名称: deployment
    类型: String Parameter
    默认值: busybox
    

    replicas 参数:

    名称: replicas
    类型: String Parameter
    默认值: 1
    
  2. jenkinsfile
    实际中需要更改yourPath 为正确的用户目录,.kube下的文件最好为 config-${Cluster} 的形式, 节点标签 SRE_NODE 按需更改即可。

    k8s_cluster = "${params.Cluster}"
    namespace = "${params.namespace}"
    deployment = "${params.deployment}"
    replicas = "${params.replicas}"
    println("${k8s_cluster} namespace/deployment=${namespace}/${deployment} replicas=${replicas}")default_description = "${k8s_cluster} ${namespace}/${deployment} ${replicas}"
    currentBuild.description = "${default_description}"pipeline {agent anystages {stage('check deploy') {agent { node { label 'SRE_NODE' } }steps {echo 'Hello, check deployment ${namespace}/${deployment} exists'sh "/usr/bin/kubectl --kubeconfig /home/yourPath/.kube/config-${k8s_cluster} -n ${namespace} get deploy ${deployment}"}}stage("scale deploy"){agent { node { label 'SRE_NODE' } }steps {echo 'Hello, scale deployment ${namespace}/${deployment} exists'sh "/usr/bin/kubectl --kubeconfig /home/yourPath/.kube/config-${k8s_cluster} -n ${namespace}  scale deployment ${deployment} --replicas=${replicas}"}}   }post {always {echo 'I have finished'}success {echo "scale , succeed!"sh """curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"text","content":{"text":"deploy_kubectl_scale notify: scale ${k8s_cluster} ${namespace}/${deployment} replicas=${replicas}, succeed!"}}' https://open.feishu.cn/open-apis/bot/v2/hook/6c**c8"""}failure {echo "scale , failed!"sh """curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"text","content":{"text":"deploy_kubectl_scale notify: scale ${k8s_cluster} ${namespace}/${deployment} replicas=${replicas}, failed!"}}' https://open.feishu.cn/open-apis/bot/v2/hook/6c**c8"""}}
    }
    

2.2 测试结果

输入界面:
在这里插入图片描述
执行结果:
在这里插入图片描述

3 注意事项

  1. 当前使用jenkins无法对用户进行细微的权限设置,如果想对用户做进一步的权限控制,例如A用户只能操作ns1的服务,那么可以考虑在jenkins的执行流程中调用专用的操作 api,通过 api调用kubectl,然后在api层面对应用户进行权限检查即可。
  2. 参数联动时候,参数名称首字母需要是大写的,否则在grovy脚本中无法识别,导致参数联动时效。

4 说明

软件环境:
jenkins 版本:2.299
参考文档:
jenkins 官方文档

这篇关于cicd 03--构建通用scale流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1017096

相关文章

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

使用Python和python-pptx构建Markdown到PowerPoint转换器

《使用Python和python-pptx构建Markdown到PowerPoint转换器》在这篇博客中,我们将深入分析一个使用Python开发的应用程序,该程序可以将Markdown文件转换为Pow... 目录引言应用概述代码结构与分析1. 类定义与初始化2. 事件处理3. Markdown 处理4. 转

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo