云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)

🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅

== 博主介绍:== Java领域优质创作者,博客之星城市赛道TOP20、CSDN博客专家,专注于前端流行技术框架、Java后端技术领域、项目实战、云原生技术之开发运维Devops、k8s、docker容器技术以及GIS地理信息领域。

🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅


👇🏻 精彩专栏推荐订阅👇🏻 欢迎点赞收藏评论拍砖…


云原生技术落地实现】之一《KubeSphere DevOps在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD 》(1/2)

云原生技术落地实现】之二《KubeSphere DevOps在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD 》(2/2)


感兴趣的可以先收藏起来相关问题都可以给我留言咨询,希望帮助更多的人。


本文中的实操部分需要以下基础条件:

  1. docker容器基础
  2. k8s基础
  3. 已经搭好一套k8s集群
  4. 已经部署好ks平台
  5. ks中开通devops插件

1、DevOps简介

DevOps 是一系列做法和工具,可以使 IT 和软件开发团队之间的流程实现自动化。其中,随着敏捷软件开发日趋流行,持续集成 (CI) 和持续交付 (CD) 已经成为该领域一个理想的解决方案。在 CI/CD 工作流中,每次集成都通过自动化构建来验证,包括编码、发布和测试,从而帮助开发者提前发现集成错误,团队也可以快速、安全、可靠地将内部软件交付到生产环境。

2、Jenkins

KubeSphere DevOps深度整合自动化构建部署工具jenkins,以下内容需要jenkins的基础,关于Jenkins的参考文章请参见我写的上篇文章:

Jenkins自动构建 CI/CD流水线学习笔记(从入门到入土,理论+示例)

以及jenkis官网:https://www.jenkins.io/zh/doc/book/pipeline/

3、创建Devops工程&Jenkins可视化

打开ks平台,以dev权限的账号登录ks,创建一个企业空间,然后创建devops项目。

3.1、创建企业空间

3.2、创建devops项目

devops项目创建成功!!可以开始使用devops项目了。

3.3、jenkins可视化

创建流水线:

点击下一步:

开始创建,创建完成:

选择编辑流水线:

选择模板:

点击创建:

最后点击确认,进行保存

这里可以点击编辑jenkinsfile可以查看和编辑流水线文件:

4、拉取代码

点击编辑流水线:

选择 Jenkins Agent

agent 部分指定整个流水线或特定阶段 (Stage) 将在 Jenkins 环境中执行的位置,具体取决于该 agent 部分的放置位置。该部分必须在 pipeline 块的顶层进行定义,但是阶段级别的使用为可选。

4.1、内置 podTemplate

podTemplate 是一种 Pod 模板,该 Pod 用于创建 Agent。用户可以定义在 Kubernetes 插件中使用的 podTemplate。

当流水线运行时,每个 Jenkins Agent Pod 必须具有一个名为 jnlp 的容器,用于 Jenkins Controller 和 Jenkins Agent 之间进行通信。另外,用户可以在 podTemplate 中添加容器以满足自己的需求。用户可以选择使用自己的 Pod YAML 来灵活地控制运行时环境 (Runtime),并且可以通过 container 命令来切换容器。

KubeSphere 内置了一些 podTemplate,用户无需编写 YAML 文件,极大降低学习成本。

在目前版本中,KubeSphere 内置了 4 种类型的 podTemplate:base、nodejs、maven 和 go,并且在 Pod 中提供隔离的 Docker 环境。

  1. podTemplate base
  2. podTemplate nodejs
  3. podTemplate maven
  4. podTemplate go
4.2、编辑拉取代码流水线

首先选择最基本的代理类型和label标签:

开始编辑第一步,拉取代码:

首先创建登录代码仓库的账号密码的凭证。

然后返回编辑流水线:

添加步骤:

添加一个shell步骤,用来拉取代码成功后打印所有的文件信息。

最终的步骤:

开始运行流水线:

4.3、查看流水线日志,拉取代码成功

拉取代码的流水线运行成功,拉取代码成功。

5、项目编译

5.1、编写mvn脚本

然后运行流水线:

项目编译成功!!

5.2、修改maven中央仓库的地址为阿里云地址

修改maven的中央仓库地址

<!-- 阿里云镜像 -->
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

此时,再次运行时,下载包用的是阿里云仓库地址:

5.3、缓存机制

已及下载过的包,下一次流水线的启动,不会重复编译打包。

项目编译阶段成功pass了!!

6、构建镜像

docker build -t tiger-java-demo:v1.0 .

镜像构建成功!!!

在集群b节点上查看镜像:

docker images

新创建的镜像被分配到b节点上进行保存。

下一节内容请翻阅(2/2)


坚持到底,就是胜利,只有坚持到最后的人,才能享受到成功的喜悦。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
9天前
|
监控 Devops 测试技术
DevOps实践: 持续集成和持续部署(CI/CD)的入门指南
【9月更文挑战第10天】在快速迭代的软件开发世界中,DevOps已经成为加速产品交付、提升软件质量和团队协作的关键策略。本文将深入浅出地介绍DevOps的核心组成部分——持续集成(Continuous Integration, CI)与持续部署(Continuous Deployment, CD)的基本概念、实施步骤以及它们如何革新传统的软件开发流程。你将学习到如何通过自动化工具简化开发流程,并理解为什么CI/CD是现代软件开发不可或缺的一环。
|
15天前
|
Devops jenkins Shell
DevOps实践:持续集成与持续部署(CI/CD)的探索之旅
【9月更文挑战第3天】在软件开发的世界里,DevOps已经成为了提升效率、加速产品迭代的关键。本文将深入浅出地探讨DevOps文化中的核心实践——持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD),并展示如何通过实际操作来优化开发流程。我们将一起踏上这段旅程,解锁自动化的魅力,让代码更流畅地转化为价值。
|
23天前
|
监控 Devops jenkins
DevOps实践:持续集成与持续部署(CI/CD)的实现
【8月更文挑战第28天】本文将深入探讨DevOps文化的核心组成部分——持续集成(CI)和持续部署(CD)。通过实际案例,我们将学习如何利用工具和策略来自动化软件开发流程,提高效率,确保代码质量和快速迭代。你将了解从零开始构建CI/CD流程的具体步骤,以及如何克服常见障碍。
|
23天前
|
监控 Devops jenkins
DevOps实践:持续集成与持续部署(CI/CD)的实现之路
【8月更文挑战第27天】本文旨在通过浅显易懂的语言,带领读者走进DevOps的世界,重点探讨如何实施持续集成(CI)与持续部署(CD)。我们将从基础概念出发,逐步深入到具体实践,最后以一个简单的代码示例作为引导,帮助初学者快速上手CI/CD流程。无论你是DevOps新手还是希望深化理解,这篇文章都将是你的理想选择。
|
1月前
|
运维 监控 Devops
DevOps实践:持续集成与持续部署(CI/CD)的精髓
在软件工程的海洋里,DevOps如同一艘高效的船只,而持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)则是推动这艘船前行的强大双桨。本文将深入探索CI/CD的核心概念,揭示其如何助力团队高效协同、提升软件质量和加速产品上市。
56 1
|
19天前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
34 0
|
1月前
|
Kubernetes Devops 测试技术
DevOps实践:持续集成和持续部署(CI/CD)在现代企业中的应用
随着软件开发行业的迅猛发展,DevOps文化及其核心实践—持续集成(Continuous Integration, CI)与持续部署(Continuous Deployment, CD)—已成为提升软件交付速度和质量的关键策略。本文将深入探讨CI/CD的理论基础,并结合真实案例分析其在现代企业中的实际应用效果,旨在为读者提供一套可行的实施指南。
|
23天前
|
Devops 持续交付 开发者
.NET自动化之旅:是Azure DevOps还是GitHub Actions能够打造完美的CI/CD流水线?
【8月更文挑战第28天】在现代软件开发中,持续集成(CI)与持续部署(CD)是提升代码质量和加速交付的关键实践。对于 .NET 应用,Azure DevOps 和 GitHub Actions 等工具可高效构建 CI/CD 流水线,提升开发效率并确保软件稳定可靠。Azure DevOps 提供一站式全流程管理,支持 YAML 定义的自动化构建、测试和部署;GitHub Actions 则以简洁灵活著称,适用于 .NET 项目的自动化流程。选择合适的工具可显著提高开发效率并确保高质量标准。
13 0
|
23天前
|
监控 Devops jenkins
DevOps实践:构建自动化CI/CD流水线
【8月更文挑战第28天】本文深入探讨了DevOps文化下,如何通过构建自动化的持续集成和持续部署(CI/CD)流水线来提高软件开发的效率和质量。文章不仅分享了构建流水线的步骤,而且提供了实际的代码示例,旨在帮助读者理解并实现自己的自动化流程。
|
1月前
|
运维 Devops 测试技术
DevOps实践:持续集成与持续部署(CI/CD)的精髓
在软件工程领域,DevOps已经从一种概念演变为提升开发效率和产品质量的关键实践。本文将深入浅出地探讨如何通过实施持续集成(CI)和持续部署(CD)来优化软件开发流程,确保快速迭代同时保持高稳定性。我们将从基础概念出发,逐步深入到实际操作技巧,最后讨论如何克服常见的挑战,旨在为读者提供一条清晰的道路,以实现更高效、更可靠的软件交付。
53 0