终于可以解放双手了,使用Jenkins、ArgoCD 部署 Java 应用程序,最终部署在 Kubernetes 集群上

简介: 本文详细介绍了如何设置Jenkins服务器、Sonarqube服务器及Jfrog-Artifactory服务器,并通过ArgoCD在Kubernetes集群上实现持续集成与部署。内容涵盖环境配置、插件安装、凭据管理及部署流程,适用于DevOps实践与自动化流水线构建。

概览

Jenkins服务器设置

1. 我们必须配置Jenkins,为此我们将创建一个安装Jenkins 的EC2服务器。此外,我们还将安装一些其他工具,例如Sonarqube和Docker,因此我们需要比较大的RAM和CPU。

服务器配置: t2.large、Ubuntu22.04、安全组端口开放 - 22、9000、8080、8081 和 8082,存储:30GB gp2。

2.创建EC2实例后,使用ssh登录创建的机器。

3.安装Jenkins,您可以参考Github Repo,只需运行脚本或按照命令将其安装到您的机器上。

GitHub 存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git

下面可以看到Jenkins已经安装完成。

4. 现在,在 public_ip:8080 的帮助下浏览 Jenkins 服务器。确保您已在实例的安全组中打开端口号 8080。

5. 使用命令/var/lib/jenkins/secrets/initialAdminPassword 获取密码。

6. 输入密码后,单击继续。

7. 点击“安装建议的插件”

8. 现在,您可以通过单击“跳过并以管理员身份继续”继续

9. 设置完成。

10.安装Docker Pipeline插件

Sonarqube 服务器设置

11.安装Sonarqube扫描仪插件

12.在您的 EC2 实例或本地计算机上安装Sonarqube 。

您可以参考 Github Repo,只需运行脚本或按照命令将其安装到您的计算机上。

GitHub存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git

apt install unzipadduser sonarqube

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.4.0.54424.zip
unzip *
chmod -R 755 /home/sonarqube/sonarqube-9.4.0.54424
chown -R sonarqube:sonarqube /home/sonarqube/sonarqube-9.4.0.54424
cd sonarqube-9.4.0.54424/bin/linux-x86–64/
./sonar.sh start

13. 为 EC2/本地服务器设置 Sonarqube。

用户名和密码:admin

在下一步中,您必须重置密码。

14. 您的 Sonarqube 服务器已启动并正在运行,如下所示。

15. 现在,我们必须将 Jenkins Sonarqube 扫描仪与此Sonarqube 服务器连接起来。为此,请单击搜索框右侧的个人资料,然后转到“我的帐户”。

16. 生成用于将 Jenkins Sonarqube Scanner与Sonarqube Server连接的令牌。单击“安全”选项卡,为令牌命名,然后单击“生成”。

17. 现在,在 Jenkins 中添加生成的令牌。通过仪表板 -> 管理 Jenkins -> 凭据 -> 系统 -> 全局凭据。

Jfrog-Artifactory 服务器设置

18. 创建新的EC2实例t2.medium并安装jfrog-artifactory。

您可以参考 Github Repo,其中有一个名为Install-Jfrog-Artifactory.sh 的脚本并运行它,在您的计算机上安装了Jfrog Artifactory ,或者您也可以直接复制和粘贴。

GitHub 存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git

19. 现在,设置Artifactory,在代码分析成功完成后上传工件。

单击“开始”。

20. 输入新密码,然后单击下一步。

21. 单击“跳过”

22. 单击“跳过”。

23.通过命名来创建存储库,确保存储库应该是通用的或Maven 的,因为我们必须上传java 的工件。

24. 为存储库命名并单击“保存并完成”。

25. 为了将Jfrog-Artifactory与Jenkins集成,我们必须在Jfrog-Artifactory 中生成令牌。

单击生成访问令牌。

26. 单击“生成”。

27. 复制令牌。

28.转到Jenkins和仪表板 -> 管理 Jenkins -> 凭据并粘贴从Jfrog-Artifactory复制的令牌,然后按照下面的屏幕截图执行其余操作,然后单击创建。

29.在安装了Jenkins的EC2服务器上安装Docker。您可以参考下面的命令,或者您可以参考 Github Repo,您只需要运行脚本并将其安装到您的计算机上。

GitHub 存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git

sudo apt updatesudo apt install docker.iosudo su -usermod -aG docker jenkinsusermod -aG docker ubuntusystemctl restart docker

30.在本地计算机上安装minikube 。

请参阅官方的链接:https ://minikube.sigs.k8s.io/docs/start/

您也可以参考 Github Repo,只需运行脚本或按照命令将其安装到您的计算机上。

GitHub 存储库:https://github.com/AmanPathak-DevOps/Scripts-Installation.git

sudo apt updatesudo apt upgradewget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64chmod +x minikube-linux-amd64sudo mv minikube-linux-amd64 /usr/local/bin/minikube

31. 转至https://operatorhub.io/operator/argocd-operator并单击安装来安装 ArgoCD。您将获得在安装了minikube 的本地计算机上安装时必须使用的命令。

32. 命令运行 并且argoCD 操作符已安装

33. 存储Docker 凭据。

34.还存储Github 凭证(个人访问令牌)。

部署在 Kubernetes 集群上

35. 访问operatorhub.io并输入argoCD,然后单击operator Documentation链接

36. 单击“用法”->“基础知识”并复制所选脚本。

37. 创建yml 文件并将脚本粘贴到该文件中。

38. 我们使用此脚本来下载argoCD控制器。

现在,下载 argoCD 控制器的最后一步将通过以下命令完成:kubectl apply -f argocd-basics.yml

39. 在这里,您可以看到argoCD 控制器已创建。

40. 我们需要第四个控制器,因为它负责argoCD UI。

41. 我们想在本地机器上运行这个控制器。因此,为此,我将编辑第四个控制器,在其中将类型:ClusterIP更改为NodePort。

42. 我们运行相同的命令来获取服务,但这次有一个不同之处,我们可以看到 NodePort 。

现在,要生成浏览器 URL,请编写命令minikube service argocd-server。

要获取浏览器 URL,请编写命令minikube service list,您可以在下面的屏幕截图中查看该命令 。

43. 我点击了该链接,您将看到此UI,点击“高级”,然后点击“<your_IP>”

44. 您可以看到ArgoCD UI登录页面。

45. 在这里,您必须输入用户名和密码。

用户名是admin ,要获取密码,请参阅下面的屏幕截图。

46. 我已经得到加密的密码并将复制它。

现在,我已经使用以下命令解密了密码

47. 现在,我已经输入了用户名和密码并登录了argoCD UI 。

48. 单击“创建应用程序”。您可以在上面的屏幕截图中看到这一点。

现在,要创建应用程序,您必须输入一些配置,您可以在下面的屏幕截图中查看它,最后单击“创建”。

49. 现在,等待几分钟。argoCD将自动部署应用程序。

50. 在这里,发现报错了,因为我在名称空间参数中写入了名称空间,这应该是默认值。

51.那么,让我们纠正它。

最终配置。

52. 单击“保存”后,单击“刷新”,它将再次启动部署应用程序的过程。

我的应用程序已成功部署,如下面的屏幕截图所示。

53. 如果运行命令kubectl get pods。您可以看到最后两个正在运行的Pod ,这确保部署成功。

54. 所以,我也面临并解决了一些问题。

每个服务和工具的最终输出

Jenkins Pipeline

Sonarqube 代码分析

上传工件至 Jfrog Artifactory

在 Kubernetes 集群上使用 argoCD 控制器进行部署


相关文章
|
1月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
143 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
4月前
|
Java 应用服务中间件 Linux
在Java 12环境中配置和部署Apache Tomcat的步骤。
这段部署Tomcat的冒险旅程充满技术挑战,但同时也像游戏一样充满乐趣。它需要你提前准备,仔细执行,并随时准备解决意外情况。成功后,你就可以在这匹强壮的网络野马上,带着你的Java应用,冲向Web开发的璀璨星空。
137 56
|
3月前
|
Java 应用服务中间件 Docker
java-web部署模式概述
本文总结了现代 Web 开发中 Spring Boot HTTP 接口服务的常见部署模式,包括 Servlet 与 Reactive 模型、内置与外置容器、物理机 / 容器 / 云环境部署及单体与微服务架构,帮助开发者根据实际场景选择合适的方案。
128 25
|
2月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
212 0
|
11月前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
303 2
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
8月前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
643 8
|
9月前
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
228 8
|
10月前
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
182 12
|
11月前
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值

推荐镜像

更多