k8s cicd (jenkins + gitops)

kubernetes的DevOps业务(七):Jenkins,GitLab,Harbor,Tekton,GitOps 你可能听说过 DevOps,或者 AIOps、ChatOps 等,那么 GitOps 又是什么呢? GitOps 是 Weaveworks 提出的一种持续交付方式,它的核心思想是将应用系统的声明性基础架构和应用程序存放在 Git 版本库中。将 Git 作为交付流水线的核心,每个开发人员都可以提交拉取请求(Pull Request)并使用 Git 来加速和简化 Kubernetes 的应用程序部署和运维任务。通过使用像 Git 这样的简单工具,开发人员可以更高效地将注意力集中在创建新功能而不是运维相关任务上( 阅读详情

ci:jenkins  cd:gitops  image repository:harbor

1jenkinsfile配置示例

 environment {
     K8S_CONFIG = credentials('jenkins-k8s-config')
     GIT_TAG = "1.0.0-SNAPSHOT"
 }
 parameters {
     string(name: 'HARBOR_HOST', defaultValue: '10.1.53.65:5000', description: 'harbor仓库地址')
     string(name: 'DOCKER_IMAGE', defaultValue: 'aosom-pop/stock', description: 'docker镜像名')
     string(name: 'APP_NAME', defaultValue: 'stock', description: 'k8s中标签名')
     string(name: 'K8S_NAMESPACE', defaultValue: 'dev', description: 'k8s的namespace名称')
 }

 def label = "jenkins2-jenkins-slave"
 podTemplate(label: label, cloud: 'kubernetes') {
 node ('jenkins2-jenkins-slave'){
   stage('maven build'){
      container('jnlp') {
                 checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gitsshkey', url: 'ssh://git@git.aosom.com.cn:8899/aosom/pop_products.git']]])
                 sh "docker login 10.1.53.65:5000 -u admin -p Harbor12345 "
                 sh 'mvn clean package -Dfile.encoding=UTF-8 -DskipTests=true'

     }
   }
   
 }
}

 

2jenkins slave使用自定义镜像

10.1.53.65:5000/aosom-pop/jnlp-slave:1.0.0

3jnlp-slave:1.0.0 dockerfile

FROM jenkins/jnlp-slave:3.27-1

MAINTAINER HXP

USER root
#ADD apache-maven-3.6.2-bin.tar.gz /opt/
#RUN echo -e "\n">>~/.bash_profile && echo -e "export M2_HOME=/opt/apache-maven-3.6.2\n" >> ~/.bash_profile \
# && echo "export PATH=$PATH:$M2_HOME/bin">>~/.bash_profile && . ~/.bash_profile && ln -s /opt/apache-maven-3.6.2/bin/mvn /usr/bin/mvn
RUN apt-get update && apt-get -y install maven
ADD config.json /root/.docker/
ADD config /root/.kube/
ADD kubectl /usr/bin/
RUN chmod 777 /usr/bin/kubectl

USER root

ENTRYPOINT ["jenkins-slave"]

 

3jenkins部署方式

/var/jenkins_home 挂在到pvc

采用helm方式部署

4gitops部署方式

采用helm方式部署flux

Jenkins+Docker+K8S+SonarQube实战:构建端到端CI/CD流水线 持续集成与持续部署(CI/CD)是现代软件工程的核心实践,旨在通过自动化流程提升软件交付效率与质量。其核心原理在于将代码提交、构建、测试、打包、部署等环节串联成自动化流水线,减少人工干预,确保快速、可靠的软件发布。在云原生时代,容器化与编排技术为CI/CD提供了更标准化的环境与更灵活的部署能力。Docker通过镜像实现应用与环境的一致性封装,Kubernetes则负责容器的编排、调度与管理,保障应用的高可用与弹性。结合Jenkins的流水线调度能力与SonarQube的代码质量门禁,可以构建一条从代码提交到 阅读详情

相关推荐

从零构建云原生CI/CD流水线:Docker+K8S+Jenkins实战指南

持续集成与持续部署(CI/CD)是现代软件工程的核心实践,旨在通过自动化流程实现快速、可靠的软件交付。其核心原理在于将代码集成、测试、构建和部署等环节串联为自动化流水线,从而减少人工干预,提升交付效率与质量。在云原生时代,容器化技术为CI/CD提供了理想的环境一致性保障。Docker通过将应用及其依赖打包成标准化的容器镜像,解决了“开发环境能跑,生产环境崩溃”的经典难题。而Kubernetes作为容器编排的事实标准,则负责管理容器的调度、扩缩容与自愈,使得大规模应用部署变得可控。结合Jenkins这一强大的

weixin_30384217的博客 336

Gitlab CI/CD笔记-第一天-GitOps和以前的和jenkins的集成的区别

5.极狐gitlab中国特有,有本地支持,这点完爆jenkins.很关键的,因为很多公司做CI/CD都希望有一家国内有公司可以提供技术支持.3.总结:以前是jenkins对接集成第三方工具,GitOps那就是Gitlab把所有涉及到CI/CD工具都自带了,非常无敌,也好用。2.Git直接把什么第三方的代码扫描,代码授权,代码规范都做了,同时Runer的广泛适配性从范围从物理到云原生都支持,啥都可以跑。1.就是定义的流水线,这是核心,和jenkins除了关键词不同,其他的格式都是yaml非常简单好写。

博然的宝藏库 1670

别再手动部署了!用Docker Compose在单机上一键拉起K8s+GitLab+Jenkins全链路CI/CD环境

本文详细介绍了如何使用Docker Compose在单机上快速搭建K8s+GitLab+Jenkins全链路CI/CD环境,实现一键部署。通过轻量化组件选型和优化配置,大幅降低资源占用和部署时间,特别适合个人开发者和小团队快速构建持续集成环境。

weixin_30617695的博客 521

Jenkins CD 流水线设计 Gitops CI制品信息保存为CD准备

下面这个阶段实在理解不了,可以将这个阶段去掉,如果公司不想这么用的话,大规模场景下使用也可以发现这种好处。 CI/CD流水线设计 总体目标: 我是一个用户,点开Jenkins之后输入版本分支,然后点流水线构建,第一个阶段下载代码,第二个阶段构建,生成了我们的包,第三个阶段进行代码扫描,第四个阶段是上传制品,此时这个制品到制品库里面去了,那么就到CD阶段了,也就是包在制品库了,可以进行去部署了。 传到制品库了,要将这个包下载下来,可以复制这个url的地址,现在就需要创建发布流水线,因为C.

小楼一夜听春雨,深巷明朝卖杏花 2125

GitOps 部署实战指南(CICD)

互联网上多数 GitOps 教程要么停留在理论,要么只有简单示例,很少覆盖从环境准备到生产部署的完整流程。常遇到 ArgoCD 与 Traefik 集成、私有 Harbor 仓库配置、Jenkins 无缝对接等实际问题。这篇《GitOps 部署实战指南 (CICD)》基于生产环境实战经验,从基础概念讲起,一步步带你搭建完整、生产可用的 GitOps 部署体系,解决你在实践中遇到的问题。

求知若渴,虚心若愚。 201

k8s cicd实现方案,不同方案下区别、优缺点

Kubernetes(k8s)的CI/CD(持续集成/持续交付)实现方案有多种选择,其中一些常见的方案包括Jenkins、Tekton、GitLab CI/CD和Argo CD。下面是对这些方案的区别、优缺点的详细解释,流程图,使用场景解释以及一些文献材料链接。鱼弦:优快云内容合伙人、优快云新星导师、全栈领域创作新星创作者 、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen)

走向CTO的路上... 609

基于GitOps的容器化微服务部署流水线设计分享

CI工具Jenkins,CD工具ArgoCD

丰耳的博客 886

gitops-build-lib:Jenkins管道共享库,用于通过GitOps自动化部署

gitops-build-lib Jenkins管道共享库,用于通过GitOps自动化部署 特征 将Kubernetes资源写入git repo(供GitOps操作员选择) 在同一个gitOps Repo中支持多个阶段 推送到应用程序分支并创建PR(分段)或 直接推送到生产分支(例如“主”) 部署方式 普通的Kubernetes资源-将图像标签动态写入kubernetes部署 头盔部署-动态设置值(例如图像标签) 早期失败:验证YAML语法(yamllint)并针对Kubernetes模式(kubeval) 可插入的验证器:只需添加您自己的验证器 支持的SCM系统 供应商经理 对他人的抽象是WIP 用法 TODO负载库 library() (请参见操场)或 @Library通过开箱即用 @Library ( ' github.com/cloudogu/gitops-build-l

阿里云Kubernetes服务上从零搭建GitLab+Jenkins+GitOps应用发布模型的实践全纪录

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34006468的博客 449

gitops-terraform-jenkins:使用Jenkins和Terraform的GitOps工作流程

gitops-terraform-jenkins:使用Jenkins和Terraform的GitOps工作流程

【CVPR 2025】清华:注意力状态空间模块,Mamba与注意力的超强组合,即插即用!

MambaIRv2提出了一种创新的图像恢复模型,通过引入注意力状态空间模块(ASSM)解决了Mamba模型因果建模限制问题。该模型结合语义引导邻域机制和注意力状态空间方程,实现了非因果建模,有效缓解了长距离衰减问题。实验表明,MambaIRv2在图像超分辨率、JPEG压缩伪影减少和图像去噪等任务中表现优异,参数更少但性能超越现有方法。

qq_43303160的博客 3041

21-DevOps项目发布一体化平台构建及应用实践

| ├──5-通过ArgoCD实现多K8S集群项目发布。| | ├──6-Jenkins实现CI、CD操作。| | ├──10-Kubernetes编排工具。| | ├──4-Operate阶段工具。| | ├──5-Integrate工具。| | ├──2-GitOps系统实现。| | ├──3-GitOps项目案例。| | ├──3-Build阶段工具。| | ├──1-DevOps介绍。

niwoxiangyu的博客 534

ISP图像处理Verilog仿真框架搭建(附代码)

基于Verilog的图像处理仿真框架搭建

路漫漫其修远兮,吾将上下而求索 1898

gitlab 将管理员权限移交给ldap账户_阿里云Kubernetes服务上搭建GitLab+Jenkins应用发布模型的实践...

关于GitOps的介绍,可以参考 GitOps:Kubernetes多集群环境下的高效CICD实践1. 在 容器服务控制台 创建kubernetes集群1.1 新建Kubernetes集群:1.2 新建命名空间gitops我们将会把gitlab和jenkins全部部署到此命名空间下2. 创建GitLab应用 (可选项,可以对接已有GitLab环境)容器服务控制台上依次点击 市场 -> 应用目...

weixin_39594457的博客 511

Python实战:超分辨率图像质量评估全攻略——PSNR、SSIM、LPIPS与NIQE的代码实现与优化

本文详细介绍了在Python中实现超分辨率图像质量评估的完整方案,涵盖PSNR、SSIM、LPIPS和NIQE四大核心指标。通过模块化代码设计、多进程并行处理和GPU加速优化,帮助开发者构建高效、可扩展的评估系统,并提供了实战避坑指南与结果解读方法。

weixin_29053073的博客 477

信号处理算法:离散余弦变换(DCT)_(1).离散余弦变换(DCT)概述

离散余弦变换的数学定义如下:对于一个长度为NNN的离散信号xnx(n)xn,其DCT变换后的系数XkX(k)XkXk∑n0N−1xncos⁡πNn12kk012N−1Xkn0∑N−1​xncosNπ​n21​kk012N−1其中,kkk是频率指数,nnn是时间或空间索引。离散余弦变换(DCT)是一种强大的信号处理技术,广泛应用于图像压缩、音频处理、数据压缩等领域。

2401_87715305的博客 1557

19.云原生CICD之ArgoCD入门CD过程实战

云原生CICD之ArgoCD入门

野心与梦 2万+

15、运行语音识别应用:从Mac到微控制器的部署指南

本文详细介绍了如何在Mac上运行语音识别应用,并将其部署到Arduino Nano 33 BLE Sense和SparkFun Edge等微控制器设备上的完整流程。内容涵盖应用构建、设备特定的音频与输出实现、部署步骤、常见问题解决方案及进一步优化建议。通过本指南,开发者可快速实现基于TensorFlow Lite的嵌入式语音识别系统,并根据需求进行自定义修改与功能扩展。

l3m4n的博客 59

Jenkins的CD流程和Argo的CICD流程

如果你的应用程序部署在 Kubernetes 上,那么 Argo 是一个很好的选择。如果你需要部署到多种不同的环境,那么 Jenkins 可能更适合你。Argo 是一套面向 Kubernetes 的持续交付工具集,包括 Argo CD、Argo Workflows、Argo Rollouts 和 Argo Events。Jenkins Pipeline 是一种将整个 CD 流程定义为代码的方式,它使用 Groovy 语言编写,可以实现复杂的部署逻辑。和**流水线(Pipeline)**来实现的。

远方雪的专栏 1781

PyTorch深度学习实战(47)——使用PyTorch构建Transformer模型

相较于传统模型,如循环神经网络 (RNN),Transformer 的优势在于能够理解输入和输出序列中元素之间的关系,在大语言模型 (如 ChatGPT 和 DeepSeek) 的发展中起到了关键作用,为了从零开始构建 Transformer,首先探讨自注意力机制,包括查询 (query)、键 (key) 和值 (value) 向量,以及缩放点积注意力 (SDPA)。将层归一化和残差连接集成到多头注意力层中,并与前馈层结合,构建编码器层,堆叠编码器层构建编码器,还将实现 Transformer 中的解码器。

盼小辉丶的博客 3万+

华为OD机试 - 计算误码率(Python/JS/C/C++ 双机位C卷 100分)

移动通信 网络中的误码率主要是指比特误码率,其计算公式如下:比特误码率 = 错误比特数 / 传输总比特数,为了简单,我们引入字符串来表示误码通信的信息,一个字符错误了,就认为出现了一个误码。我们需要将这两个压缩字符串解压成实际的字符序列,然后逐位比较它们,统计误码(不同字符)的数量。题目给出两个经过压缩编码的字符串,通过解压缩后需要判断两个字符串在解压后的误码率,即对应位置不同的字符数量占总字符数量的比例。输入一个标准的字符串,和一个传输前的字符串,计算误码率。两个解压后的字符串完全相同,没有错误字符。

学Java,找哪吒 2196

2025 年好用的 CICD 工具大盘点,这几款值得优先入手

2025 年值得优先入手的 CICD 工具中,极狐 GitLab 作为 GitLab 中国发行版,支持本地化部署和 SaaS 模式,其 AI 编程辅助 CodeRider 能提升编码效率,且一体化平台覆盖 CI/CD 全流程。此外,Jenkins 的插件生态、GitHub Actions 的轻量化、Argo CD 的容器部署能力,也都是各场景下的优质选择,可满足不同团队的 CICD 需求。

DevOps_1024的博客 2689

习题加餐4. 冒险者工会

这个问题通过贪心算法解决,展示了贪心算法在解决一些优化问题中的强大能力。关键在于如何识别贪心选择的性质,并通过数学证明确保这种方法能够达到全局最优解。通过对问题的深入理解和逻辑推理,我们可以设计出有效的算法来解决问题,同时也需要注意代码实现中的细节,如排序和双指针的使用,以确保算法的效率和正确性。贪心算法的应用这个问题展示了贪心算法在实际问题中的应用。贪心算法通过在每一步选择当前最优的解决方案,期望最终达到全局最优解。该问题中,每次选择能力最接近但足以完成最难任务的冒险者,就是贪心选择的体现。

tang7mj的博客 1353

基于Jenkins和Argocd实现CI/CD

CI/CD并不是陌生的东西,大部分企业都有自己的CI/CD,不过今天我要介绍的是使用Jenkins和GitOps实现CI/CD。整体架构如下:devops.png涉及的软件以及版本信息如...

DevOps持续集成的博客 3704

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: k8s pvc 扩容方法
下一篇: redis cluster k8s部署
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值