构建高可用系统设计OpenStack、Docker、Mesos和Kubernetes(简称K8s)

如果构建高可用、高并发、高效运维的大型系统

大型系统架构设计包括业务层设计、服务层设计、基础架层设计、存储层设计、网络层协同设计来完成。

一、业务层

根据主要业务范畴的分类和特征提取,抽象出独立的业务系统,分别统计系统的用户角色群体、访问量、计算量。

二、服务层

细化和落地业务层的划分、拆分、服务治理

三、架构技术层

构建技术包括:
OpenStack、Docker、Mesos和Kubernetes(简称K8s)都是在云计算和容器化技术领域中常用的工具和平台,它们之间存在着不同的关系和应用场景。

OpenStack:

OpenStack是一个开源的云计算基础设施即服务(IaaS)平台,主要用于构建和管理云计算基础设施,比如虚拟机、存储和网络资源。虽然OpenStack可以与容器技术如Docker配合使用,管理容器化的应用,但OpenStack并不是专门为容器设计的。它主要关注虚拟机和相关的资源管理。

Docker

: Docker是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖环境打包成一个独立的容器,这个容器可以在任何支持Docker的平台上运行,保证了应用在不同环境间的一致性。Docker引擎(也被称为Moby)是容器运行时的实现,是管理容器的核心技术,而Docker公司一直在推动Docker引擎的功能扩展,比如支持多节点集群、容器编排和服务发现等。

Mesos:

Mesos是一个开源的资源管理系统,它可以运行在传统的虚拟机或者容器上,管理跨多个主机的计算资源。Mesos的核心抽象概念是资源(resource),它允许用户运行各种分布式应用程序,包括传统的虚拟机和容器。Mesos可以和Docker一起工作,但它更专注于资源管理和任务调度,而不是容器编排。

Kubernetes(K8s)

: Kubernetes是由Google开源的容器编排平台,它用于自动化应用容器的部署、扩展和管理。Kubernetes管理的是容器集群,它的目标是使容器化的应用在各种环境中都能快速部署、运行和扩展。Kubernetes使用Docker或其他容器运行时来实际运行容器,可以看作是一个更高级别的管理系统,它提供了一系列工具和服务来管理容器的生命周期。
总的来说,OpenStack和Mesos更偏向于传统的IaaS资源管理,而Docker是容器技术的实现,Kubernetes则是为了在容器化环境中提供集群管理和编排的功能。在现代的云计算架构中,这些工具经常会被组合使用,以提供全面的基础设施和应用管理能力。

技术组件间区别和关系

1,关于容器技术与虚拟机:

虚拟机:在容器技术之前,业界的网红是虚拟机,虚拟机技术的代表,是vmware 和openstack
所谓虚拟机就是在你的操作系统里面。装一个软件,然后通过这个软件,再模拟一台甚至多台字电脑出来。字电脑里面可以和正常电脑一样运行程序。并且子电脑与子电脑之间是相互隔离的,互不影响。

容器技术:而容器技术恰好没有这些缺点,他不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙箱”),它启动时间很快,几秒钟就能完成,并且,它对资源的利用率很高(一台主机可以同时运行几千个docker容器),此外,他占用的空间很小,虚拟机一般要几GB到几十GB的空间,而容器只需要MB甚至KB级

两者联系:虚拟机属于虚拟技术,而docker这样的容器技术,也是虚拟技术,属于轻量级的虚拟机

虚拟机的缺点:虚拟机虽然可以隔离出很多子电脑,但是占用空间大,启动更慢,虚拟软件可能还要花钱(如vmware)

2,关于docker

docker是创建容器的工具,是应用容器引擎
负责 搭建,发送,运行 流程、 创建一次,随处随地可用部署。

docker技术的三大核心概念:镜像,容器,仓库
docker仓库, 是一个特殊的文件系统,他除了提供容器运行时候所需要的程序,库,资源,配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量),镜像不包含任何动态数据,其内容在构建之后也不会被改变。

于是,这也就变成了一个公共大仓库,负责对docker镜像管理的是docker registry服务(类似于仓库管理员)所以 dockerRegistry服务对镜像的管理是非常严格的。最常使用的registry公开服务,是官方的docker hub,这也是默认的registry,并拥有大量的高质量的官方镜像。

3,关于k8s:

首先,k8s是一个全新的基于容器技术的分布式架构领先方案,k8s是goole开源的容器集群管理系统(谷歌内部:borg)。在docker技术基础上,为容器化的应用提供部署。
K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。
Kubernetes 这个单词来自于希腊语,含义是舵手或领航员。K8S是它的缩写,用“8”字替代了“ubernete”这8个字符。
虽然docker很火,但是想应用于具体的业务实现,是存在困难的----编排,管理和调度等各个方面,都不容易,于是人们迫切需要一套管理系统,对docker及容器进行更高级更灵活的管理
就在这个时候,k8s出现了
和Docker不同,K8S的创造者,是众人皆知的行业巨头——Google。
然而,K8S并不是一件全新的发明。它的前身,是Google自己捣鼓了十多年的Borg系统。
K8S是2014年6月由Google公司正式公布出来并宣布开源的。
同年7月,微软、Red Hat、IBM、Docker、CoreOS、 Mesosphere和Saltstack 等公司,相继加入K8S。
之后的一年内,VMware、HP、Intel等公司,也陆续加入。
2015年7月,Google正式加入OpenStack基金会。与此同时,Kuberentes v1.0正式发布。

k8s的架构
一个K8S系统,通常称为一个K8S集群(Cluster)。
这个集群主要包括两个部分:
一个Master节点(主节点)
一群Node节点(计算节点)
在这里插入图片描述

一看就明白:Master节点主要还是负责管理和控制。Node节点是工作负载节点,里面是具体的容器。
首先是master节点:
在这里插入图片描述

Master节点包括API Server、Scheduler、Controller manager、etcd。
API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
Scheduler负责对集群内部的资源进行调度,相当于“调度室”。
Controller manager负责管理控制器,相当于“大总管”。

Node节点

在这里插入图片描述

Node节点包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可选),还有就是Pod。
Pod是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口。

Docker,不用说了,创建容器的。
Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。
Kube-proxy,主要负责为Pod对象提供代理。
Fluentd,主要负责日志收集、存储与查询。

前几年,大家以为虚拟机是核心网的终极形态。目前看来,更有可能是容器化。这几年经常说的NFV(网元功能虚拟化),也有可能改口为NFC(网元功能容器化)。
而采用容器之后,很可能只需要一台服务器,创建十几个容器,用不同的容器,来分别运行不同网元的服务程序。

这些容器,随时可以创建,也可以随时销毁。还能够在不停机的情况下,随意变大,随意变小,随意变强,随意变弱,在性能和功耗之间动态平衡。
5G时代,核心网采用微服务架构,也是和容器完美搭配——单体式架构(Monolithic)变成微服务架构(Microservices),相当于一个全能型变成N个专能型。每个专能型,分配给一个隔离的容器,赋予了最大程度的灵活。

5G时代,核心网采用微服务架构,也是和容器完美搭配——单体式架构(Monolithic)变成微服务架构(Microservices),相当于一个全能型变成N个专能型。每个专能型,分配给一个隔离的容器,赋予了最大程度的灵活。

按照这样的发展趋势,在移动通信系统中,除了天线,剩下的部分都有可能虚拟化。核心网是第一个,但不是最后一个。虚拟化之后的核心网,与其说属于通信,实际上更应该归为IT。核心网的功能,只是容器中普通一个软件功能而已。

4,关于openstack
OpenStack是个虚拟化的云操作系统。它把一大块资源打碎了,每小块资源上部署操作系统甚至一些应用。拿出其中一小块,租给你用,你不用关心,也无从知道,你系统的CPU、RAM、DISK在哪台共享的服务器上。常用于IaaS云部署。
公认的云计算IaaS平台,其管理的核心目标对象是机器(虚拟机或物理机),当然也可以管理存储和网络,但那些也大都是围绕着机器所提供的配套资源。近年来容器技术火了之后,OpenStack也开始通过各种方式增加对容器的支持,但目前OpenStack还不被视为管理容器的主流平台。。
OpenStack 社区和 Docker 的结合越来越紧密。然而正如其他回答所示,OpenStack 主要还是用来管理 VM(虚拟机)。
OpenStack 很庞大,底层资源管理能力很强。
Kubernetes 的强项在于容器编排,可以很好解决应用上云的问题。Kubernetes 可以运行在 OpenStack 上。Kubernetes 的好处,推荐来自浙大的这篇文章:请注意,容器技术圈已迈入后Kubernetes时代!
以下是5个OpenStack的重要构成部分:
Nova – 计算服务
Swift – 存储服务
Glance – 镜像服务
Keystone – 认证服务
Horizon – UI服务

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

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

相关文章

mrRobot解题过程

一、靶场环境需要桥接网络 不建议使用校园网,因为使用校园网进行主机探索的时候会出现数不完的主机。 arp-scan -l若是流量少只能用校园网,便在这里看靶机ip 二、端口扫描 我习惯用fscan了(需要自己安装),你们用nma…

解决“ VMware Tools for Windows Vista and later“报错问题

今天,在Win7虚拟机上安装VMware Tools,报"VMware Tools for Windows Vista and later"证书错误,如图(1)所示: 图(1) 虚拟机报" VMware Tools for Windows Vista and later"证书错误 问题原因:VMwa…

C-操作符

操作符种类 在C语言中,操作符有以下几种: 算术操作符 移位操作符 位操作符 逻辑操作符 条件操作符 逗号表达式 下标引用,函数调用 拓展:整型提升 我们介绍常用的几个 算术操作符 (加)&#xff…

时频转换 | Matlab基于S变换S-transform一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式基本介绍 时频转换 | Matlab基于S变换S-transform一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x =

物联网——WatchDog(监听器)

看门狗简介 独立看门狗框图 看门狗原理:定时器溢出,产生系统复位信号;若定时‘喂狗’则不产生系统复位信号 定时中断基本结构(对比) IWDG键寄存器 独立看门狗超时时间 WWDG(窗口看门狗) WWDG特性 WWDG超时时间 由于…

Socket编程:UDP网络编程项目

目录 一、回显服务器 二、翻译器 三、聊天室 一、回显服务器 项目介绍:使用UDPIPv4协议进行Linux网络编程,实现回显服务器和客户端 功能介绍:客户端发送数据,经过服务端再返回到客户端,输出数据 源代码&#xff1…

Hbase2.2.7集群部署

环境说明 准备三台服务器,分别为:bigdata141(作为Hbase主节点)、bigdata142、bigdata143确保hadoop和zookeeper集群都先启动好我这边的hadoop版本为3.2.0,zookeeper版本为3.5.8 下载安装包 下载链接:In…

STM32 BootLoader 刷新项目 (十二) Option Byte之FLASH_OPTCR-命令0x58

STM32 BootLoader 刷新项目 (十二) Option Byte之FLASH_OPTCR-命令0x58 STM32F407芯片的OPTION Byte全面解析 STM32F407芯片是STMicroelectronics推出的一款功能强大的微控制器,广泛应用于工业控制、通信和消费电子等领域。其中,OPTION Byte&#xff0…

Matlab 绘制雷达图像完全案例和官方教程(亲测)

首先上官方教程链接 polarplothttps://ww2.mathworks.cn/help/matlab/ref/polarplot.html 上实例 % 定义角度向量和径向向量 theta linspace(0, 2*pi, 5); r1 [1, 2, 1.5, 2.5, 1]; r2 [2, 1, 2.5, 1.5, 2];% 绘制两个雷达图 polarplot(theta, r1, r-, LineWidth, 2); hold …

【C/C++】内存管理详解:从new/delete到智能指针的全面解析

文章目录 更多文章C/C中的传统内存管理方式new和delete运算符malloc和free函数传统内存管理的弊端 智能指针的崛起智能指针的定义与作用C11引入的标准智能指针 详解C标准智能指针std::unique_ptr特点使用方法适用场景 std::shared_ptr特点使用方法适用场景 std::weak_ptr特点使…

Python实现2048小游戏

2048是一个单人益智游戏,目标是移动和合并数字,以达到2048。 1. 实现效果 Python实现2048小游戏 2. 游戏规则 简单地理解一下规则 基本规则: 4x4棋盘,每个格可包含一个2的倍数的数字,初始时为空,表示0。…

Wireshark常用功能使用说明

此处用于记录下本人所使用 wireshark 所可能用到的小技巧。Wireshark是一款强大的数据包分析工具,此处仅介绍常用功能。 Wireshark常用功能使用说明 1.相关介绍1.1.工具栏功能介绍1.1.1.时间戳/分组列表概况等设置 1.2.Windows抓包 2.wireshark过滤器规则2.1.wiresh…

像素流送api ue多人访问需要什么显卡服务器

关于像素流送UE推流,在之前的文章里其实小芹和大家聊过很多,不过今天偶然搜索发现还是有很多小伙伴,在搜索像素流送相关的问题,搜索引擎给的提示有这些。当然这些都是比较短的词汇,可能每个人真正遇到的问题和想获取的…

基于Vue3+Element Plus 实现多表单校验

使用场景 表单校验在日常的开发需求中是一种很常见的需求,通常在提交表单发起请求前校验用户输入是否符合规则,通常只需formRef.value.validate()即可校验,但是,例如一些多步骤表单、动态表单、以及不同的用户角色可能看到不同的表…

ONVIF协议网络摄像机客户端使用gsoap获取RTSP流地址GStreamer拉流播放

什么是ONVIF协议 ONVIF(开放式网络视频接口论坛)是一个全球性的开放式行业论坛,旨在促进开发和使用基于物理IP的安全产品接口的全球开放标准。 ONVIF规范的目标是建立一个网络视频框架协议,使不同厂商生产的网络视频产品完全互通。…

【Datawhale组队学习】模型减肥秘籍:模型压缩技术6——项目实践

NNI (Neural Network Intelligence) 是由微软开发的一个开源自动化机器学习(AutoML)库,用于帮助研究人员和开发人员高效地进行机器学习实验。它提供了一套丰富的工具来进行模型调优、神经网络架构搜索、模型压缩以及自动化的超参数搜索。 1…

通讯专题4.1——CAN通信之计算机网络与现场总线

从通讯专题4开始,来学习CAN总线的内容。 为了更好的学习CAN,先从计算机网络与现场总线开始了解。 1 计算机网络体系的结构 在我们生活当中,有许多的网络,如交通网(铁路、公路等)、通信网(电信、…

【51单片机】程序实验910.直流电机-步进电机

主要参考学习资料:B站【普中官方】51单片机手把手教学视频 前置知识:C语言 单片机套装:普中STC51单片机开发板A4标准版套餐7 码字不易,求点赞收藏加关注(•ω•̥) 有问题欢迎评论区讨论~ 目录 程序实验9&10.直流电机-步进电机…

Qt支持RKMPP硬解的视频监控系统/性能卓越界面精美/实时性好延迟低/录像存储和回放/云台控制

一、前言 之前做的监控系统,已经实现了在windows上硬解码比如dxva2和d3d11va,后续又增加了linux上的硬解vdpau的支持,这几种方式都是跨系统的硬解实现方案,也是就是如果都是windows系统,无论X86还是ARM都通用&#xf…

Web API基本认知

作用和分类 作用:就是使用JS去操作html和浏览器 分类:DOM(文档对象模型)、BOM(浏览器对象模型) 什么是DOM DOM(Document Object Model ——文档对象模型)是用来呈现以及与任意 HTM…