当前位置: 首页 > news >正文

DevOps的个人学习

一、DevOps介绍

软件开发最初是由两个团队组成:

  • 开发团队:负责设计和构建系统。
  • 运维团队:负责测试代码后部署上线,确保系统稳定安全运行。

这两个看似目标不同的团队需要协同完成一个软件的开发。DevOps整合了开发与运维团队,旨在提高效率并持续工作。

软件开发过程及涉及工具

  1. PLAN:制定开发计划
  2. CODE:根据计划开始编码
  3. BUILD:构建并运行代码
  4. TEST:测试代码是否存在BUG或错误
  5. DEPLOY:手动和自动化测试后,认定代码准备好部署
  6. OPERATE:运维团队将代码部署到生产环境
  7. MONITOR:监控产品
  8. INTEGRATE:将监控阶段收到的反馈发送回PLAN阶段,形成闭环

二、Code阶段工具

在code阶段,使用Git作为版本控制工具,GitLab作为远程仓库。

Git安装

https://git-scm.com/ (傻瓜式安装)

GitLab安装

yum -y install git
docker search gitlab
docker pull gitlab/gitlab-ce
version: '3.1'
services:gitlab:image: 'gitlab/gitlab-ce:latest'container_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://10.1.106.68:8929'gitlab_rails['gitlab_shell_ssh_port'] = 2224ports:- '8929:8929'- '2224:2224'volumes:- './config:/etc/gitlab'- './logs:/var/log/gitlab'- './data:/var/opt/gitlab'
docker-compose up -d
http://10.1.106.70:8929/

Jenkins入门配置

由于Jenkins需要从Git拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker仓库,所以Jenkins需要配置大量内容。

构建任务

示例Pipeline脚本
environment {harborUser='admin'harborPasswd='Harbor12345'harborAddress='192.168.11.102:80'harborRepo='repo'
}
stages {stage('拉取git仓库代码') {steps {checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[url: 'http://192.168.11.101:8929/root/mytest.git']]])}}stage('通过maven构建项目') {steps {sh '/var/jenkins_home/maven/bin/mvn clean package -DskipTests'}}stage('通过SonarQube做代码质量检测') {steps {sh '/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/ -Dsonar.login=40306ae8ea69a4792df2ceb4d9d25fe8a6ab1701'}}// 其他stage...
}
post {success {dingtalk(robot: 'Jenkins-DingDing',type: 'MARKDOWN',title: "success:${JOB_NAME}",text: ["- 成功构建:${JOB_NAME}!\n- 版本:latest\n- 持续时间: ${currentBuild.durationString}"])}failure {dingtalk(robot: 'Jenkins-DingDing',type: 'MARKDOWN',title: "fail:${JOB_NAME}",text: ["- 构建失败:${JOB_NAME}!\n- 版本:latest\n- 持续时间: ${currentBuild.durationString}"])}
}

Kubernetes编排工具

10.1 Kubernetes介绍

Kubernetes是一个开源的用于管理云平台中多个主机上的容器化应用,其目标是让部署容器化的应用简单并且高效。

主要功能包括:

  • 服务发现和负载均衡
  • 存储编排
  • 自动部署和回滚
  • 自动完成装箱计算
  • 自我修复
  • 秘钥与配置管理

10.2 Kubernetes架构

Kubernetes搭建至少需要两个节点,一个Master负责管理,一个Slave搭建在工作服务器上负责分配。

组件及其功能:

  • API Server:核心通讯组件
  • controller-manager:资源调度
  • etcd:存储集群状态信息
  • scheduler:负责调度每个工作节点
  • cloud-controller-manager:负责调度其他云服务产品
  • kubelet:管理Pods上的容器
  • kube-proxy:处理其他Slave或客户端的请求
  • Pod:运行的容器

Harbor使用方式

Harbor作为镜像仓库,主要的交互方式就是将镜像上传到Harbor上,以及从Harbor上下载指定镜像。

添加用户构建项目

创建用户并设置项目为私有,对不同用户设置不同角色。

发布镜像到Harbor

修改镜像名称为 harbor地址/项目名/镜像名:版本 并推送:

docker login -u 用户名 -p 密码 Harbor地址
docker tag demo:v1.0 10.1.106.68/repository/demo:v1.0
docker push 10.1.106.68/repository/demo:v1.0

从Harbor拉取镜像

需要先配置 /etc/docker/daemon.json 文件。

http://www.lryc.cn/news/534326.html

相关文章:

  • 使用Pytorch训练一个图像分类器
  • 《ARM64体系结构编程与实践》学习笔记(四)
  • 01-SDRAM控制器的设计——案例总概述
  • 京准:NTP卫星时钟服务器对于DeepSeek安全的重要性
  • uniapp访问django目录中的图片和视频,2025[最新]中间件访问方式
  • RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决
  • python脚本实现windows电脑内存监控内存清理(类似rammap清空工作集功能)
  • 【狂热算法篇】并查集:探秘图论中的 “连通神器”,解锁动态连通性的神秘力量
  • SpringBoot中实现动态数据源切换
  • 数据结构及排序算法
  • Python基础-元组tuple的学习
  • 【手写公式识别】MEMix: Improving HMER with Diverse Formula Structure Augmentation 论文阅读
  • 使用deepseek写一个飞机大战游戏
  • 用Kibana实现Elasticsearch索引的增删改查:实战指南
  • C# 封送和远程编程介绍
  • MybatisPlus较全常用复杂查询引例(limit、orderby、groupby、having、like...)
  • 02.07 TCP服务器与客户端的搭建
  • Jenkins数据备份到windows FTP服务器
  • 【R语言】卡方检验
  • ASP.NET Core托管服务
  • HarmonyOS 5.0应用开发——全局自定义弹出框openCustomDialog
  • 如何在C++ QT 程序中集成cef3开源浏览器组件去显示网页?
  • 深入讲解MyBatis
  • 使用matlab 对传递函数分析bode图和阶跃函数
  • 2025牛客寒假算法基础集训营5(补题)
  • FaceFusion如何设置公开链接和端口
  • 神经网络常见激活函数 6-RReLU函数
  • 计算机网络面经
  • Qt:常用控件
  • 算法设计-找第二大数(C++)