【SpringCloud微服务实战10】DevOps自动化部署微服务项目(Jenkins+Docker+K8s)

一、什么是 DevOps

        DevOps 是一种重视软件开发人员(Developer)和运维人员(Operations)之间沟通与协作的文化、运动或实践,目标在于快速交付高质量的软件产品和服务。DevOps 强调自动化流程、持续集成与交付(CI/CD)、以及通过工具链、敏捷方法论和跨职能团队协作来增强软件的可靠性和安全性。在 DevOps 中,开发、测试、部署和监控等多个环节紧密连接,形成一个高效的工作流。以下是一些在DevOps实践中常用的工具列表:
1、版本控制系统:
        Git: 用于源代码管理和版本控制,支持分布式工作流,被广泛应用于软件开发中。
2、持续集成与持续部署工具:
        Jenkins: 是一款流行的开源持续集成服务器,可用于自动化各种任务,包括构建、测试和部署软件。
        Travis CI: 提供云端的持续集成服务,尤其适合开源项目。
        GitHub Actions: GitHub 自带的持续集成/持续部署服务,可以在GitHub仓库内定义工作流程。
        GitLab CI/CD: GitLab 内置的持续集成和持续部署工具,为用户提供一站式解决方案。
        CircleCI: 提供高性能的持续集成和部署平台。
3、容器化与虚拟化工具:
        Docker: 用于打包应用及其依赖项到可移植容器中,简化应用部署和管理。
        Kubernetes (k8s): Google主导的容器编排系统,用于自动化部署、扩展和管理容器化应用。
4、配置管理与基础设施即代码工具:
        Terraform: 用于管理和部署云基础架构的开源工具,支持多种云服务商。
        Ansible: 通过YAML剧本实现IT自动化运维,支持配置管理、应用部署等功能。
        Chef 和 Puppet: 也是知名的配置管理工具,帮助实现基础设施的自动化配置和管理。
5、监控与日志管理工具:
        Prometheus: 一个开源的系统监控和警报工具,支持动态抓取指标数据。
        Grafana: 数据可视化平台,常与Prometheus配合展示监控数据。
        Nagios: 传统且强大的网络监控系统,用于检查系统状态和网络问题。
        ELK Stack (Elasticsearch, Logstash, Kibana): 日志收集、分析和可视化平台。
        Splunk: 企业级的日志管理和分析工具。
6、测试工具:
        Selenium: 用于Web应用的自动化测试工具,支持多种浏览器和编程语言。
        Postman: API测试工具,支持API开发全流程,包括设计、调试、文档和测试。
7、项目管理与协同工具:
        Trello: 用于项目管理和团队协作看板工具。
        Azure Boards: 微软提供的敏捷项目管理工具,适用于Azure DevOps环境。
        Jira: Atlassian公司出品的项目与问题追踪工具,广泛应用于软件开发团队。
8、代码质量管理工具:
        SonarQube: 用于静态代码分析,检测代码质量问题和安全漏洞。

二、Jenkins 持续集成工具安装

    官方下载地址:Jenkins download and deployment

    笔者这里为mac m1系统,这里使用 brew 安装 Jenkins:

#安装
brew install jenkins-lts

#启动
brew services start jenkins-lts

#重启
brew services restart jenkins-lts

#更新
brew upgrade jenkins-lts

#注意使用brew安装 需要修改 vim /opt/homebrew/Cellar/jenkins-lts/2.440.2/homebrew.mxcl.jenkins-lts.plist 文件中的127.0.0.1 为 0.0.0.0

    其他系统也可以直接用docker进行安装(命令未经测试):

docker run \ 
  -d \ 
  -p 8080:8080 \ 
  -p 50000:50000 \ 
  -v jenkins-data:/var/jenkins_home \ 
  -v /var/run/docker.sock:/var/run/docker.sock \ 
  jenkins/jenkins:latest-jdk8

    启动后访问 http://localhost:8080,界面如下,根据提示地址,找到秘钥填写解锁:

    安装推荐的插件(需要联网),慢慢等待,失败的话就再次重试:

    创建管理员账号,拥有操作Jenkins的最高权限(后面也可以添加同等权限的账号):

    配置Jenkins Url地址:

    在 系统管理 > 全局工具配置 中分别配置 maven、jdk、git 的安装路径,或者选择Jenkins自动安装:

     在系统管理 > 插件管理 中搜索并安装一些插件:

        Role-based Authorization Strategy:根据角色管理权限

        SSH plugin:用于访问远程主机并执行命令

 三、Harbor 私有镜像仓库搭建

        Harbor 是一个开源的企业级容器镜像仓库项目,它提供了一个安全的存储和分发 Docker 镜像的平台,用来搭建Docker私服。

#解压github上下载的安装包
tar -zxf harbor-offline-installer-v2.10.1.tgz

#移动到目录
cd harbor

#重命名(或者复制一份)配置文件
mv harbor.yml.tmpl harbor.yml

#修改配置文件,修改内容如下图
vi harbor.yml.tmpl

#准备
./prepare

#安装
./install.sh 
 
#启动harbor
docker-compose up -d

 启动成功如下(如果有失败的 依次排查后重启):

    访问 http://127.0.0.1:8090/ 如下,输入默认用户名 admin,密码 Harbor12345,进行登录:

在用户管理中创建一个新用户,并设置为管理员:

在 Docker Engine 中添加配置,然后重启docker(可用 docker system info 命令查看配置是否生效):

  "insecure-registries": [
    "192.168.31.143:8090"
  ],

下面做一些Harbor使用测试:

#登录Harbor
docker login -u lws -p Harbor12345 http://192.168.31.143:8090

#mac系统说明:这里报了类似“Error saving credentials: error storing credentials”的错误,原因是mac系统需要先执行安全解锁命令 security unlock-keychain

#从远端拉取一个镜像
docker pull rabbitmq:latest

#设置新tag 指向Harbor默认的library项目中
docker tag rabbitmq:latest 192.168.31.143:8090/library/rabbitmq:3

#推送到Harbor
docker push 192.168.31.143:8090/library/rabbitmq:3

#之后需要镜像时拉取
#docker pull 192.168.31.143:8090/library/rabbitmq:3

    此时我们看Harbor中已经有了镜像:

四、Gogs 私有代码托管平台搭建

        Gogs 是一款轻量级、跨平台、易安装的私有 Git 代码托管平台,这里选择它来托管代码,其它类似平台也可以自行选择,例如:GitHub、GitLab、Gitee、Coding等等。

        Docker运行启动Gogs:

docker run -d --name gogs -e -p 10022:22 -p 10880:3000 -v /Users/lws/gogs:/data  gogs/gogs:latest 

启动成功 访问 http://127.0.0.1:10880 ,做一些基础配置,主要是数据库连接和管理员账号添加:(踩个坑:我的mysql部署在宿主机,需要开远程访问权限,这里填写宿主机ip,不能用127.0.0.1)

      

安装成功再次访问 http://127.0.0.1:10880 如下:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言二叉树和堆(个人笔记)

二叉树和堆 二叉树1二叉树的概念和结构1.1特殊的二叉树1.2二叉树的性质(规定根节点的层数为1)1.3二叉树的存储结构 2.二叉树的顺序结构和实现2.1二叉树的顺序结构2.2堆的概念和结构2.3堆的实现2.4堆的应用2.4.1堆排序 2.5TOP-K问题 3.二叉树的遍历4.二叉…

管理阿里云服务器ECS -- 网站选型和搭建

小云:我已经学会了如何登录云服务器ECS了,但是要如何搭建网站呢? 老王:目前有很多的个人网站系统软件,其中 WordPress 是使用非常广泛的一款,而且也可以把 WordPress 当作一个内容管理系统(CMS…

Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)

1 exe程序图标概述 在 Windows 操作系统中,程序图标一般会涉及三个地方; (1) 可执行程序(以及对应的快捷方式)的图标 (2) 程序界面标题栏图标 (3)程序在任务…

C语言什么是形参和实参?如何使⽤?

一、问题 在调⽤函数的时候,调⽤函数和被调⽤函数之间基本都会发⽣数据传递关系,这就要⽤到有参函数,⽽不传递数据的就需要⽆参函数。这样必然涉及形参和实参的概念,那么究竟什么是形参?什么又是实参呢?如何…

编译与链接

环境: 在ASCI C的任何一种实现中,存在两种不同的环境: 1.翻译环境,在这个环境中,源代码被转换为可执行的机器指令(二进制指令) 2.运行环境,用于实际执行代码。 流程:c文件->翻译…

(4)(4.3) Kogger Sonar

文章目录 前言 1 推荐硬件 2 配置回声探测仪模块 3 连接ArduPilot硬件 4 参数说明 前言 KOGGER 声纳(KOGGER Sonar)是一款结构紧凑、成本低廉的水下回声测深仪模块,带有 UART 接口,电源电压为 5-14v。 1 推荐硬件 CP210x USB->UART 转换器和安装…

脚本应使用项目的主要语言编写

原文:Joo Freitas - 2024.03.24 这是我长时间以来的一个深感赞同的观点。 我参与过的几乎所有项目,都有我们编写的用于自动化重复性过程的脚本。然而,大多数脚本在几周后变得过时且难以维护,因为我们要么不再需要它们&#xff0…

Towhee 小记

文章目录 关于 Towhee✨ 项目特点🎓 快速入门流水线预定义流水线自定义流水线 🚀 核心概念 关于 Towhee Towhee 是一个开源的 embedding 框架,包含丰富的数据处理算法与神经网络模型。通过 Towhee,能够轻松地处理非结构化数据&am…

31---JTAG电路设计

视频链接 JTAG电路设计(JLINK&XILINX&ALTERA)_哔哩哔哩_bilibili JTAG电路设计 1、JTAG简介 JTAG(Joint Test Action Group):联合测试工作组,是在名为标准测试访问端口和边界扫描结构的IEEE的标…

Python学习之-正则表达式

目录 前言:1.re.serach1.1例子: 2.re.match2.1示例1:2.2 示例2: 3.re.findall3.1 示例 4.re.fullmatch4.1 示例1:4.2 示例2: 5.re.split5.1 示例1:5.2 示例2:5.3 示例3: 6.re.sub6.1 示例&#…

2024年阿里云服务器价格30元、61元、99元、165元、199元报价

2024年阿里云服务器优惠价格表,一张表整理阿里云服务器最新报价,阿里云服务器网aliyunfuwuqi.com整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单,大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新…

【详细讲解React 快速入门教程】

🔥博主:程序员不想YY啊🔥 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家💫 🤗点赞🎈收藏⭐再看💫养成习惯 🌈希望本文对您有所裨益,如有…

虚机无法进入系统一直轮转在内核启动页面处理

【问题现象】 在日常处理虚机过程中会出现,虚机无法进入系统,一直轮转在内核启动页面的情况 【处理办法】 【步骤一】登录原先内核系统,设置默认新内核启动 【步骤二】进入系统后设置 # grubby --set-default /boot/vmlinuz-3.10.0-957.ax…

Healix Protocol 的 HLX 通证预售:医疗领域的未来展望

Healix Protocol推出 HLX 通证预售,将带来医疗领域的重要变革。通过其区块链技术,Healix Protocol致力于重新定义医疗服务的可及性与负担性,成为医疗行业的希望之光。该项目旨在增强透明度、可及性和效率,推动医疗体系向更加公平和…

[计算机效率] 文件预览工具:QuickLook

3.9 文件预览工具:QuickLook Quicklook是一款强大的文件预览工具,可以帮助用户快速浏览文件夹中的文件内容,而无需打开每个文件。 功能特点: 快速预览:Quicklook能够快速预览文件夹中的文件内容,包括文本…

把本地文件上传到HDFS上操作步骤

因为条件有限,我这里以虚拟机centos为例 实验条件:我在虚拟机上创建了三台节点,部署了hadoop,把笔记本上的数据上传到hdfs中 数据打包上传到虚拟机节点上 采用的是rz命令,可以帮我们上传数据 没有的话可以使用命令安装…

虹科Pico汽车示波器 | 免拆诊断案例 | 2018款东风风神AX7车发动机怠速抖动、加速无力

一、故障现象 一辆2018款东风风神AX7车,搭载10UF01发动机,累计行驶里程约为5.3万km。该车因发动机怠速抖动、加速无力及发动机故障灯异常点亮而进厂维修,维修人员用故障检测仪检测,提示气缸3失火;与其他气缸对调点火线…

Questasim 跑自动化脚本使用教程

自动化脚本使用 1.日常工程的自动化脚本程序,一共需要两个文件.do和.文件bat sim.do文件如下 #删除work工作目录 file delete -force work#设置uvm环境变量,指定uvm的dpi位置 set UVM_HOME C:/questasim64/verilog_src/uvm-1.1d set UVM_DPI_HOME …

Python实现一个简单的银行管理系统GUI应用

介绍 在本教程中,我们将创建一个基本的银行管理系统GUI应用,用户可以通过图形界面执行各种银行操作。我们将使用Python编程语言和Tkinter库来实现此应用。 使用说明 需要安装Python解释器,以及PythonCharm 👉 点我去下载 效果图…

ssm网上订餐管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目采用线性算法

一、源码特点 ssm 网上订餐管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模…