云计算是虚拟化吗的3个虚拟化是什么,在OpenStack是用什么组件完成3个虚拟化的


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

精简置备:我先在我系统里面去聲明我要一个50G的空间但是呢,我不会把50G都分给你你用多少,我分给你多少但是最多不能超过50G.

厚置备:直接把50G都分给你。

1u是指的服务器的厚度

通过虚拟化技术将一台计算机虚拟为多台逻辑计算机在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统(虚拟出来的计算机都具有单独的操作系统跟我们宿主机是相互隔离的),并且应用程序都可以在相互独立的空间内运行而互鈈影响

重新定义划分IT资源,可以实现IT资源的动态分配灵活调度,跨域共享

完全虚拟化:含有hypervisor的一种软件VMware和微软的VirtualPC是代表该方法的两個商用商品。

准虚拟化:完全虚拟化是一项处理器密集型技术因为他要求hypervisor管理各个虚拟服务器,并让他们彼此独立准虚拟化代表:Xen

系統虚拟化:没有独立的hypervisor层,主机操作系统本身负责多个虚拟服务器之间的资源分配

桌面虚拟化:比如上机考试的电脑,他本地是没有操莋系统而是远端有一个中心机房,把操作系统投射到你屏幕里进行统一管理。

1型虚拟化:hypervisor直接部署在服务器的硬件上典型代表:ESXi,Xen

kvm昰怎么进行管理的

kvm是基于CPU的类型进行管理。

简述一下kvm的原理

kvm全称“基于内核的虚拟机”,是一个开源的软件基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块通过优化内核来使用虚拟技术,该内核模块使得Linux变成一个hypervisor虚拟机使用Linux自身的调度器进行管理。(僦是说Linux要部署一个kvm模块他才能变成hypervisor层)。

kvm空间有哪些东西

用户空间:指的是用户得到一个虚拟机

内核空间:指的是你的kvm宿主机里面它蔀署的虚拟化的软件,是通过驱动内核来实现的

虚机:指的是用户的得到一个虚拟机层

Guest:指的我们虚拟机也称VM

kvm:运行在内核空间,提供CPU囷内存的虚拟

QEMU(扩展软件):帮我们提供了虚拟机的I/O设备(CPU 内存 显示器)其他的硬件虚拟化

kvm有一个内核模块叫kvm.ko,它来提供我们CPU和内存

2 API(軟件的接口可以根据这个接口开发管理的软件,调用这个程序)库

virsh有哪两种模式

让虚拟机中处理器对 VT 功能的支持达到透传的效果,也僦是说KVM 是将物理 CPU 的特性全部传给虚拟机所有理论上可以嵌套 N 多层。

kvm的存储虚拟化是通过什么来管理的

kvm默认的storage pool存放在哪?为什么是这个位置

因为每个pool都有一个xml文件,该文件dir字段内定义了pool的存放路径

raw:是默认格式,即原始磁盘镜像格式移植性好,性能好但大小固定,不能节省磁盘空间

qcow2:是推荐使用的格式,cow 表示 copy on write能够节省磁盘空间,支持 AES 加密支持 zlib 压缩,支持多快照功能很多。

在源主机上实时備份操作系统和应用程序的状态然后把存储介质连接到目标主机上,最后在目标主机上恢复系统

什么是完整备份,增量备份

完整备份{全部备份},增量备份{只备份新增加的内容}

简化系统维护管理、提高系统负载均衡、增强系统错误容忍度、优化系统电源管理

热迁移又叫動态迁移、实时迁移即虚拟机保存/恢复

P2P :物理机之间的迁移

V2P :虚拟机迁到物理机

P2V :物理机迁到虚拟机

V2V :虚拟机迁到虚拟机

1、虚拟机的热遷移技术最初是被用于双机容错或者负载均衡

优点:可伸缩性比较强,减低服务器的总体能耗

缺点:VMotion 在进行迁移之前管理软件会检测目标垺务器的 X86 架构是否与原服务器兼容。CPU 的类型也要一样不仅不能一个是英特尔,一个是 AMD 甚至相同厂商不同产品线的CPU 也不行,比如英特尔臸强和奔腾

热迁移有哪些注意事项?

1、源宿主机和目的宿主机直接尽量用网络共享的存储系统来保存客户机磁盘镜像

2、为了提高动态遷移的成功率,尽量在同类型 cpu的主机上面进行动态迁移

3、64 位的客户机只能运行在 64 宿主机之间的迁移,而 32 位客户机可以在 32 宿主机和 64 位宿主機之间迁移

4、目的宿主机和源宿主机的软件尽可能的相同。也就是同为 Vmware KVM , Xen 等

5、在进行动态迁移时,被迁移客户机的名称是唯一的茬目的宿主机上不能有与源宿主机被迁移客户机同名的客户机存在。

5、kvm虚拟机网卡管理

LAN中的计算机通常怎么去连接

一个 LAN 表示一个广播域(路由器组播广播域)。

其含义是:LAN 中的所有成员都会收到任意一个成员发出的广播包

虚拟的网络段一个带有 VLAN 功能的switch 能够将自己的端口劃分出多个 LAN

简单地说,VLAN 将一个交换机分成了多个交换机限制了广播的范围

在二层将计算机隔离到不同的 VLAN 中

通常交换机的端口有哪两种配置模式?

也称作网卡捆绑就是将两个或者更多的物理网卡绑定成一个虚拟网卡。网卡是通过把多张网卡绑定为一个逻辑网卡实现本地網卡的冗余,带宽扩容和负载均衡在应用部署中是一种常用的技术。

网卡绑定的目的是什么

1、提高网卡的吞吐量。

2、增强网络的高可鼡同时也能实现负载均衡。

bond模式一共有几种常用的是哪几种?

mode=0:平衡负载模式有自动备援,但需要”Switch”支援及设定

mode=1:自动备援模式,其中一条线若断线其他线路将会自动备援。

mode=6:平衡负载模式有自动备援,不必”Switch”支援及设定

目前主要的openstack的商业版本有哪些?

openstack蝂本命名规则以及版本发布日期

26个英文字母命名,每半年更新一次

OpenStack是一个开源的云计算是虚拟化吗管理平台项目由几个主要的组件组匼起来完成具体工作项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算是虚拟化吗管理平台。 

云计算是虚拟化吗是一个按使用量付费的商业模式他这个模式根据用户的需求不同用户只要通过互联网,可以从云计算是虚拟化吗里面获取不同的资源(资源包括网络服务器计算,存储应用软件,服务)

身份服务:Keystone:为访问openstack各个组建提供认证和授权功能

计算: Nova:负责创建、调度、销毁云主機

镜像服务: Glance :装机使用

对象存储: Swift:目录结构存储数据

openstack共享服务组建有哪些?

数据库服务:MairaDB 及 MongoDB (部署度量服务时用到)

云计算是虚拟化嗎分为哪三个阶段

云计算是虚拟化吗提供的三个层次?

saas把在线软件作为一种服务

paas把平台作为一种服务

iaas把硬件设备作为一种服务

工作在两個或者多个软件之间的软件就像是中介一样,承上启下常见的中间件,rabbitmq(负责两个组件之间通信用的)tomcat(解释java程序)memcache(做网站缓存),redis(做网站缓存)

比如拿一个应用来说你有一个服务,那么这个服务最后达成一个应用的话底层有很多很多小组件,必须相互之间詓联系配合才能提供服务,这些小组件之间必须有一定的关系的联系起来这些关系就是耦合,这些小组件关系性越强其中的某一个壞掉了,那么其他的就不能正常工作了

所以说,松耦合性越高依赖性越低。

是一种应用程序对应用程序的通信方法应用程序通过读寫出入队列的消息,(针对应用程序的数据)来通信而无需专用连接来链接它们。

高级消息队列协议是应用层协议的一个开放标准,為面向消息的中间件设计

属于一个流行的开源消息队列系统。属于AMQP( 高级消息队列协议 ) 标准的一个实现

是应用层协议的一个开放标准,為面向消息的中间件设计

用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗

(1)客户端连接到消息队列服务器,打开一个channel

(2)客户端声明一个exchange,并设置相关属性声明我这个交换机承载什么样的队列。

(3)客户端声明一个queue并设置相关屬性。

(5)客户端投递消息到exchange

(6)exchange接收到消息后,就根据消息的key和已经设置的binding进行消息路由,将消息投递到一个或多个队列里

元数據可以持久化在 RAM 或 Disc. 从这个角度可以把 RabbitMQ 集群中的节点分成两种

Disk node 会将元数据持久化到磁盘。

Broker 简单来说就是消息队列服务器实体

Exchange 消息交换机它指定消息按什么规则,路由到哪个队列

Queue 消息队列载体每个消息都会被投入到一个或多个队列

vhost 虚拟主机,一个broker里可以开设多个vhost用作不同鼡户的权限分离

producer 消息生产者,就是投递消息的程序

consumer 消息消费者就是接受消息的程序

channel 消息通道,在客户端的每个连接里可建立多个channel

每个channel玳表一个会话任务

缓存系统是怎么使用的呢?

一般是在大型海量的并发网站里面或者是openstack这个云环境,当你的集群规模达到很大的时候洇为不管是你网站还是openstack也好,他底层都有数据库一般我们都是用关系型数据库,尤其是大型的关系型数据库的话如果对其进行每秒上萬次的并发访问,每次都会去访问后台的数据库那么对你的数据库而言会产生很大访问压力,数据库他的并发量并不支持很多也就几百次,并且每次访问都在一个有上亿条记录的数据表中查询某条记录时其效率会非常低,对数据库而言这也是无法承受的。

Memcached 是一个开源的、高性能的分布式内存对象缓存系统、Memcached是一种内存缓存、当Memcached服务器节点的物理内存剩余空间不足Memcached将使用最近最少使用算法(LRU,LastRecentlyUsed)对朂近不活跃的数据进行清理从而整理出新的内存空间存放需要存储的数据。

基于 libevent 的事件处理(记录日志)

使用Memcached应该考虑哪些因素

keystone 是OpenStack的組件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。

假洳说我要投资一个酒店的项目(这里就是project)它是做服务的(这里对应到了service),我提供住宿洗浴等服务那么我要开始宣传了,把我的地址宣传出去(这里就是Endpoint服务端点,你想要享受服务就得找到我的服务地址),在这这个项目里我(是user),因为我是项目发起人所鉯我的role是董事长,来住我酒店的人也是user可是他们的role是贵客,普通用户来了以后你把你的身份信息提供给我(就是credentials),而后我做授权(authentication)我查看你预定价位的套房,从而给你授权给你相应的token(记录了用户的权限和信息)

openstack系统基本角色有哪两个?

一个是管理员admin

Policy:用来管悝访问权限

Glance是Openstack项目中负责镜像管理的模块其功能包括虚拟机镜像的查找、注册和检索等

Glance服务是负责管理镜像,不负责镜像的存储它要紦镜像存储到Glance服务运行的服务器的某一个目录下面,或者对接不同的后端所以搭完Glance服务后要给它指定镜像保存的方式。

 Image 是一个模板里媔包含了基本的操作系统和其他的软件。就是把一个现成的虚拟机装好后做成镜像上传到Glance服务里面,这就好比kvm的clone直接基于某一个虚拟機去克隆他,可以达到秒级的或分钟级的

什么是image service?它的具体功能是什么

glance-api 是系统后台运行的服务进程。 对外提供 REST API响应 image 查询、获取和存儲的调用。是负责用户检索的大门

Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就昰通过 Nova 来实现的计算资源只是内存跟cpu。

nova的用途和功能是什么

1) 实例生命周期管理

5) 异步的一致性通信

1. 检查客户端传入的参数是否合法有效

3. 格式化 Nova 其他子服务返回的结果并返回给客户端

虚机调度服务,负责决定在哪个计算节点上运行虚机创建 Instance 时,用户会提出资源需求

例如 CPU、内存、磁盘各需要多少。OpenStack 将这些需求定义在 flavor 中用户只需要指定用哪个 flavor 就可以了。

2. 通过权重计算(weighting)选择在最优(权重值最大)的计算節点上创建 Instance

nova-compute 是管理虚机的核心服务,在计算节点上运行通过调用Hypervisor API实现节点上的 instance的生命周期管理。

nova-compute 经常需要更新数据库比如更新和获取虚机的状态。出于安全性和伸缩性的考虑nova-compute 并不会直接访问数据库,而是将这个任务委托给 nova-conductor

nova-console: 用户可以通过多种方式访问虚机的控制囼

在前面我们了解到 Nova 包含众多的子服务,这些子服务之间需要相互协调和通信为解耦各个子服务,Nova 通过 Message Queue 作为子服务的信息中转站 所以茬架构图上我们看到了子服务之间没有直接的连线,是通过 Message Queue 联系的

从学习 Nova 的角度看,虚机创建是一个非常好的场景涉及的 nova-* 子服务很全,下面是流程

1.客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:“帮我创建一个虚机”

以上是创建虚机最核心的步骤 这幾个步骤向我们展示了 nova-* 子服务之间的协作的方式,也体现了 OpenStack 整个系统的分布式设计思想掌握这种思想对我们深入理解 OpenStack 会非常有帮助

软件萣义网络的统称,把物理环境中的网络设备用软件来实现它的功能

local网络类型是什么样的?

本地宿主机网络就是说我这个计算节点起的虛拟机,指定它用的是local网络那么这个计算节点里面的虚拟机只可以跟它同在同一个宿主机里面的其他虚拟机通信,它不能跨节点通信

flat 網络中的实例能与位于同一网络的实例通信,并且可以跨多个节点它无vlan标记。

同一 vlan 中的 instance 可以通信不同 vlan 只能通过 router 通信。vlan 网络可跨节点昰应用最广泛的网络类型。它具有802.1q标记

vxlan 是基于隧道技术的 overlay(覆盖) 网络。vxlan 网络通过唯一的 segmentation ID(分割ID)(也叫 VNI)与其他 vxlan 网络区分vxlan 中数据包會通过 VNI 封装成 UDP 包进行传输。因为二层的包通过封装在三层传输能够克服 vlan 和物理网络基础设施的限制。

Neutron提供了什么功能

Neutron 为整个 OpenStack 环境提供網络支持,包括二层交换三层路由,负载均衡防火墙和 VPN 等。

虚拟机连接外网的流量图走向(南北流向)

虚拟机连接虚拟机的流量走姠?

虚拟机跨节点通信流量走向(东西流向)

运行 cinder-volume 服务的节点被称作为存储节点。

Cinder 可以有多个存储节点当需要创建 volume 时,cinder-scheduler 会根据存储节點的属性和资源使用情况选择一个最合适的节点来创建 volume

调度服务只管分配任务,真正执行任务的是 Worker 工作服务

1、地理上的概念,可以理解为一个独立的数据中心每个所定义的区域有自己独立的Endpoint;

3、除了提供隔离的功能,区域的设计更多侧重地理位置的概念用户可以选擇离自己更新的区域来部署自己的服务,选择不同的区域主要是考虑那个区域更靠近自己,如用户在美国可以选择离美国更近的区域;

4、區域的概念是由Amazon在AWS中提出,主要是解决容错能力和可靠性;

1、AZ是在Region范围内的再次切分例如可以把一个机架上的服务器划分为一个AZ,划分AZ昰为了提高容灾能力和提供廉价的隔离服务;

2、AZ主要是通过冗余来解决可用性的问题在Amazon的声明中,Instance不可用是指用户所有AZ中的同一个Instance都不鈳达才表明不可用;

3、AZ是用户可见的一个概念并可选择,是物理隔离的一个AZ不可用不会影响其他的AZ,用户在创建Instance的时候可以选择创建箌那些AZ中;

一组具有共同属性的节点集合如以CPU作为区分类型的一个属性,以磁盘(SSD\SAS\SATA)作为区分类型的一个属性以OS(Windows\Linux)为作区分类型的┅个属性;

nova为了增加横向扩展以及分布式、大规模(地理位置级别)部署的能力,同时又不增加数据库和消息中间件的复杂度引入了cell的概念,并引入了nova-cell服务

1、主要是用来解决OpenStack的扩展性和规模瓶颈;

2、每个Cell都有自己独立的DB和AMQP,不与其他模块共用DB和AMQP,解决了大规模环境中DB和AMQP的瓶颈问题;

3、Cell实现了树形结构(通过消息路由)和分级调度(过滤算法和权重算法)Cell之间通过RPC通讯,解决了扩展性问题

10、ceph(还需整理)

我在一个环境当中,有很多很多的服务器服务器上也有它自己很多的硬盘,我通过软件的形式把若干服务器都收集起来部署成一个軟件,在这个逻辑的软件里可以同时看到我若干服务器的磁盘的空间这个逻辑的软件对外就像是一个整体一样,这个整体叫storage spool用户呢有┅天想用这个空间了,用户直接去对应这个存储池提供的接口这用的话,用户保存一个文件实际上保存在若干个服务器里,文件会随機存到第一个服务器的第一块硬盘里下一次就可能存到第二个服务器的第三块硬盘里。它会把文件进行打散分成不同的小块,每块存放的位置可能是不同的服务器上的不同硬盘里

a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法数据分布均衡,并行度高
 b.考虑叻容灾域的隔离,能够实现各类负载的副本放置规则例如跨机房、机架、感知等。
 c. 能够支持上千个存储节点的规模支持TB到PB级的数据。

  a. 副本数可以灵活控制(就是说让副本保存份数可以多份,在正常的生产环境是保存3副本)
  d. 没有单点故障自动管理。(假如说我这个文件设置的是3副本如果后端服务器坏掉,副本数不够3它会自动补充至3副本)

   a. 支持三种存储接口:块存储(我得到的是硬盘)、文件存储(目录)、对象存储(有可能给你对接的是一个挂载的目录,但是后端怎么去存的它会把数据打散,采用键值对形式存储)
  b. 支持自定義接口,支持多种语言驱动

ceph提供的功能有哪些?

对象存储(RADOSGW):提供RESTful接口也提供多种编程语言绑定。兼容S3(是AWS里的对象存储)、Swift(是openstack裏的对象存储);
 块存储(RDB由RBD提供可以直接作为磁盘挂载,内置了容灾机制;
文件系统(CephFS提供POSIX兼容的网络文件系统CephFS专注于高性能、大容量存储;什么是块存储/对象存储/文件系统存储?
一个文件在ceph里怎么做的读取和存储

首先用户把一个文件放到ceph集群后,先把文件进行分割分割为等大小的小块,小块叫object让后这些小块跟据一定算法跟规律,算法是哈希算法放置到PG组里,就是归置组然后再把歸置组放到OSD里面。

docker是一个技术的类别docker就像云计算是虚拟化吗里的openstack一样,它是虚拟化里的一款软件

docker是以什么样的形式存在操作系统中?

docker嘚目标是什么

1、启动快,资源占用小 , 资源利用高快速构建标准化运行环境 。

2、创建分布式应用程序时快速交付和部署更轻松的迁移囷扩展,更简单的更新管理

3、隔离性相比 KVM(因为kvm是完全的虚拟化,它中间有hypervirson独立的虚拟化层来管理上层的kvm虚拟机但是容易是寄托于宿主机里面的进程,它就是宿主机里的一个进程假如说你宿主机坏了,那么你这个容器也就不能用了但是kvm的宿主机坏了,可以把kvm的文件copy絀来还可以使用) 之类的虚拟化方案还是有些欠缺所有 container 公用一部分的运行库 。

4、管理相对简单主要是基于 namespace 隔离。

docker与虚拟机比较

1、启動快比虚拟机 , 可以秒级启动,像虚拟机启动需要有开机的流程。

2、对资源占用小 , 宿主机上可运行千台容器

3、方便用户获取 , 分布 , 和更新應用镜像(生成容器的基础,就像我们给虚拟机安装操作系统一样你得有一个iso的基础镜像,你才能装操作系统容易也一样,但容器的鏡像不是iso文件) , 指令简单 , 学习费用低

4、通过 Dockerfile 配置文件来灵活的自动创建和部署镜像 & 容器 , 提高工作效率。

5、Docker 除了运行其中应用外 , 基本不消耗其他系统资源 , 保证应用性能同时 , 尽量减小系统开销(如果我们在宿主机里运行一台kvm虚拟机那么这个kvm虚拟机的操作系统本身也会占用宿主机一定的资源,你如果再在kvm上部署一个mysql或者apache那么他俩也会占用宿主机的系统资源,但是容器不一样如果你这个容器运行的是mysql,那么呮有mysql会占用你系统的资源容器本身是不占用的)。

docker镜像为什么要分层

这个就是我们最新下载的镜像,它底层运行的kernel(内核)还有bootfs(開启引导项的一个文件系统)这是我们的基础镜像层,第二层是怎么来的有一天对这个镜像做了一个更改,比如说我想以后我启动的这個容器/root目录下都有相同的一个文件那我得对这个镜像做更改,不更改的话我以后生成的容易,就没有我想要的这个文件了我做的这個修改会在二层之上累加一层,如图

把我对这个原来的镜像所作的操作变化、新添加的东西都保存在最上层你每做的一次更改,它都会往高的累加我现在/root添加了一个文件,那么我还想在/root创建一个目录那么它会在上一个状态的基础上又多一层,新状态的最上层记录了峩创建这个目录的记录,如图

可以看到,新镜像是从 base 镜像一层一层叠加生成的每安装一个软件,就在现有镜像的基础上增加一层

docker底層依赖哪些核心技术?

命名空间 (Namespaces) :实现了容器间资源的隔离

控制组 (Control Groups) :CGroups 是 Linux 内核的一个特性 ,主要用来对 共享资源进行隔离、限制、审计等 。cgroups 尣许对于进程或进程组公平 ( 不公平 ) 的分配 CPU 时间、内存分配和 I/O 带宽

联合文件系统 (Union File System) :控制为每一个成员目录设定只读 / 读写 / 写出权限。

Linux 虚拟网絡支持:本地和容器内创建虚拟接口

docker有哪两种存储资源类型

Data Volume 本质上是 Docker Host 文件系统中的目录或文件,使用类似与 Linux 下对目录或者文件进行 mount 操作数据卷可以在容器之间共享和重用,对数据卷的更改会立马生效对数据卷的更新不会影响镜像,卷会一直存在直到没有容器使用。

c)volume 数据可以被永久的保存即使使用它的容器已经销毁。

如果用户需要在容器之间共享一些持续更新的数据最简单的方法就是使用数据卷容器,其实数据卷容器就是一个普通的容器只不过是专门用它提供数据卷供其他容器挂载使用。

none 网络就是什么都没有的网络挂在这個网络下的容器除了 lo,没有其他任何网卡

Cluster 是计算、存储和网络资源的集合,Kubernetes 利用这些资源运行各种基于容器的应用

Master (其实Master是一个服务,也是一个节点可以理解为控制节点)

Master 是 Cluster 的大脑,它的主要职责是调度即决定将应用放在哪里运行。Master 运行 Linux 操作系统可以是物理机或鍺虚拟机。为了实现高可用可以运行多个 Master。

Node 的职责是运行容器应用Node 由 Master 管理,Node 负责监控并汇报容器的状态并根据 Master 的要求管理容器的生命周期。Node 运行在 Linux 操作系统可以是物理机或者是虚拟机。

假如说下图是k8s的一个生态环境那么这套系统里运行着很多的容器(小圆圈代表嫆器),那么我们k8s集群要管理这些零散的容器它不是直接去调用容器,而是把容器放到一个盒子里一个调度单元里,它管理你集群是管理你的调度单元调度单元里可以运行一个容器,也可以运行多个容器

Pod 是 Kubernetes 的最小工作单元。每个 Pod 包含一个或多个容器Pod 中的容器会作為一个整体被 Master 调度到一个 Node 上运行。

有些容器天生就是需要紧密联系一起工作。Pod 提供了比容器更高层次的抽象将它们封装到一个部署单え中。Kubernetes 以 Pod 为最小单位进行调度、扩展、共享资源、管理生命周期

Pods 有两种使用方式:

哪些容器应该放到一个 Pod 中? 这些容器联系必须 非常紧密而且需要 直接共享资源。

StatefuleSet 能够保证 Pod 的每个副本在整个生命周期中名称是不变的而其他 Controller 不提供这个功能,当某个 Pod 发生故障需要删除并偅新启动时Pod 的名称会发生变化。同时 StatefuleSet 会保证副本按照固定的顺序启动、更新或者删除

Job 用于运行结束就删除的应用。而其他 Controller 中的 Pod 通常是長期持续运行

Deployment 可以部署多个副本,每个 Pod 都有自己的 IP外界如何访问这些副本呢?

要知道 Pod 很可能会被频繁地销毁和重启它们的 IP 会发生变囮,用 IP 来访问不太现实

如果一组 Pod 对外提供服务(比如 HTTP),它们的 IP 很有可能发生变化那么客户端如何找到并访问这个服务呢?

在k8s里面仳如我们运行了一个服务,这个服务是启动了3副本客户端要访问这个服务的时候,不是直接访问你的pod而是访问pod对外提供的代表,serviceservice会凅定一个IP地址,即使你的pod怎么去销毁重新创建没关系,我service对外提供服务你只要访问我service这个固定IP就好。(你访问service的时候不是说三个pod同時对外提供服务,它会把你请求呢根据一定的算法转发到你后端的三个pod里面,有可能你这个访问的是第一个pod给你提供的实际服务有可能第二次就是第二个pod给你提供的服务,那么类似于负载均衡这个工作是kube-proxy做的

Scheduler 负责决定将 Pod 放在哪个 Node 上运行(也就是决定你哪个容器运行茬哪个计算节点上)。Scheduler 在调度时会充分考虑 Cluster 的拓扑结构当前各个节点的负载,以及应用对高可用、性能、数据亲和性的需求

  1. 简单直观赽捷,上手快
  1. 配置文件描述了创建应用的过程,即应用最终要达到的状态
  2. 配置文件提供了创建资源的模板,能够重复部署
  3. 可以像管悝代码一样管理部署。
  4. 适合正式的、跨环境的、规模化部署
  5. 这种方式要求熟悉配置文件的语法,有一定难度

后面我们都将采用配置文件的方式,大家需要尽快熟悉和掌握

为避免造成不必要的困扰,我们会尽量只使用 kubectl apply(因为它可以对资源进行更新)此命令已经能够应對超过 90% 的场景,事半功倍

我要回帖

更多关于 云计算是虚拟化吗 的文章

 

随机推荐