初识云原生、虚拟化、DevOps

文章目录

    • K8S
    • 虚拟化
    • DevOps
      • devops平台搭建工具
      • 大数据架构

K8S

  • master

    主节点,控制平台,Master节点负责核心的调度、管理和运维,不需要很高性能,不跑任务,通常一个就行了,也可以开多个主节点来提高集群可用度

  • worker

    工作节点,可以是虚拟机或物理计算机,,Slave节点则在执行用户的程序,任务都在这里跑,机器性能需要好点;通常都有很多个,可以不断加机器扩大集群;每个工作节点由主节点管理

    Master Node和Worker Node是分别安装了K8S的Master和Woker组件的实体服务器,每个Node都对应了一台实体服务器(虽然Master Node可以和其中一个Worker Node安装在同一台服务器,但是建议Master Node单独部署),所有Master Node和Worker Node组成了K8S集群,同一个集群可能存在多个Master Node和Worker Node

  • pods:管理容器,每个 Pod 可以包含一个或多个紧密关联的容器,Pod 是一组紧密关联的容器集合,每个 Pod 有自己的虚拟IP。一个工作节点可以有多个 pod,主节点会考量负载自动调度 pod 到哪个节点运行,它们共享PID、IPC、Network 和 UTS Namespace,是 Kubernetes 调度的基本单位,Pod 内的多个容器共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务,使用 ManiFest ( YAML 或 JSON )来定义,

  • Node:是 Pod 真正运行的主机,可以是物理机,也可以是虚拟机,为了管理 Pod 每个 Node 节点上至少要运行 Container Runtime (比如 docker 或者 rkt )、 Kubelet 和 Kube-proxy 服务

  • Namespace:是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组,常见的 pods, services, replication controllers 和 deployments 等都是属于某一个 namespace 的(默认是 default),而 node, persistentVolumes 等则不属于任何 namespace

  • Service:是应用服务的抽象,通过 labels 为应用提供负载均衡和服务发现,匹配 labels 的 Pod IP 和端口列表组成 endpoints,由 kube-proxy 负责将服务 IP 负载均衡到这些 endpoints 上,通常每一个 Service 都会自动分配一个 Cluster IP (仅在集群内部可访问的虚拟地址)和 DNS 名,其他容器可以通过该地址或 DNS 来访问服务,而不需要了解后端容器的运行

img

20231025163144-ee2fbfe0-7310-1

K8s 主要由以下几个核心组件组成:

Master 组件

  • etcd:保存了整个集群的状态
  • apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制
  • controller manager:负责维护集群的状态,比如:故障检测、自动扩展、滚动更新等
  • scheduler:负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上

Worker 组件

  • kubelet:负责维护容器的生命周期,同时也负责 Volume(CSI) 和网络 (CNI) 的管理
  • Container runtime:负责镜像管理以及 Pod 和容器的真正运行(CRI)
  • kube-proxy:负责为 Service 提供 cluster 内部的服务发现和负载均衡

20231025163420-4b0753b8-7311-1

工作负载分类

  • Deployment
    适合无状态应用,所有 pod 等价,可替代
  • StatefulSet
    有状态的应用,适合数据库这种类型
  • DaemonSet
    在每个节点上跑一个 Pod,可以用来做节点监控、节点日志收集等
  • Job & CronJob
    Job 用来表达的是一次性的任务,而 CronJob 会根据其时间规划反复运行

虚拟化

**常见虚拟化工具:**VMware、VirtualBox、Hyper-V、Xen、KVM

vSphere,ESXi 和 vCenter 的区别

VMware vCenter Server

  • vSphere 是在数据中心产品下的一套软件。vSphere 类似微软的 Office 办公套件,Office 办公套件包含了许多软件如Word, Excel, Access 等。和 Office 一样,vSphere 也是一个软件的集合。他包括了 vCenter, ESXi 和 vSphere 等。所以,这些软件联合起来就是 vSphere。vSphere 不是一个你可以安装使用的软件。它只是一个包含其它组件的集合

  • ESXi 是 vSphere 中最重要的一个组件,允许基本创建和运行虚拟机。ESXi 是虚拟化服务。所有的虚拟机都是运行在 ESXi 服务上面。为了安装,管理和访问这些虚拟机,你需要另外的 vSphere 套件,也就是 vSphere client 或 vCenter。vSphere client允许管理员访问 ESXi 服务并管理虚拟机,。vSphere client 是安装在客户机(也就是管理员的笔记本)上面。vSphere client 被用来连接 ESXi 服务器和管理任务

    VMware ESXi

  • vCenter server 和 vSphere client 很像,但是它和功能更加强大。vCenter server 是安装在 Window 服务器或 Linux 服务器里面。VMware vCenter server 是一个中心化的管理应用。你可以通过它管理所有的虚拟机和 ESXi 物理机。vSphere client 可以通过访问 vCenter Server 来管理 EXSi 服务器

Vmware vcenter未授权任意文件上传(CVE-2021-21972)复现

DevOps

透过自动化“软件交付和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠

图片

微服务架构+ DevOps 模式

img

  • 理解 DevOps
  • DevOps环境搭建:https://mp.weixin.qq.com/s/UK-KfpjwJRkoTNHPBkZp2w

远程部署一些机器,专门用来管理代码,进行上线工作,由运维事先把上线的规则都给定义好了,开发只要按照他的规则都访问这台服务器进行各自的代码合成和发布,自己上线呢,能用代码自动完成的事情就绝不要手动解决,这是每个开发人员都在想的东西。运维需要做的事情,慢慢的都沉淀到了各个平台上面,例如监控,有专门的监控组件和可视化,基础服务例如服务器,CDN,负载均衡等基础服务可以外包到云服务厂商,日志也有专门的日志工具,链路追踪也有专门的组件和可视化,还有网关等,渐渐的,只要这些都配置好了,开发也可以做运维的部分工作,毕竟开发才是最了解代码的人,哪里出了问题看看监控日志,可以最快速度定位到问题,于是DEVOPS开发模式诞生了,开发也是运维

devops平台搭建工具

  • 项目管理(PM):jira,运营可以上去提问题,可以看到各个问题的完整的工作流,待解决未解决等
  • 代码管理:Bitbucket、gitlab,jenkins 或者 K8S 都可以集成 gitlab,进行代码管理,上线,回滚等
  • 持续集成CI(Continuous Integration):Jenkins, [gitlab ci]开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起
  • 持续交付CD(Continuous Delivery):gitlab cd,完成[单元测试]后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中
  • 镜像仓库:VMware Harbor,私服 nexus,JFrog
  • 容器:Docker
  • 编排:K8S
  • 服务治理:Consul、ZooKeeper 提供分布式系统的协调服务、
  • 脚本语言:Python
  • 日志管理:Cat+Sentry,还有种常用的是ELK,Splunk
  • 系统监控:Prometheus,Grafana: 用于可视化大型测量数据的开源平台,经常与Prometheus一起使用,Nagios: 免费的开源IT基础设施监控工具,Zabbix: 一个企业级开源监控解决方案、SolarWinds、Cacti
  • 负载均衡:Nginx、HAProxy
  • 网关:Kong,zuul
  • 链路追踪:Zipkin
  • 产品和UI图:蓝湖
  • 公司内部文档:Confluence
  • 报警:推送到工作群

有了这一套完整的流程工具,整个开发流程涉及到人员都可以无阻碍的进行协调工作了,开发每天到公司,先看看 jira看看线上日志,出了问题看看监控日志,运营同学反馈问题不着急的去JIRA,着急的群里吆喝,产品和UI的图直接蓝湖看,运维关注监控着大盘

大数据架构

大数据-技术常用组件

wxmp

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arduino+ESP8266+华为云物联网平台实现智能开关

前言 最近在做一个物联网项目,涉及到智能开关的开发。目前已经实现简单的TCP通信远程控制,但是考虑到后期的设备管理以及设备通信所需要的技术和服务器的维护成本,我决定将设备接入云平台。本文将详细阐述如何利用华为云的物联网平台&#x…

CI/CD实战-jenkins流水线 6

现最新版本没有该问题的出现 基于RBAC的身份授权: 安装插件: 新建测试用户 修改默认授权策略 新建的用户就没有任何权限 新建角色并授权 添加用户角色身份 pipeline 安装ssh agent插件 由于最新版的插件是有问题的,会有以下报错&#xff…

Memcached分布式内存对象数据库

一 Memcached 概念 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。 二 在架构中的位置 Memcached 处于前端或中间件后…

使用SM4国密加密算法对Spring Boot项目数据库连接信息以及yaml文件配置属性进行加密配置(读取时自动解密)

一、前言 在业务系统开发过程中,我们必不可少的会使用数据库,在应用开发过程中,数据库连接信息往往都是以明文的方式配置到yaml配置文件中的,这样有密码泄露的风险,那么有没有什么方式可以避免呢?方案当然是…

怎样从录制好的视频中提取音频?分离音频只需几秒 音频提取

在当今数字化的世界中,视频与音频的结合已经成为我们生活中不可或缺的一部分。然而,有时我们可能只需要视频中的音频部分,这时候,如何从视频中提取音频就成了一个实用且常见的问题。本文将详细介绍几种常见的方法,帮助…

设计用于驱动12 V汽车接地负载,VN5E160ASTR、VND5E160MJTR、VND5E025AKTR、VND5E050ACKTR 单/双通道高侧驱动器

摘要 意法半导体VIPower系列高侧开关符合汽车应用要求,内嵌先进的控制功能,其新型保护机制适用于各种负载类型及额定功率。 此类开关是汽车系统的理想选择,如:接线盒、内部/外部照明、直流电机驱动等,并适用于任何需…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化

工程项目管理软件是现代项目管理中不可或缺的工具,它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件,该软件采用先进的Vue、Uniapp、Layui等技术框架,涵盖了项目策划决策、规划设计、施工建设到竣工交付…

机器学习笔记(4)—逻辑回归(Logistic Regression)

文章目录 逻辑回归(Logistic Regression)分类问题假说表示判定边界代价函数简化的成本函数和梯度下降多类别分类:一对多 逻辑回归(Logistic Regression) 分类问题 分类问题中,我们要预测的变量 y y y是一…

Hive入门

什么是hive? - Hive是Facebook开发并贡献给Hadoop开源社区的。它是建立在 Hadoop体系架构上的一层 SQL抽象,使得数据相关人 员使用他们最为熟悉的SQL语言就可以进行海量数据的处理、 分析和统计工作 - Hive将数据存储于HDFS的数据文件映射为一张数据库…

【笔记】MJ Prompt

参数 --chaos 10 or --c 10, 0-10, defalut 0 --quality 1 or --q, 0.25-1, defalut 1 --iw 2, 0.5-2, --stylize 100 or --s 100, 0-1000, defalut 100 --cref URL --cw 100, 0-100stylize 风格化,MJ不同的出图模式,有默认的艺术风格,该值…

【jenkins+cmake+svn管理c++项目】windows修改jenkins的工作目录

jenkins默认的存放源码的workspace是: C:\Users\用户\AppData\Local\Jenkins\.jenkins\workspace。由于jenkins会拉取大量的源代码以及编译生成一些文件,我希望我能自己指定目录作为它的工作空间,放在这里显然不太合适。 那么修改目录的方式有…

跟张良均老师学大数据人工智能——数据挖掘集训营开营

集训营特色: 知识点深入浅出,实现以学促用 以业务内容为主线,数据挖掘技能嵌入 多行业项目实战,全面提升职业素养 全程线上辅导,助力熟练掌握技能 惊喜优惠: 限时“六折”! 师傅带练 方向…

宋仕强论道之华强北科技创新说

宋仕强论道之华强北科技创新说,“创新”是深圳市和华强北灵魂,创新再加上敢想敢干永不言败,造就了深圳市经济奇迹和华强北财富神话!首次在深圳市落槌的“土地拍卖”,华强北“一米柜台”赋予独立经营权,把最…

TCP(socket 套接字)编程 1

一、TCP套接字编程架构如下 二、相关代码实现 1、服务器端代码 package com.company;import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket;public class Main {public static void main(String[] args) {…

本地大模型(免安装绿色版)

上一篇文章我们讨论了如何在本地运行大模型 。 安装本地大模型 大部分软件都需要安装,今天是免安装绿色版。 很多人下载不了原版,所以我放百度网盘了。 下载 下载:llava-1.5大模型(7b参数,流量警告:4G) 运行:.\llava-v1.5-7b-…

FlyControls 是 THREE.js 中用于实现飞行控制的类,它用于控制摄像机在三维空间中的飞行。

demo演示地址 FlyControls 是 THREE.js 中用于实现飞行控制的类,它用于控制摄像机在三维空间中的飞行。 入参: object:摄像机对象,即要控制的摄像机。domElement:用于接收用户输入事件的 HTML 元素,通常…

3.26学习总结java初步实现学生管理系统

(该项目通过视频讲解过程中完成,其中将一些操作进行了修改和完善,其目的是为了巩固前面学习java的一些用法,熟悉写项目的过程) 一.项目要求 学生类: 属性:id、姓名、年龄、家庭住址 添加功能: 键盘录入每一个学生信息并添加,需要满足以下要求: ID唯一 删除功能…

总结 | vue3项目初始化(附相应链接)

如何运行 vue 项目:vscode运行vue项目_vscode启动vue项目命令-CSDN博客 vue3项目搭建 目录管理 git管理:vue3项目搭建并git管理_git 新建vue3项目-CSDN博客 目录调整:vue3项目 - 目录调整-CSDN博客 vscode中快速生成vue3模板&#xff1a…

14. Springboot集成RabbitMQ

目录 1、前言 2、什么是RabbitMQ 3、安装RabbitMQ 4、Springboot集成RabbitMQ 4.1、添加依赖 4.2、添加配置 4.3、添加controller,作为生产者 4.4、设置生产者消息确认CallBack 4.5、添加Consumer,作为消费者 4.6、启动程序,访问 1…

【C++】类和对象(四千字解析超完整附实例!!!不看会后悔!!!)

新学期开始了,c课程逐渐深入,今天来了解一下c的类和对象中的封装与数据的初始化和清理! PS.本博客参考b站up黑马程序员的相关课程,老师讲得非常非常好! 封装 封装是C面向对象三大特性之一 1.封装的意义一&#xff1…