云计算技术应用基础 课件 第5、6章 云计算管理平台、云安全与新兴技术_第1页
云计算技术应用基础 课件 第5、6章 云计算管理平台、云安全与新兴技术_第2页
云计算技术应用基础 课件 第5、6章 云计算管理平台、云安全与新兴技术_第3页
云计算技术应用基础 课件 第5、6章 云计算管理平台、云安全与新兴技术_第4页
云计算技术应用基础 课件 第5、6章 云计算管理平台、云安全与新兴技术_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算技术应用基础(微课版)工业和信息化精品系列教材——云计算技术第5章云计算管理平台OpenStack云计算平台管理Linux操作系统Docker容器技术技能实践5.1.1Linux概述1.Linux简介Linux的早期版本并没有考虑用户的使用情况,只提供了最核心的框架,使得Linux编程人员可以享受编写内核的乐趣,这也促成了Linux操作系统内核的强大与稳定。随着互联网的发展与兴起,Linux操作系统迅速发展,许多优秀的程序员都加入了Linux操作系统的编写行列,随着编程人员的扩充和完整的操作系统基本软件的出现,Linux操作系统开发人员认识到Linux已经逐渐变成一个成熟的操作系统平台。1994年3月,其内核1.0的推出,标志着Linux第一个版本的诞生。Linux一开始要求所有的源代码必须公开,且任何人均不得从Linux交易中获利。Linux诞生之后,发展迅速,一些机构和公司将Linux内核、源代码以及相关应用软件集成为一个完整的操作系统,便于用户安装和使用,从而形成Linux发行版本,这些发行版本不仅包括完整的Linux操作系统,还包括文本编辑器、高级语言编译器等应用软件,以及X-Windows图形用户界面等。Linux在桌面应用、服务器平台、嵌入式应用等领域得到了良好发展,并形成了自己的产业环境,包括芯片制造商、硬件厂商、软件提供商等。Linux具有完善的网络功能和较高的安全性,继承了UNIX操作系统卓越的稳定性表现,在全球各地服务器平台上的市场份额不断增加。5.1.1Linux概述2.Linux的体系结构Linux内核其为靠近硬件的内核,即Linux操作系统常驻内存部分。Linux内核是整个操作系统的核心,由它实现对硬件的抽象和访问调度。它为上层调用提供统一的虚拟机接口,在编写上层程序的时候不需要考虑计算机使用何种类型的硬件,也不需要考虑临界资源问题。用户应用程序其位于整个系统的顶层,是Linux操作系统上运行的应用程序的集合,常见的用户应用程序有多媒体处理应用程序、文字处理应用程序、网络应用程序等。硬件系统其包含Linux使用的所有物理设备,如CPU、内存、硬盘和网络设备等。操作系统服务其位于用户应用程序与Linux内核之间,主要是指那些为用户提供服务且执行操作系统部分功能的程序,为用户应用程序提供系统内核的调用接口。窗口系统、Shell命令解释系统、内核编程接口等就属于操作系统服务的子系统,这一部分也称为系统程序。Linux采用分层设计,包括4层。每层只能与相邻的层通信,层间具有从上到下的依赖关系,靠上的层依赖靠下的层,但靠下的层并不依赖于靠上的层,各层系统功能如下。5.1.1Linux概述3.Linux的版本RedHatLinux(红帽Linux)是现在非常著名的Linux版本,其不但创造了自己的品牌,而且有越来越多的用户使用。2014年年底,RedHat公司推出了当时最新的企业版Linux操作系统,即RedHatEnterpriseLinux7,简称RHEL7。社区企业操作系统(CommunityEnterpriseOperatingSystem,CentOS)是Linux发行版之一,它是基于RedHatEnterpriseLinux,依照开放源代码规定释出的源代码编译而成的。Fedora是由Fedora项目社区开发并由RedHat赞助的Linux发行版。Fedora包含在各种免费和开源许可下分发的软件。Fedora是RedHatEnterpriseLinux发行版的上游源。RedHatLinuxCentOSFedora5.1.1Linux概述3.Linux的版本Mandrake于1998年由一个推崇Linux的小组创立,它的目标是尽量让工作变得更简单。Mandrake提供了一个优秀的图形安装界面,它的最新版本中包含了许多Linux软件包。Debian诞生于1993年8月13日,它的目标是提供一个稳定容错的Linux版本。Debian以其稳定性著称,虽然它的早期版本Slink有一些问题,但是它的现有版本Potato已经相当稳定了。Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(可译为乌班图),意思是“人性”“我的存在是因为大家的存在”,是非洲一种传统的价值观,类似于我国的“仁爱”思想。MandrakeDebianUbuntu5.1.1Linux概述4.Linux的特性开放性多任务设备独立性强可靠的安全系统良好的可移植性丰富的网络功能良好的用户界面多用户支持多文件系统5.1.2熟悉Ubuntu桌面环境1.系统登录、注销与关机状态菜单01OPTION首次登录Ubuntu操作系统时,选择用户并输入密码进行登录,界面中会显示Ubuntu的新特性。登录Ubuntu桌面环境。注销02OPTION关机03OPTION登录Ubuntu桌面环境5.1.2熟悉Ubuntu桌面环境2.活动概览视图处于活动概览视图时,顶部面板中左上角的“活动”按钮自动加上下画线。在视图的左边可以看到Dash面板,它就是一个收藏夹,放置了常用的程序和当前正在运行的程序,单击其中的图标可以打开相应的程序,如果程序已经运行了,则其会高亮显示,单击图标会显示最近使用的窗口。切换到活动概览视图时,桌面显示的是窗口概览视图,显示了当前工作区中所有窗口的实时缩略图,其中只有一个是处于活动状态的窗口。每个窗口代表一个正在运行的图形界面应用程序。其上部有一个搜索框,可用于查找主目录中的应用程序、设置和文件等。工作区选择器位于活动概览视图右侧,可用于切换到不同的工作区。5.1.2熟悉Ubuntu桌面环境3.启动应用程序弹出右键菜单选择全部列表01OPTION02OPTION搜索应用程序03OPTION5.1.2熟悉Ubuntu桌面环境4.将应用程序添加到Dash面板中进入活动概览视图,单击Dash面板底部的“网格”按钮,右键单击要添加的应用程序,在弹出的快捷菜单中选择“添加到收藏夹”选项,或者直接拖动其图标到Dash面板中,如将“终端”添加到Dash面板中。要从Dash面板中删除应用程序,右键单击该应用程序,在弹出的快捷菜单中选择“从收藏夹中移除”选项即可。5.1.2熟悉Ubuntu桌面环境5.窗口操作应用程序窗口的标题栏右上角通常提供窗口关闭、窗口最小化和窗口最大化按钮;一般窗口会有菜单,默认菜单位于顶部面板左侧的菜单栏(要弹出下拉菜单);一般窗口也可以通过拖动边缘来改变大小;多个窗口之间可以按Alt+Tab快捷键进行切换。5.1.2熟悉Ubuntu桌面环境6.使用工作区在工作区之间切换可以使用鼠标或键盘。进入活动概览视图之后,屏幕右侧显示工作区选择器,单击要进入的工作区,或者按PageUp或PageDown键在工作区选择器中进行上下切换。在普通视图中启动的应用程序位于当前工作区。在活动概览视图中,可以通过以下方式使用工作区。01OPTION02OPTION03OPTION将Dash面板中的应用程序拖动到右侧某工作区中,以在该工作区中运行该程序。将当前工作区中某窗口的实时缩略图拖动到右侧的某工作区中,使得该窗口切换到该工作区。在工作区选择器中,可以将一个工作区中的应用程序窗口缩略图拖动到另一个工作区中,使该应用程序切换到目标工作区中运行。5.1.2熟悉Ubuntu桌面环境7.用户管理

用户管理认证01OPTION02OPTION添加用户03OPTION移除用户04OPTION5.1.3常用的图形界面应用程序1.Firefox浏览器Linux一直将MozillaFirefox作为默认的Web浏览器,Ubuntu也不例外,单击Dash面板中的图标,打Firefox开浏览器。5.1.3常用的图形界面应用程序2.Thunderbird邮件/新闻单击Dash面板中的图标,打开Thunderbird,可以选择电子邮件,设置现有的电子邮件地址。5.1.3常用的图形界面应用程序3.文件管理器打开文件管理器查看当前目录属性01OPTION02OPTION选择其他位置03OPTION查看计算机中的资源04OPTION5.1.3常用的图形界面应用程序4.文本编辑器查找文本编辑器打开文本编辑器01OPTION02OPTION在活动概览视图中,在搜索框中输入“gedit”或“文本编辑器”进行查找。在Dash面板中找到文本编辑器应用程序,或者在应用程序中选择“全部”选项,打开文本编辑器。5.1.4Ubuntu个性化设置显示器设置背景设置01OPTION02OPTION5.1.4Ubuntu个性化设置外观设置键盘快捷键03OPTION04OPTION5.1.4Ubuntu个性化设置5.网络设置在“设置”应用程序中找到“网络”弹出“有线”对话框“IPv4”设置5.1.5Ubuntu命令行终端管理1.使用仿真终端窗口按Ctrl+Alt+T快捷键,适用于Ubuntu的各种版本。在应用程序概览视图中找到“Terminal”程序并运行它。进入活动概览视图,输入“gnome-terminal”或“终端”就可以搜索到“Terminal”程序,按Enter键即可运行它。配置文件首选项“首选项-常规”窗口5.1.5Ubuntu命令行终端管理2.使用文本模式默认情况下,Linux会提供6个Terminal(终端)来给用户登录,切换的方式为按Ctrl+Alt+F1~F6快捷键。此外,系统将这6个终端界面以tty1、tty2、tty3、tty4、tty5、tty6的方式进行命名。安装完图形化终端界面后,若想进入纯文本模式,则可以通过按以上快捷键进行切换。例如,按Ctrl+Alt+F3快捷键,进入tty3控制台并登录文本模式终端界面。为安全起见,用户输入的密码(口令)不会在屏幕上显示,而用户名和密码输入错误时,也只会给出“loginincorrect”进行提示,不会明确地提示究竟是用户名错误还是密码错误。5.1.5Ubuntu命令行终端管理3.配置超级管理员root打开终端,设置管理员密码,执行命令如下。csglncc_1@Ubuntu:~$sudopasswdroot[sudo]csglncc_1的密码: #输入当前用户密码新的密码: #输入root用户密码重新输入新的密码: #再次确认输入root用户密码passwd:已成功更新密码csglncc_1@Ubuntu:~$ 使用超级管理员root用户登录,执行命令如下。csglncc_1@Ubuntu:~$suroot #以超级管理员root用户登录密码: #输入root用户密码root@Ubuntu:/home/csglncc_1#exit #超级管理员root用户登录后提示符为“#”exitcsglncc_1@Ubuntu:~$ #普通用户登录后提示符为“$”5.1.5Ubuntu命令行终端管理4.使用命令关闭和重启系统(1)shutdown命令选项功能说明-k并不真正关机,而只是发出警告信息给所有用户-r关机后立即重新启动系统-h关机后不重新启动系统-f快速关机重启动时跳过文件系统检查-n快速关机且不经过init程序-c取消一个已经运行的shutdown操作5.1.5Ubuntu命令行终端管理4.使用命令关闭和重启系统(2)halt命令csglncc_1@Ubuntu:~$shutdown-hnow #立刻关闭系统(3)reboot命令csglncc_1@Ubuntu:~$reboot#立刻重启系统csglncc_1@Ubuntu:~$shutdown-r00:05 #5min后重启系统csglncc_1@Ubuntu:~$shutdown-c #取消shutdown操作(4)exit命令csglncc_1@Ubuntu:~$exit #退出终端窗口5.1.6Shell概述1.Shell简介Shell是使用Linux操作系统的主要环境,Shell的学习和使用是学习Linux不可或缺的一部分。Linux操作系统提供的图形用户界面X-Windows就像Windows一样,也有窗口、菜单和图标,可以通过鼠标进行相关的管理操作。在图形化界面中,按Ctrl+Alt+T快捷键或者在应用程序的菜单中打开虚拟终端,即可启动Shell。当用户成功登录后,系统将执行Shell程序,并提供命令提示符,对于普通用户,用“$”作为提示符,对于超级管理员,用“#”作为提示符。一旦出现命令提示符,用户就可以输入命令和所需的参数,系统将执行这些命令。若要中止命令的执行,则可以按Ctrl+C快捷键;若用户想退出登录,则可以输入exit、logout命令或按文件结束符(Ctrl+D快捷键)。5.1.6Shell概述2.Shell命令的基本格式Shell命令的基本格式如下。command[选项][参数]command[选项]command为命令名称,例如,查看当前文件夹下的文件或文件夹的命令是ls。[选项]表示可选,是对命令的特别定义,以连接符“-”开始,多个选项可以用连接符“-”连接起来,例如,ls-l-a与ls-la的作用是相同的。ls是常用的一个命令,属于目录操作命令,用来列出当前目录下的文件和文件夹。ls命令后可以加选项,也可以不加选项,不加选项的写法如下。root@Ubuntu:~#lssnaproot@Ubuntu:~#5.1.6Shell概述3.输入命令时键盘操作的一般规律(1)命令、文件名、参数等都要区分英文大小写,例如,md与MD是不同的。(2)命令、选项、参数之间必须有一个或多个空格。root@Ubuntu:~#hostnamectlset-hostnametest01 #修改主机名为test01root@Ubuntu:~#bash #/bash执行命令root@test01:~#5.1.6Shell概述4.显示系统信息的命令(1)who命令root@Ubuntu:~#who-a #显示所有用户的信息系统引导2021-07-2906:08

运行级别52021-07-2906:09csglncc_1+pts/02021-07-2906:18.1801()csglncc_1?:02021-07-2908:58?4756(:0)root@Ubuntu:~#who命令主要用于查看当前登录的用户信息,执行命令如下。5.1.6Shell概述4.显示系统信息的命令(2)whoami命令root@Ubuntu:~#whoamirootroot@Ubuntu:~#whoami命令用于显示当前操作用户的用户名,执行命令如下。5.1.6Shell概述4.显示系统信息的命令(3)hostname/hostnamectl命令root@Ubuntu:~#hostname #显示当前系统的主机名Ubuntu #主机名为Ubuntu root@Ubuntu:~#hostname命令用于显示当前系统的主机名,执行命令如下。root@Ubuntu:~#hostnamectlset-hostnamelncc01 #修改主机名为lncc01root@Ubuntu:~#bash #执行命令root@lncc01:~#hostnamectl命令用于设置当前系统的主机名,执行命令如下。5.1.6Shell概述4.显示系统信息的命令(4)date命令root@Ubuntu:~#date2021年07月29日星期四09:44:10CSTroot@Ubuntu:~#date命令用于显示当前时间/日期,执行命令如下。(5)cal命令root@Ubuntu:~#cal

七月2021日一二三四五六

12345678910111213141516171819202122232425262728293031root@Ubuntu:~#cal命令用于显示当前日历,执行命令如下。5.1.6Shell概述4.显示系统信息的命令(6)clear命令root@Ubuntu:~#clearroot@Ubuntu:~#clear命令相当于DOS下的cls命令,用于清除屏幕,执行命令如下。5.1.6Shell概述5.Shell使用技巧(1)命令和文件名的自动补齐功能root@Ubuntu:~#mk<Tab>mkdirmkfs.cramfsmkfs.vfatmkntfsmkdosfsmkfs.ext2mkhomedir_helpermksquashfsmke2fsmkfs.ext3mkinitramfsmkswapmkfifomkfs.ext4mkisofsmktempmkfontdirmkfs.fatmklost+foundmkzftreemkfontscalemkfs.minixmkmanifestmkfsmkfs.msdosmk_modmapmkfs.bfsmkfs.ntfsmknodroot@Ubuntu:~#mk5.1.6Shell概述5.Shell使用技巧(2)历史命令root@Ubuntu:~#cat/root/.bash_historyexitcd..lllsb_release-apwdexitexitroot@Ubuntu:~#执行历史命令最简单的方法就是利用上下方向键,可以找回最近执行过的命令,减少输入命令的次数,在需要使用重复执行的命令时非常方便。当用某账号登录系统后,历史命令列表将根据历史命令文件进行初始化,历史命令文件的文件名由环境变量HISTFILE指定。历史命令文件的默认名称是.bash_history(以“.”开头的文件是隐藏文件),该文件通常在用户主目录下。root用户的历史命令文件为/root/.bash_history,普通用户的历史命令文件为/home/*/.bash_history。5.1.6Shell概述5.Shell使用技巧(2)历史命令格式功能!nn表示序号(执行history命令后可以看到),重新执行第n条命令!!重新执行上一条命令!string执行最近用到的以string开头的历史命令!?string[?]执行最近用到的包含string的历史命令<Ctrl+R>在历史命令列表中查询某条历史命令选项功能说明-a将当前的历史命令记录追加到历史文件中-c清空历史命令列表-n将历史命令文件中的内容追加到当前历史命令列表中-r将历史命令文件中的内容更新(替换)到当前历史命令列表中-w将历史命令列表中的内容写入到历史命令文件中,并覆盖历史命令文件原来的内容filename如果filename选项没有被指定,则history命令将使用环境变量HISTFILE指定的文件名history命令的各选项及功能说明快速执行历史命令的格式OpenStack云计算平台管理Linux操作系统Docker容器技术技能实践5.2.1OpenStack概述OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合,是美国国家航空航天局(NationalAeronauticsandSpaceAdministration,NASA)和Rackspace(美国的一家云计算厂商)在2010年7月共同发起的一个项目,旨在为公有云和私有云提供软件的开源项目,由Rackspace贡献存储源代码(Swift)、NASA贡献计算源代码(Nova)。经过几年的发展,OpenStack已成为一个广泛使用的业内领先的开源项目,提供部署私有云及公有云的操作平台和工具集,并且在许多大型企业支撑核心生产业务。1.OpenStack的起源5.2.1OpenStack概述2.OpenStack版本演变OpenStack第1个正式版本发布,其代号为Austin。第1个正式版本仅有Swift和Nova(对象存储和计算)两个项目。其起初计划每隔几个月发布一个版本,并且以26个英文字母为首字母,以从A到Z的顺序命名后续版本。其第4个版本Diablo发布时,定为约每半年发布一个版本,分别在当年的春秋两季。每个版本不断改进,吸收新技术,实现新概念。其发布了第24个版本,即Xena,如今该版本已经更加稳定、更加强健。近几年,Docker、Kubernetes、Serverless等新技术兴起,而OpenStack的关注点不再是“谁是龙头”,而是“谁才是最受欢迎的技术”。2010年10月2011年9月2021年10月8日5.2.1OpenStack概述(1)OpenStack的逻辑架构3.OpenStack的架构OpenStack通过一组相关的服务提供一个基础设施即服务的解决方案,这些服务以虚拟机为中心。虚拟机主要是由Nova、Glance、Cinder和Neutron这4个核心模块进行交互的结果。Nova为虚拟机提供计算资源,包括vCPU、内存等;Glance为虚拟机提供镜像服务,安装操作系统的运行环境;Cinder提供存储资源,类似传统计算机的磁盘或卷;Neutron为虚拟机提供网络配置以及访问云计算管理平台的网络通道。5.2.1OpenStack概述(2)OpenStack的物理架构3.OpenStack的架构单节点部署多节点部署单节点部署就是将所有的服务和组件都部署在一个物理节点上,通常用于学习、验证、测试或者开发;多节点部署就是将服务和组件分别部署在不同的物理节点上。5.2.2OpenStack认证服务1.Keystone的基本概念(3)令牌令牌(Token)通常指的是一串二进制值或者字符串,用来作为访问资源的记号。令牌中含有可访问资源的范围和有效时间。(1)认证认证(Authentication)是指确认用户身份的过程,又称身份验证。Keystone认证由用户提供的一组凭证来确认传入请求的有效性。(4)项目项目(Project)在OpenStack的早期版本中被称为租户(Tenant),它是各个服务可以访问资源的集合,是分配和隔离资源或身份的一个容器,也是一种权限组织形式。(2)凭证凭证(Credentials)又称证书,用于确认用户身份的数据,如用户名、密码和API密钥,或认证服务提供的认证令牌等。5.2.2OpenStack认证服务1.Keystone的基本概念(7)组组(Group)是域所拥有的用户的集合,授予域或项目的组角色可以应用于该组中的所有用户。(5)用户用户(User)是指使用OpenStack云服务的个人、系统或服务的账户名称。使用服务的用户可以是人、服务或系统,或使用OpenStack相关服务的一个组织。(8)域域(Domain)是项目和用户的集合,目的是为身份实体定义管理界限。域可以表示个人、公司或操作人员所拥有的空间,用户可以被授予某个域的管理员角色。(6)角色角色(Role)是一个用于定义用户权利和权限的集合。例如,Nova中的虚拟机、Glance中的镜像。5.2.2OpenStack认证服务1.Keystone的基本概念(11)服务这里的服务(Service)是指计算(Nova)、对象存储(Swift)或镜像(Glance)这样的OpenStack服务。它们提供一个或多个端点,供用户访问资源和执行操作。(9)端点端点(Endpoint)就是OpenStack组件能够访问的网络地址,通常是一个统一资源定位器(UniformResourceLocator,URL)。端点相当于OpenStack服务对外的网络地址列表,每个服务都必须通过端点来检索相应的服务地址。(12)分区分区(Region)表示OpenStack部署的通用分区。可以为一个分区关联若干个子分区,形成树状层次结构。尽管分区没有地理意义,但是部署时仍可以对分区使用地理名称。(10)客户端客户端(Client)是一些OpenStack服务,包括应用程序接口的命令行接口。例如,用户可以使用openstackservicecreate和openstackendpointcreate命令,在OpenStack安装过程中注册服务。101209115.2.2OpenStack认证服务2.Keystone的主要功能(IdentityAuthentication):令牌的发放和检验。身份认证(IdentityAuthorization):授予用户在一个服务中所拥有的权限。身份授权管理用户账户。用户管理(ServiceCatalog):提供可用服务的API端点。服务目录5.2.2OpenStack认证服务3.Keystone的管理层次结构OpenStackIdentityAPIv3利用域实现了真正的多租户架构,域为项目的高层容器。云服务的客户是域的所有者,它们可以在自己的域中创建多个项目、用户、组和角色。组是一组用户的容器,可以向组中添加用户,并直接给组分配角色,这样在这个组中的所有用户就都拥有了该组拥有的角色权限。域组5.2.2OpenStack认证服务4.Keystone的认证服务流程用户请求云主机的流程涉及认证(Keystone)服务、计算(Nova)服务、镜像(Glance)服务,以及网络(Neutron)服务。在服务流程中,令牌作为流程凭证进行传递。5.2.2OpenStack认证服务4.Keystone的认证服务流程用户向Keystone提供凭证,Keystone验证通过后向用户返回令牌,同时会返回一个通用目录(GenericCatalog)。用户使用令牌向该目录列表中的端点请求该用户对应的项目(租户)令牌,Keystone验证通过后返回用户对应的项目(租户)列表。用户从列表中选择要访问的项目(租户),再次向Keystone发送请求,Keystone验证通过后返回管理该项目(租户)的服务列表并允许访问该项目(租户)的令牌。用户会通过这个服务和通用目录映射找到服务组件的端点,通过端点找到实际服务组件的位置。用户凭借项目(租户)令牌和端点来访问实际的服务组件。服务组件会向Keystone提供这个用户项目令牌进行验证,Keystone验证通过后会返回一系列的确认令牌和附加信息给服务,并执行一系列操作。5.2.3OpenStack镜像服务1.镜像与镜像服务镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,如测试版的操作系统、常用工具软件等。镜像文件不仅具有ZIP压缩包的合成功能,还可以被特定的软件识别并可直接刻录到光盘中。其实,通常意义上的镜像文件可以再扩展一下,镜像文件中可以包含更多的信息,如系统文件、引导文件、分区表信息等,这样镜像文件就能包含一个分区甚至一块硬盘的所有信息。使用这类镜像文件的经典软件就是Ghost,它同样具备刻录功能,但它的刻录仅仅是将镜像文件本身保存在光盘中,而通常意义上的刻录软件可以直接将支持的镜像文件所包含的内容刻录到光盘中。Ghost可以基于镜像文件快速安装操作系统和应用程序,还可对操作系统进行备份,当系统遇到故障不能正常启动或运行时,可快速恢复系统,使之正常工作。在云环境下更加需要镜像这种高效的解决方案。镜像就是一个模板,类似VMware的虚拟机模板,它预先安装基本的操作系统和其他软件。如果从镜像中启动虚拟机,那么该虚拟机被删除后,镜像依然存在,但是镜像不包括本次在该虚拟机实例上的变动信息,因为镜像只是虚拟机启动的基础模板。(1)认证5.2.3OpenStack镜像服务1.镜像与镜像服务(2)镜像服务

查询和获取镜像元数据和镜像本身。

注册和上传虚拟机镜像,包括普通的创建、上传、下载和管理。

维护镜像信息,包括元数据和镜像本身。

支持通过多种方式存储镜像,包括普通的文件系统、Swift、AmazonS3等。

对虚拟机实例执行创建快照(snapshot)命令来创建新的镜像,或者备份虚拟机的状态。镜像服务就是管理镜像,使用户能够发现、注册、获取、保存虚拟机镜像和镜像元数据。镜像数据支持多种存储系统,可以是简单文件系统,也可以是对象存储系统。5.2.3OpenStack镜像服务1.镜像与镜像服务(3)ImageAPI的版本ImageAPIv1ImageAPIv1只提供基本的镜像和成员操作功能,包括镜像创建、删除、下载,镜像列表、详细信息查询和更新,以及镜像租户成员的创建、删除和列表。ImageAPIv2ImageAPIv2除了支持ImageAPIv1的所有功能外,还主要增加了镜像位置的添加、删除、修改,元数据和命名空间(Namespace)操作,以及镜像标记(ImageTag)操作。这两个版本对镜像存储的支持相同,ImageAPIv1从OpenStack发行的Newton版本开始已经过时,迁移的路径使用ImageAPIv2进行替代。按照OpenStack标准的弃用政策,ImageAPIv1最终会被废除。5.2.3OpenStack镜像服务1.镜像与镜像服务(4)虚拟机镜像的磁盘格式与容器格式磁盘格式说明RAW非结构化的磁盘镜像格式QCOW2QEMU模拟器支持的可动态扩展、写时拷贝的磁盘格式,是KVM默认使用的磁盘文件格式VHD通用于VMware、Xen、VirtualBox以及其他虚拟机管理程序VHDXVHD格式的增强版本,支持更大的磁盘容量VMDK一种比较通用的虚拟机磁盘格式VDI由VirtualBox虚拟机监控程序和QEMU仿真器支持的磁盘格式ISO用于光盘(如CD-ROM)数据内容的档案格式AKI在Glance中存储的亚马逊内核格式ARI在Glance中存储的亚马逊虚拟内存盘格式AMI在Glance中存储的亚马逊机器格式OpenStack所支持的虚拟机镜像文件磁盘格式5.2.3OpenStack镜像服务1.镜像与镜像服务(4)虚拟机镜像的磁盘格式与容器格式OpenStack所支持的镜像文件容器格式容器格式说明BARE指没有容器和元数据封装在镜像中。如果Glance和OpenStack的其他服务没有使用容器格式的字符串,那么为了安全,建议将其设置为BAREOVF开放虚拟化格式(OpenVirtualizationFormat)OVA在Glance中存储的开放虚拟化设备(OpenVirtualizationAppliance)格式AKI在Glance中存储的亚马逊内核格式ARI在Glance中存储的亚马逊虚拟内存盘格式DOCKER在Glance中存储的容器文件系统的Docker的TAR档案5.2.3OpenStack镜像服务1.镜像与镜像服务(5)镜像状态镜像状态说明queued表示镜像已经创建和注册,这是一种初始化状态。镜像文件刚被创建时,Glance数据库中只有其元数据,镜像数据还没有上传到数据库中saving表示镜像数据在上传中,这是镜像的原始数据上传到数据库的一种过渡状态uploading表示进行导入数据提交调用。此状态下不允许调用PUT/file(注意,对queued状态的镜像执行PUT/file调用会将镜像置于saving状态,处于saving状态的镜像不允许PUT/stage调用,因此不可能对同一镜像使用两种上传方法)importing表示已经完成导入调用,但是镜像还未准备好使用active表示已经完成导入调用,成为Glance中的可用镜像deactivated表示镜像创建成功,镜像对非管理员不可用,任何非管理员用户都无权访问镜像数据。禁止下载镜像,也禁止镜像导出和镜像克隆之类的操作killed表示上传镜像数据出错,上传过程中发生错误,目前不可读取deleted表示镜像不可用,镜像将在不久后被自动删除,但是目前Glance仍然保留该镜像的相关信息和原始数据pending_delete表示镜像不可用,镜像将被自动删除。与deleted相似,Glance还没有清除镜像数据,但处于该状态的镜像不可恢复5.2.3OpenStack镜像服务1.镜像与镜像服务(6)镜像的访问权限可以被所有项目(租户)使用。public(公有的)只能被镜像所有者所在的项目(租户)使用。private(私有的)这种镜像不能被删除。protected(受保护的)一个非公有的镜像可以共享给其他项目(租户),这是通过项目成员(member-*)操作来实现的。shared(共享的)Glance镜像服务是典型的客户端/服务器(Client/Server,C/S)架构,Glance并不负责实际的存储,只实现镜像管理功能。其功能比较单一,所包含的组件比较少,主要包括glance-api和glance-registry两个子服务。Glance服务器端提供一个RESTAPI,而使用者通过RESTAPI来执行镜像的各种操作。5.2.3OpenStack镜像服务2.Glance服务架构5.2.3OpenStack镜像服务3.Glance工作流程(1)流程解析5.2.3OpenStack镜像服务3.Glance工作流程(2)上传镜像实例分析①用户执行上传镜像命令。glance-api收到请求,并通过它的中间件进行解析,获取版本号等信息。③glance-registry执行registryclient的add_image函数,向Glance数据库中插入一条记录。②glance-registry的API获取一个registryclient,调用registryclient的add_image函数,此时镜像的状态为“queued”,表示该镜像ID已经被保留,但是镜像还未上传。④glance-api调用glance-registry的update_image_metadata函数,更新数据库中该镜像的状态为“saving”,表示镜像正在上传。⑤glance-api端存储接口提供的add函数上传镜像文件。⑥glance-api调用glance-registry的update_image_metadata函数,更新数据库中该镜像的状态为“active”并发出通知,“active”表示镜像在Glance中完全可用。5.2.4OpenStack网络服务1.Neutron网络结构Neutron需要实现的主要是内部网络和路由器。内部网络是对二层网络的抽象,模拟物理网络的二层局域网,对于项目来说,它是私有的。路由器则是对三层网络的抽象,模拟物理路由器,为用户提供路由、网络地址转换(NetworkAddressTranslation,NAT)等服务。外部网络负责连接OpenStack项目之外的网络环境,如Internet。与其他网络不同,外部网络不仅仅是一个虚拟网络,还表示OpenStack网络能被外部物理网络接入并访问。外部网络可能是企业的局域网,也可能是互联网,这类网络并不是由Neutron直接管理的。内部网络完全由软件定义,又称私有网络。它是虚拟机实例所在的网络,能够直接连接到虚拟机。项目(租户)用户可以创建自己的内部网络。默认情况下,项目(租户)之间的内部网络是相互隔离的,不能共享。内部网络由Neutron直接配置和管理。路由器用于将内部网络与外部网络连接起来,因此,要想使虚拟机访问外部网络,必须创建一台路由器。5.2.4OpenStack网络服务2.Neutron管理的网络资源网络网络是指一个隔离的二层广播域,类似于交换机中的VLAN。Neutron支持多种类型的网络,如Flat、VLAN、VXLAN等。子网子网是指一个IPv4或者IPv6的地址段及其相关配置状态。虚拟机实例的IP地址从子网中分配,每个子网都需要定义IP地址的范围和掩码。端口端口是指连接设备的连接点,类似于虚拟交换机上的一个网络端口。端口定义了MAC地址和IP地址,当虚拟机的虚拟网卡绑定到端口时,端口会将MAC地址和IP地址分配给该虚拟网卡。0102035.2.4OpenStack网络服务3.Neutron网络拓扑类型LocalLocal网络与其他网络和节点隔离。该网络中的虚拟机实例只能与位于同一节点上同一网络的虚拟机实例通信,实际意义不大,主要用于测试环境。VLANVLAN是支持IEEE802.1Q协议的网络,使用VLAN标签标记数据报文,实现网络隔离。GRE通用路由封装(GenericRoutingEncapsulation,GRE)是用一种网络层协议去封装另一种网络层协议的隧道技术。GRE的隧道由两端的源IP地址和目的IP地址定义。FlatFlat是一种简单的扁平网络拓扑,所有虚拟机实例都连接在同一网络中,能与位于同一网络的实例进行通信,并且可以跨多个节点。VXLANVXLAN(VirtualeXtensibleLocalAreaNetwork)可以看作VLAN的一种扩展。相较于VLAN,它有更大的扩展性和灵活性。Geneve通用网络虚拟封装(Genericnetworkvirtualizationencapsulation,Geneve)的目标宣称是仅定义封装数据格式,尽可能实现数据格式的弹性和扩展性。5.2.4OpenStack网络服务4.Neutron的基本架构Neutron仅有一个主要服务进程,即neutron-server。它运行于控制节点上,对外提供OpenStack网络API作为访问Neutron的入口,其在收到请求后调用插件进行处理,最终由计算节点和网络节点上的各种代理完成请求。网络提供者是指提供OpenStack网络服务的虚拟或物理网络设备,如LinuxBridge、OpenvSwitch,或者其他支持Neutron的物理交换机。与其他服务一样,Neutron的各组件、服务之间需要相互协调和通信。网络API(neutron-server)、插件和代理之间通过消息队列进行通信(默认使用RabbitMQ实现)及相互调用。数据库(默认使用MariaDB)用于存放OpenStack的网络状态信息,包括网络、子网、端口、路由器等相关信息。客户端是指使用Neutron服务的应用程序,可以是命令行工具(脚本)、Horizon(OpenStack图形操作界面)和Nova计算服务等。5.2.4OpenStack网络服务5.Neutron的物理部署(1)控制节点和计算节点控制节点上可以部署neutron-server(API)、CorePlugin和ServicePlugin代理。这些代理包括neutron-plugin-agent、neutron-metadata-agent、neutron-dhcp-agent、neutron-l3-agent、neutron-lbaas等。CorePlugin和ServicePlugin已经集成到neutron-server中,不需要运行独立的Plugin服务。控制节点和计算节点需要部署CorePlugin的代理,因为控制节点与计算节点只有通过该代理才能建立二层连接。(2)控制节点和网络节点可以通过增加网络节点以承担更大的负载。该方案特别适用于规模较大的OpenStack环境。控制节点部署neutron-server服务,只负责通过neutron-server响应API请求。网络节点部署的服务包括CorePlugin的代理、ServicePlugin的代理。可将所有的代理主键从上述控制节点分离出来,并部署到独立的网络节点上,由独立的网络节点实现数据的交换、路由及负载均衡等高级网络服务。5.2.5OpenStack计算服务1.什么是NovaNova是OpenStack中的计算服务项目,计算实例(虚拟服务器)生命周期的所有活动都由Nova管理。Nova支持创建虚拟机和裸金属服务器,并且支持系统容器。作为一套在现有Linux服务器上运行的守护进程,Nova提供计算服务,但它自身并没有提供任何虚拟化能力,而是使用不同的虚拟化驱动来与底层支持的虚拟机管理器进行交互。Keystone:这项服务为所有的OpenStack服务提供身份管理和认证。Glance:这项服务提供计算用的镜像库,所有的计算实例都从Glance镜像启动。Neutron:这项服务负责配置管理计算实例启动时的虚拟或物理网络连接。Cinder和Swift:这两项服务分别为计算实例提供块存储和对象存储支持。5.2.5OpenStack计算服务2.Nova的系统架构Nova由多个提供不同功能的独立组件构成,对外通过RESTAPI通信,对内通过远程过程调用通信,使用一个中心数据库存储数据。其中,每个组件都可以部署一个或多个来实现横向扩展。5.2.5OpenStack计算服务3.API组件API是客户端访问Nova的HTTP接口,它由nova-api服务实现,nova-api服务接收和响应来自最终用户的计算请求。作为OpenStack对外服务的主要接口,nova-api提供集中的可以查询所有API的端点。它是整个Nova组件的“门户”,所有对Nova的请求都先由nova-api处理,API提供REST标准调用服务,便于与第三方系统集成。可以通过运行多个API服务实例轻松实现API的高可用性。12检查客户端传入的参数是否合法。调用Nova其他服务处理客户端HTTP请求。3格式化Nova其他子服务返回的结果并返回给客户端。5.2.5OpenStack计算服务4.Conductor组件nova-conductor可以水平扩展,但是不要将它部署在运行nova-compute服务的节点上。nova-conductor作为nova-compute服务与数据库之间交互的中介,可避免由nova-compute服务创建的对云数据库的直接访问。nova-compute需要获取和更新数据库中虚拟机实例的信息。使用nova-conductor也有助于提高数据库的访问性能。Conductor组件由nova-conductor模块实现,旨在为数据库的访问提供一层安全保障。nova-conductor是OpenStack中的一个远程过程调用服务,主要提供数据库查询功能。12345.2.5OpenStack计算服务5.Scheduler组件Scheduler可译为调度器,由nova-scheduler服务实现,旨在解决“如何选择在某个计算节点上启动实例”的问题。它应用多种规则,考虑内存使用率、CPU负载率、CPU构架等多种因素,根据一定的算法,确定虚拟机实例能够运行在哪一台计算服务器上。nova-scheduler服务会从队列中接收一个虚拟机实例的请求,通过读取数据库的内容,从可用资源池中选择最合适的计算节点来创建新的虚拟机实例。创建虚拟机实例时,用户会提出资源需求,如CPU、内存、磁盘容量等。OpenStack将这些需求定义在实例类型中,用户指定使用哪种实例类型即可。nova-scheduler会按照实例类型选择合适的计算节点。随机调度器过滤调度器缓存调度器(1)Nova调度类型5.2.5OpenStack计算服务5.Scheduler组件(2)过滤调度器调度过程最初有6台可用的计算节点主机,通过多个过滤器层层过滤,将主机2、主机3和主机5排除。剩下的3台主机再通过计算权重与排序,按优先级从高到低依次为主机4、主机1和主机6。主机4权重值最大,最终入选。5.2.5OpenStack计算服务5.Scheduler组件(3)过滤器再审过滤器可用区域过滤器内存过滤器磁盘过滤器核心过滤器计算过滤器计算能力过滤器镜像属性过滤器服务器组反亲和性过滤器服务器组亲和性过滤器5.2.5OpenStack计算服务6.Compute组件(1)通过驱动架构支持多种Hypervisor面对多种Hypervisor,nova-compute为这些Hypervisor定义了统一的接口,Hypervisor只需要实现这些接口,就可以Driver的形式即插即用到OpenStack系统中。5.2.5OpenStack计算服务6.Compute组件(2)定期向OpenStack报告计算节点的状态penStack通过nova-compute的定期报告获知每个计算节点的信息。每隔一段时间,nova-compute就会报告当前计算节点的资源使用情况和nova-compute的服务状态。nova-compute是通过Hypervisor的驱动获取这些信息的。例如,如果使用Hypervisor的是KVM,则会使用Libvirt驱动,由Libvirt驱动调用相关的API获得资源信息。(3)实现虚拟机实例生命周期的管理1234为实例准备资源创建实例的镜像文件创建实例的可扩展标记语言定义文件创建虚拟网络并启动虚拟机5.2.6OpenStack存储服务1.Cinder块存储服务(1)Cinder的主要功能为管理块存储提供一套方法,对卷实现从创建到删除的整个生命周期管理,允许对卷、卷的类型、卷的快照进行处理。提供持久性块存储资源,供Nova计算服务的虚拟机实例使用。从实例的角度看,挂载的每个卷都是一块磁盘。使用Cinder可以将一个存储设备连接到一个实例。另外,Cinder可以将镜像写到块存储设备中,让Nova计算服务用作可启动的持久性实例。对不同的后端存储进行封装,对外提供统一的API。010203Cinder的各个子服务通过消息队列实现进程间的通信和相互协作。有了消息队列,子服务之间可实现相互交流,这种松散的结构也是分布式系统的重要特征。5.2.6OpenStack存储服务1.Cinder块存储服务(2)Cinder的系统架构Cinder块存储服务与Nova计算服务之间的交互5.2.6OpenStack存储服务1.Cinder块存储服务(3)Cinder块存储服务与Nova计算服务之间的交互拟机的整个生命周期中对应的卷操作5.2.6OpenStack存储服务2.Swift对象存储服务对象存储是高性价比、可扩展存储的理想解决方案,提供一个完全分布式、API可访问的平台,可以直接与应用集成,或者用于备份、存档和数据保存。Swift适用于许多应用场景,最典型的应用是作为网盘类产品的存储引擎。在OpenStack中,其可以与镜像服务Glance结合存储镜像文件。另外,由于Swift具有无限扩展能力,它也非常适合存储日志文件和作为数据备份仓库。Swift对象存储使用了分布式架构,没有中央控制节点,可提供更好的可扩展性、冗余性等。对象写入多个硬件设备时,OpenStack负责保证集群中的数据复制和完整性。可通过添加新节点来扩展存储集群。当节点失效时,OpenStack将从其他正常运行的节点复制内容。与文件系统不同,对象存储系统所存储的逻辑单元是对象,而不是传统的文件。对象包括内容和元数据两个部分。与其他OpenStack项目一样,Swift提供RESTAPI作为公共访问的入口,每个对象都是一个RESTful资源,拥有唯一的URL,通过它请求对象,可以直接通过SwiftAPI,或者使用主流编程语言的函数库来操作对象存储。5.2.6OpenStack存储服务2.Swift对象存储服务(1)Swift的系统架构Swift采用完全对称、面向资源的分布式架构,所有组件均可扩展,避免因单点故障扩散而影响整个系统的运行。完全对称意味着Swift中各节点可以完全对等,能极大地降低系统维护成本。它的扩展性包括两个方面:一方面是数据存储容量无限可扩展;另一方面是Swift性能可线性提升,如吞吐量等。5.2.6OpenStack存储服务2.Swift对象存储服务(2)Swift的应用③IaaS公有云Swift具有线性扩展、高并发和多项目支持等特性,使它非常适合作为IaaS。公有云规模较大,更多时候会遇到大量虚拟机并发启动的情况,所以对于虚拟机镜像的后台存储来说,实际挑战在于大数据的并发读性能。①网盘Swift的对称架构使数据节点从逻辑上看处于同一级别,每个节点上同时有数据和相关的元数据,并且元数据的核心数据结构使用的是哈希环,对于节点的增减一致性哈希算法只需要重定位环空间中的一小部分数据,具有较好的容错性和可扩展性。④移动互联网和CDNCDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能,使用户就近获取所需内容,降低网络拥塞,提高用户访问的响应速度和命中率。CDN的关键技术是内容存储和分发。②备份文档Rackspace的主营业务是数据的备份归档,同时,其延展出一种新业务,如“热归档”。OpenStack云计算平台管理Linux操作系统Docker容器技术技能实践5.3.1Docker技术概述1.Docker的发展历程Docker公司起初是一家名为dotCloud的PaaS提供商。在底层技术上,dotCloud公司使用了Linux容器(LinuxContainerLXC)技术。为了方便创建和管理容器,dotCloud公司开发了一套内部工具,之后被命名为Docker,Docker就这样诞生了。2013年,dotCloud公司的PaaS业务不景气,需要寻求新的突破,于是聘请了本·戈卢布(BenGolub)作为新的CEO,将公司重命名为Docker,放弃了dotCloudPaaS平台,怀揣着“将Docker和容器技术推向全世界”的使命,开启了一段新的征程。2013年3月,Docker开源版本正式发布;2013年11月,RHEL6.5正式版本集成了对Docker的支持;2014年4月~2014年6月,亚马逊、谷歌、微软等公司的云计算服务相继宣布支持Docker;2014年6月,随着DockerCon2014大会的召开,Docker1.0正式发布;2015年6月,Linux基金会在DockerCon2015大会上与亚马逊、思科、Docker等公司共同宣布成立开放容器项目(OpenContainerProject,OCP),旨在实现容器标准化,该组织后更名为开放容器标准(OpenContainerInitiative,OCI);2015年,浙江大学实验室携手华为、谷歌、Docker等公司,成立了云原生计算基金会(CloudNativeComputingFoundation,CNCF),共同推进面向云原生应用的云平台发展。Libcontainer的目标是成为与平台无关的工具,可基于不同内核为Docker上层提供必要的容器交互功能。在Docker0.9中,Libcontainer取代LXC成为其默认的执行驱动。5.3.1Docker技术概述2.Docker的定义Docker是以Docker容器为资源分割和调度的基本单位,封装整个软件运行时的环境,为开发者和系统管理员设计,用于构建、发布和运行分布式的应用平台。Docker借鉴集装箱装运货物的场景,让开发人员将应用程序及其依赖打包到一个轻量级、可移植的容器中,并将其发布到任何运行Docker容器引擎的环境下,以容器方式运行该应用程序。与装运集装箱时不用关心其中的货物一样,Docker在操作容器时不关心容器中有什么软件。它是一种跨平台、可移植且简单易用的容器解决方案。Docker的源代码托管在GitHub上,基于Go语言开发,并遵从ApacheLicense2.0协议。Docker可在容器内部快速自动化地部署应用,并通过操作系统内核技术为容器提供资源隔离与安全保障。5.3.1Docker技术概述3.Docker的优势Docker可以快速创建和删除容器,实现快速迭代,节约大量开发、测试、部署的时间。此外,其整个过程全程可见,使团队更容易理解应用的创建和工作过程。容器非常适合持续集成和持续交付的工作流程。Docker容器不需要额外的虚拟机管理程序以及Hypervisor的支持,它使用内核级的虚拟化,与底层共享操作系统,系统负载更低,性能更加优异,在同等条件下可以运行更多的实例,更充分地利用系统资源。基于容器的Docker平台满足具有高度可移植性和扩展性的工作环境需求。Docker容器几乎可以在所有平台上运行,包括物理机、虚拟机、公有云、私有云、混合云、服务器等,并支持主流的操作系统发行版本,这种兼容性可以让用户在不同平台之间轻松地迁移应用。更快的交付和部署高效的资源利用和隔离高可移植性与扩展性5.3.1Docker技术概述3.Docker的优势Docker的镜像与镜像之间不是相互隔离的,它们有松耦合的关系。镜像采用了多层文件的联合体。通过这些文件层,可以组合出不同的镜像,使得利用基础镜像进一步扩展镜像变得非常简单。Docker秉承了开源软件的理念,因此所有用户均可以自由地构建镜像,并将其上传到DockerHub上供其他用户使用。使用Dockerfile时,只需要进行少量的配置修改,就可以替代以往大量的更新工作,且所有修改都以增量的方式被发布和更新,从而实现高效、自动化的容器管理。Docker容器可以保证应用程序在整个生命周期中的一致性,保证环境的一致性和标准化。Docker容器可以像GitHub一样,按照版本对提交的Docker镜像进行管理。当出现因组件升级导致环境损坏的情况时,Docker可以快速地回滚到该镜像的前一个版本。相对虚拟机的备份或镜像创建流程而言,Docker可以快速地进行复制和实现冗余。此外,启动Docker就像启动一个普通进程一样快速,启动时间可以达到秒级甚至毫秒级。更简单的维护和更新管理环境标准化和版本控制5.3.1Docker技术概述4.容器与虚拟机特性Docker容器传统虚拟机启动速度秒级分钟级计算能力损耗几乎没有损耗50%左右性能接近原生弱于原生内存代价很小较大占用磁盘空间一般为MB级一般为GB级系统支持量(单机)上千个几十个隔离性资源限制完全隔离迁移性优秀一般Docker容器与传统虚拟机的特性比较5.3.1Docker技术概述4.容器与虚拟机Docker容器与传统虚拟机的特性比较5.3.1Docker技术概述5.Docker的三大核心概念ACBDocker的镜像是创建容器的基础,类似于虚拟机的快照,可以理解为面向Docker容器引擎的只读模板。Docker提供简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经创建好的镜像来直接使用。镜像和容器的关系就像面向对象程序设计中的类和实例一样。镜像是静态的定义,容器是镜像运行时的实体。Docker的容器是镜像创建的运行实例,它可以被启动、停止和删除。每一个容器都是互相隔离、互不可见的,以保证平台的安全性。仓库可看作代码控制中心,Docker仓库是用来集中保存镜像的地方。当开发人员创建了自己的镜像之后,可以使用push命令将它上传到公有(Public)仓库或者私有(Private)仓库。下一次要在另外一台机器上使用这个镜像时,只需要从仓库中获取即可。镜像容器仓库5.3.2Docker架构与应用1.Docker的架构5.3.2Docker架构与应用2.Docker底层技术命名空间每个容器都可以拥有自己单独的命名空间,运行在其中的应用像在独立的操作系统中运行一样。命名空间能保证容器之间互不影响。控制组控制组是Linux内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。控制组提供资源限制、优先级、资源审计、隔离、控制等功能。联合文件系统联合文件系统是一种轻量级的高性能分层文件系统,它支持将文件系统中的修改信息作为一次提交,并层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统中,应用看到的是挂载的最终结果。容器格式Docker引擎将命名空间、控制组和联合文件系统打包到一起时所使用的就是容器格式。最初,Docker采用LXC中的容器格式,但自Docker0.9开始,Docker也开始支持新的Libcontainer格式,并将其作为默认格式。Linux网络虚拟化Docker的本地网络实现其实利用了Linux中的网络命名空间和虚拟网络设备(特别是vethpair)。要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包;此外,如果不同子网之间要进行通信,则需要额外的路由机制。Docker中的网络接口默认都是虚拟接口。5.3.2Docker架构与应用3.Docker的功能快速部署隔离应用简化配置提高开发效率代码管道化管理调试能力整合服务器多租户环境5.3.2Docker架构与应用4.Docker的应用Docker便于执行云迁移策略,可以随时随地将应用程序交付到任何云端。使用Docker标准化应用程序,能使它们在任何基础设施上以同样的方式运行。Docker可以跨越多个云环境容器化,并在这些环境下部署传统应用程序和微服务。(1)云迁移(2)大数据应用Docker使数据专家能够快速地迭代模型,具体表现在以下几个方面。①便于安全协作。②独立于基础设施的Docker平台使得数据专家能够对应用程序进行最优化的数据分析;数据专家可以选择并使用适合研究项目的工具和软件包构建模型,无须担心应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论