首页 Docker容器技术与应用朱晓彦教学全套课件项目4 Docker集群管理

Docker容器技术与应用朱晓彦教学全套课件项目4 Docker集群管理

举报
开通vip

Docker容器技术与应用朱晓彦教学全套课件项目4 Docker集群管理项目4Docker集群通过本章学习,我们了解到docker-compose编配的安装,使用和运维,consul发现服务和swarm集群的管理,及openstack在docker上的整合!4.1.1Compose简介Compose定位是“定义和运行多个Docker容器的应用(Definingandrunningmulti-containerDockerapplications)”,其前身是开源项目Fig,目前仍然兼容Fig格式的模板文件。Compose中有两个重要的概念:服务(service)...

Docker容器技术与应用朱晓彦教学全套课件项目4 Docker集群管理
项目4Docker集群通过本章学习,我们了解到docker-compose编配的安装,使用和运维,consul发现服务和swarm集群的管理,及openstack在docker上的整合!4.1.1Compose简介Compose定位是“定义和运行多个Docker容器的应用(Definingandrunningmulti-containerDockerapplications)”,其前身是开源项目Fig,目前仍然兼容Fig格式的模板文件。Compose中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。项目(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。Compose的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。Compose项目由Python编写,实现上调用了Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持DockerAPI,就可以在其上利用Compose来进行编排管理。4.1.2安装(1)下载DockerCompose(选择1.8.1版本的)[root@client~]#sudobash-c"curl-Lhttps://github.com/docker/compose/releases/download/1.8.0/docker-compose-'uname-s'-'uname-m'>/usr/local/bin/docker-compose"%Total%Received%XferdAverageSpeedTimeTimeTimeCurrentDloadUploadTotalSpentLeftSpeed100548770548770027980--:--:--0:00:19--:--:--2578(2)给docker-compose文件加执行权限[root@client~]#sudochmod+x/usr/local/bin/docker-compose(3)安装依赖工具pip[root@client/]#yum-yinstallpython-pip (4)安装docker-compose[root@client/]#sudopipinstall-Udocker-compose4.1.2安装(2)安装好以后更新一下pip工具[root@clientyum.repos.d]#pipinstall--upgradepipCollectingpipDownloadingpip-9.0.1-py2.py3-none-any.whl(1.3MB)100%|████████████████████████████████|1.3MB28kB/sInstallingcollectedpackages:pipFoundexistinginstallation:pip8.1.2Uninstallingpip-8.1.2:Successfullyuninstalledpip-8.1.2Successfullyinstalledpip-9.0.14.1.2安装验证docker-compose是否可用[root@clientbin]#yumcleanall[root@clientbin]#sudodocker-compose--versiondocker-composeversion1.8.1,build258538至此docker-compose安装结束4.1.3实例应用实例应用的主要 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 :编写一个pythonweb案例,应用compose编排服务。例子包含2个容器,一个pythonweb容器,一个是Redis数据库容器。首先构建pythonweb镜像和容器:(1)创建composeapp目录[root@client/]#mkdircomposeapp[root@client/]#cdcomposeapp/[root@clientcomposeapp]#touchDockerfile[root@clientcomposeapp]#touchapp.py4.1.3实例应用(2)编写python程序[root@clientcomposeapp]#viapp.pyfromflaskimportFlaskfromredisimportRedisimportos app=Flask(__name__)redis=Redis(host="redis",port=6379) @app.route('/')defhello():redis.incr('hits')return'HelloDockerBookreader!Ihavebeenseen{0}times'.format(redis.get('hits')) if__name__=="__main__":app.run(host="0.0.0.0",debug=True)4.1.3实例应用(3)创建python的依赖包描述文件~[root@clientcomposeapp]#touchrequirements.txt[root@clientcomposeapp]#virequirements.txtflaskredis(4)编写pythonweb容器的镜像Dockerfile文件[root@clientcomposeapp]#viDockerfileFROMpython:2.7MAINTAINERJamesTurnbull<james@example.com>ENVREFRESHED_AT2016-08-01 ADD./composeapp WORKDIR/composeapp RUNpipinstall-rrequirements.txt4.1.3实例应用(5)构建镜像[root@clientcomposeapp]#sudodockerbuild-tjamtur01/composeapp.SendingbuildcontexttoDockerdaemon4.096kBStep1:FROMpython:2.7Tryingtopullrepository192.168.200.11:5000/python...Tryingtopullrepositorydocker.io/library/python...2.7:Pullingfromdocker.io/library/python75a822cd7888:PullcompleteDigest:sha256:43b6a6df624798dd8889bde2c02a48a263faa1d72f0de9e134de84c4079ac365Status:Downloadednewerimagefordocker.io/python:2.7--->acf0d719f2684.1.3实例应用Runningsetup.pybdist_wheelforMarkupSafe:startedRunningsetup.pybdist_wheelforMarkupSafe:finishedwithstatus'done'Storedindirectory:/root/.cache/pip/wheels/a3/fa/dc/0198eed9ad95489b8a4f45d14dd5d2aee3f8984e46862c5748SuccessfullybuiltitsdangerousMarkupSafeInstallingcollectedpackages:itsdangerous,MarkupSafe,Jinja2,Werkzeug,click,flask,redisSuccessfullyinstalledJinja2-2.8MarkupSafe-0.23Werkzeug-0.11.13click-6.6flask-0.12itsdangerous-0.24redis-2.10.5--->e031fec32547Removingintermediatecontainer7433546dcc5cSuccessfullybuilte031fec325474.1.3实例应用(6)以dockerrun运行案例:[root@clientcomposeapp]#sudodockerrun-d-p5000:5000-v.:/composeapp--linkredis:redis--namejamtur01/composeapppythonapp.pyUnabletofindimage'python:latest'locallyTryingtopullrepository192.168.200.11:5000/python...Pullingrepository192.168.200.11:5000/pythonError:imagepythonnotfoundTryingtopullrepositorydocker.io/library/python...latest:Pullingfromdocker.io/library/python75a822cd7888:Alreadyexistsdcec4e4061ab:PullcompleteDigest:sha256:1fa4d0110c7093fdb1306b4b290824a37169ca6a19f091b722796764.1.3实例应用(7)以docker-compose运行案例:下面构建DockerComposeyml文件:docker-compose.yml文件:[root@servercomposeapp]#vidocker-compose.ymlweb:image:jamtur01/composeappcommand:pythonapp.pyports:-"5000:5000"volumes:-.:/composeapplinks:-redisredis:image:redis4.1.3实例应用切换到composeapp目录下,以compose的方式运行[root@servercomposeapp]#sudodocker-composeupPullingredis(redis:latest)...Tryingtopullrepositorydocker.io/library/redis...latest:Pullingfromdocker.io/library/redis29a3c975c335:PullcompleteDigest:sha256:be03cb3b2e0d290c3d6670d1843b6036c1914663574bb624ffb62535344de5b4Status:Downloadednewerimagefordocker.io/redis:latestCreatingcomposeapp_redis_1Creatingcomposeapp_web_1Attachingtocomposeapp_redis_1,composeapp_web_14.1.3实例应用redis_1|_.-``__''-._redis_1|_.-```.`_.''-._Redis3.2.6(00000000/0)64bitredis_1|.-``.-```.```\/_.,_''-._redis_1|(',.-`|`,)Runninginstandalonemoderedis_1||`-._`-...-`__...-.``-._|'`_.-'|Port:6379redis_1||`-._`._/_.-'|PID:1redis_1|`-._`-._`-./_.-'_.-'redis_1||`-._`-._`-.__.-'_.-'_.-'|redis_1||`-._`-.__.-'_.-'|http://redis.ioredis_1|`-._`-._`-.__.-'_.-'_.-'redis_1||`-._`-._`-.__.-'_.-'_.-'|4.1.3实例应用redis_1||`-._`-.__.-'_.-'|redis_1|`-._`-._`-.__.-'_.-'_.-'redis_1|`-._`-.__.-'_.-'redis_1|`-.__.-'redis_1|`-.__.-'redis_1|1:M01Jan12:35:45.008*Theserverisnowreadytoacceptconnectionsonport6379web_1|*Runningonhttp://0.0.0.0:5000/(PressCTRL+Ctoquit)web_1|*Restartingwithstatweb_1|*Debuggerisactive!web_1|*Debuggerpincode:457-652-386web_1|192.168.0.51--[01/Jan/201712:37:42]"GET/HTTP/1.1"200-web_1|192.168.0.51--[01/Jan/201712:37:42]"GET/favicon.icoHTTP/1.1"404-4.1.3实例应用最后在网页上验证效果如下:4.1.4Compose命令说明(1)命令对象与格式对于Compose来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。执行docker-compose[COMMAND]--help或者docker-composehelp[COMMAND]可以查看具体某个命令的使用格式。Compose命令的基本的使用格式是docker-compose[-f=<arg>...][options][COMMAND][ARGS...]4.1.4Compose命令说明2)命令选项-f,--fileFILE指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。-p,--project-nameNAME指定项目名称,默认将使用所在目录名称作为项目名。--x-networking使用Docker的可拔插网络后端特性(需要Docker1.9及以后版本)。--x-network-driverDRIVER指定网络后端的驱动,默认为bridge(需要Docker1.9及以后版本)。--verbose输出更多调试信息。-v,--version打印版本并退出。4.1.4Compose命令说明3)命令 使用说明 爱威a9效果器使用图word使用说明在哪儿钻床数控系统用户手册玻璃钢风机使用说明书控制器用户说明书 build格式为docker-composebuild[options][SERVICE...]。构建(重新构建)项目中的服务容器。help获得一个命令的帮助。kill格式为docker-composekill[options][SERVICE...]。$docker-composekill-sSIGINTlogs格式为docker-composelogs[options][SERVICE...]。4.1.4Compose命令说明pause格式为docker-composepause[SERVICE...]。暂停一个服务容器。port格式为docker-composeport[options]SERVICEPRIVATE_PORT。打印某个容器端口所映射的公共端口。ps格式为docker-composeps[options][SERVICE...]。列出项目中目前的所有容器。pull格式为docker-composepull[options][SERVICE...]。拉取服务依赖的镜像。4.1.4Compose命令说明rm格式为docker-composerm[options][SERVICE...]。删除所有(停止状态的)服务容器。推荐先执行docker-composestop命令来停止容器。run格式为docker-composerun[options][-pPORT...][-eKEY=VAL...]SERVICE[COMMAND][ARGS...]。在指定服务上执行一个命令scale格式为docker-composescale[options][SERVICE=NUM...]。设置指定服务运行的容器个数start格式为docker-composestart[SERVICE...]。启动已经存在的服务容器。4.1.4Compose命令说明stop格式为docker-composestop[options][SERVICE...]。停止已经处于运行状态的容器,但不删除它。通过docker-composestart可以再次启动这些容器。unpause格式为docker-composeunpause[SERVICE...]。恢复处于暂停状态中的服务up格式为docker-composeup[options][SERVICE...]。该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。链接的服务都将会被自动启动,除非已经处于运行状态。4.1.5Compose模板文件模板文件是使用Compose的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令跟dockerrun相关参数的含义都是类似的。默认的模板文件名称为docker-compose.yml,格式为YAML格式。具体可以参考官网的命令和模板说明。4.2.1Dockerconsul简介在GitHub上,Consul 被称为“一种用于服务发现、监控和配置的工具”。Consul是由Vagrant的开发公司HashiCorp开发的开源项目之一。它可以提供一个具有高可用性的分布式系统,用以注册服务、存储共享配置并保持多个数据中心的准确视图。此外,它作为一个简单的Go程序,因此不需要部署 通过运行consulagent命令,可以通过后台守护进程的方式运行在所有consul集群节点中。并且可以以server或者client模式运行。并且以HTTP或者DNS接口方式,负责运行检查和服务同步。Server模式的agent负责维护consul集群状态,相应RPC查询,并且还要负责和其他数据中心进行WANGossips交换。client节点是相对无状态的,Client的唯一活动就是转发请求给Server节点,以保持低延迟和少资源消耗。4.2.1Dockerconsul简介如下图,是官网的一个典型系统结构,Consul建议我们每个DataCenter的Server的节点最好在3到5个之间,以方便在失败以及数据复制的性能。Client的数量可以任意。图中,最重要的两个概念一个是Gossip协议,一个是Consensus协议。DataCenter的所有节点都会参与到Gossip协议。Client到Server会通过LANGossip。所有的节点都在Gossippool中,通过消息层来实现节点之间的通信以达到故障检测的目的,并且不需要给Client配置Server的地址。而Server节点还会参与到WANGossip池中。这样,通过Server节点就可以让DataCenter之间做简单的服务发现。比如增加一个Datacenter就只需要让Server节点参与到GossipPool中。并且,DataCneter之间的通信和服务请求就可以通过WANGossip来随机请求另外一个DataCenter的Server节点,然后被请求的Server会再把请求foword到本DataCenter的leader节点。Serverleader的选举是通过Consul的Raft算法实现。Leader节点需要负责所有请求和处理,并且这些请求也必须复制给所有的其他非leader的Server节点。同样,非Leader节点接收到RPC请求的时候也会foward到leader节点。4.2.1Dockerconsul简介4.2.2构建consul镜像1创建目录保存consul的dockerfile[root@client/]#mkdirconsul[root@client/]#cdconsul/[root@clientconsul]#touchDockerfile4.2.2构建consul镜像2.编辑dockerfile[root@clientconsul]#viDockerfileFROMubuntu:16.04MAINTAINERJamesTurnbull<james@example.com>ENVREFRESHED_AT2016-06-01 RUNapt-get-qqyupdateRUNapt-get-qqyinstallcurlunzip ADDhttps://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip/tmp/consul.zipRUNcd/usr/sbin&&unzip/tmp/consul.zip&&chmod+x/usr/sbin/consul&&rm/tmp/consul.zip RUNmkdir-p/webui/ADDhttps://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_web_ui.zip/webui/webui.zipRUNcd/webui&&unzipwebui.zip&&rmwebui.zip ADDconsul.json/config/ EXPOSE53/udp830083018301/udp83028302/udp84008500 VOLUME["/data"] ENTRYPOINT["/usr/sbin/consul","agent","-config-dir=/config"]4.2.2构建consul镜像3.编辑consul.json[root@clientconsul]#viconsul.json{"data_dir":"/data","ui_dir":"/webui","client_addr":"0.0.0.0","ports":{"dns":53},"recursor":"8.8.8.8"}4.2.2构建consul镜像4.构建consul镜像[root@clientconsul]#sudodockerbuild-t="jamtur01/consul".SendingbuildcontexttoDockerdaemon3.584kBStep1:FROMubuntu:16.04Tryingtopullrepository192.168.200.11:5000/ubuntu...Pullingrepository192.168.200.11:5000/ubuntu。。。。。。Step15:CMD--->Runningine64ef3e7bad1--->54c19d0ae6a9Removingintermediatecontainere64ef3e7bad1Successfullybuilt54c19d0ae6a94.2.2构建consul镜像5.执行一个本地consul节点[root@clientconsul]#sudodockerrun-p53:53/udp-hnode1jamtur01/consul-server-bootstrap==>WARNING:Bootstrapmodeenabled!Donotenableunlessnecessary==>StartingConsulagent...==>StartingConsulagentRPC...==>Consulagentrunning!Nodename:'node1'Datacenter:'dc1'。。。。。。2016/12/2812:53:20[INFO]serf:EventMemberLeave:node1172.17.0.52016/12/2812:53:20[INFO]agent:requestingshutdown2016/12/2812:53:20[INFO]consul:shuttingdownserver4.3.1DockerSwarm简介DockerSwarm是Docker官方编排(Orchestration)项目之一,负责对Docker集群进行管理。本章将介绍Swarm项目情况以及安装和使用。DockerSwarm是Docker公司官方在2014年12月初发布的一套管理Docker集群的工具。它将一群Docker宿主机变成一个单一的,虚拟的主机。Swarm使用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的DockerAPI接口作为其前端访问入口,换言之,各种形式的Docker工具比如Dokku,Compose,Krane,Deis,docker-py,Docker本身等都可以很容易的与Swarm进行集成。4.3.1DockerSwarm简介在使用Swarm管理docker集群时,会有一个swarmmanager以及若干的swarmnode,swarmmanager上运行swarmdaemon,用户只需要跟swarmmanager通信,然后swarmmanager再根据discoveryservice的信息选择一个swarmnode来运行container。值得注意的是swarmdaemon只是一个任务调度器(scheduler)和路由器(router),它本身不运行容器,它只接受Dockerclient发送过来的请求,调度合适的swarmnode来运行container。这意味着,即使swarmdaemon由于某些原因挂掉了,已经运行起来的容器也不会有任何影响。4.3.2DockerSwarm环境安装有以下两点需要注意:集群中的每台节点上面的Docker的版本都不能小于1.4为了让swarmmanager能够跟每台swarmnode进行通信,集群中的每台节点的Dockerdaemon都必须监听同一个网络接口。(1)在smoker和joker节点手动安装docker-engine-1.7.0-1[root@node1yum.repos.d]#yuminstall-ydocker-ioLoadedplugins:fastestmirrorcentos-->ProcessingDependency:libdevmapper-event.so.1.02()(64bit)forpackage:7:lvm2-2.02.130-5.el7_2.5.x86_64Installed:docker.x86_640:1.10.3-46.el7.centos.14Complete!4.3.2DockerSwarm环境安装(4)启动docker服务,并检查服务状态。[root@node1yum.repos.d]#systemctlstartdocker[root@node1yum.repos.d]#systemctlstatusdockerdocker.service-DockerApplicationContainerEngineLoaded:loaded(/usr/lib/systemd/system/docker.service;disabled;vendorpreset:disabled)Active:active(running)sinceTue2017-01-2419:04:48UTC;10sagoDocs:http://docs.docker.comMainPID:1212(docker-current)CGroup:/system.slice/docker.service└─1212/usr/bin/docker-currentdaemon--exec-opt4.3.2DockerSwarm环境安装(5)修改配置文件,监听同一端口号[root@node1yum.repos.d]#vi/usr/lib/systemd/system/docker.service[Service]Type=notifyNotifyAccess=allEnvironmentFile=-/etc/sysconfig/dockerEnvironmentFile=-/etc/sysconfig/docker-storageEnvironmentFile=-/etc/sysconfig/docker-networkEnvironment=GOTRACEBACK=crashExecStart=/usr/bin/docker-currentdaemon-H0.0.0.0:2375-Hunix:///var/run/docker.sock\--exec-optnative.cgroupdriver=systemd\4.3.2DockerSwarm环境安装记得修改配置以后要重启服务[root@node1yum.repos.d]#systemctldaemon-reload[root@node1yum.repos.d]#systemctlrestartdocker[root@node1yum.repos.d]#netstat-anpl|grep2375tcp600:::2375:::*LISTEN1371/docker-current[root@node1yum.repos.d]#sudosystemctlrestartdocker4.3.2DockerSwarm环境安装(6)下载swarm组件[root@node1yum.repos.d]#dockerpullswarmUsingdefaulttag:latestTryingtopullrepositorydocker.io/library/swarm...latest:Pullingfromdocker.io/library/swarmebe0176dcf9a:Pullcomplete19f771faa982:Pullcomplete902eeedf931a:PullcompleteDigest:sha256:2a66586181b8ffc169035e8462614ab48836bd578de51f2233fd20c86e7408cbStatus:Downloadednewerimagefordocker.io/swarm:latest4.3.3创建swarm集群和自动编排(7)创建集群,加入节点。[root@node1~]#vicluster20.0.0.47:237520.0.0.48:2375"cluster"[New]2L,30Cwritten(8)启动集群[root@node1~]#dockerrun-d-p2376:2375-v$(pwd)/cluster:/tmp/clusterswarmmanagefile:///tmp/clusteredcb5d5f2efbe22825b33265340be56bf508606891652f6026df61537b4ae4394.3.3创建swarm集群和自动编排(9)查询集群节点信息[root@node1~]#dockerrun--rm-v$(pwd)/cluster:/tmp/clusterswarmlistfile:///tmp/cluster20.0.0.47:237520.0.0.48:2375(10)查询集群具体信息[root@node1~]#docker-H20.0.0.47:2376infoContainers:1Running:1Paused:0Stopped:0Images:24.3.3创建swarm集群和自动编排(11)查询集群活动状态[root@node1~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESedcb5d5f2efbswarm"/swarmmanagefile:/"3minutesagoUp3minutes0.0.0.0:2376->2375/tcpbig_banach4.3.3创建swarm集群和自动编排(12)在集群内部署应用,并查询集群信息[root@node1~]#docker-H20.0.0.47:2376run-idtbusybox53ffafc8a0fc3d60fa6c198d817a4869993509f8d25cf819cfee85936f27d25e[root@node1~]#docker-H20.0.0.47:2376infoContainers:2Running:2Paused:0Stopped:0Images:34.3.3创建swarm集群和自动编排(13)查询集群内部容器活动状态[root@node1~]#docker-H20.0.0.47:2376ps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES53ffafc8a0fcbusybox"sh"AboutaminuteagoUpAboutaminutenode2/trusting_goldwasseredcb5d5f2efbswarm"/swarmmanagefile:/"7minutesagoUp7minutes20.0.0.47:2376->2375/tcpnode1/big_banach4.3.3创建swarm集群和自动编排[root@node1~]#docker-H20.0.0.47:2376run-idtbusybox670ecb9bb4ce9e203e5e9e20875f5856c550c4ee0119ca371d9deff1ce53552b[root@node1~]#docker-H20.0.0.47:2376ps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES670ecb9bb4cebusybox"sh"6secondsagoUp2secondsnode2/pensive_ptolemy2c9bf4f83453busybox"sh"AboutaminuteagoUp58secondsnode1/evil_allen53ffafc8a0fcbusybox"sh"2minutesagoUp2minutesnode2/trusting_goldwasseredcb5d5f2efbswarm"/swarmmanagefile:/"9minutesagoUp9minutes20.0.0.47:2376->2375/tcpnode1/big_banach4.4OpenStack整合DockerOpenStack和Docker的关系OpenStack和Docker之间是很好的互补关系。Docker的出现能让IaaS层的资源使用得更加充分,因为Docker相对虚拟机来说更轻量,对资源的利用率会更加充分。如下图所示:4.4OpenStack整合Docker4.4OpenStack整合Docker从图中可以看出,Docker主要针对Paas平台,是以应用为中心。OpenStack主要针对Iaas平台,以资源为中心,可以为上层的PaaS平台提供存储、网络、计算等资源。OpenStack中和Docker有关系的项目如下图所示:4.4OpenStack整合Docker4.4OpenStack整合Docker主要包括Nova、Heat、Magnum、Sahara、Solum、Murano和Kolla等。由图3得知,和Docker相关的大部分项目都在PaaS和SaaS层。以下主要分别说明Nova、Heat、Magnum、Murano和Kolla。4.4OpenStack整合Docker4.4.3OpenStack中集成Docker目前有三种 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,分别如下。(1)DockerDriverforNova通过nova-api,dockerdriver作为hypervisor部署。原理很好理解,nova-computer-api调用virtapi将novadockerdriver作为httpagent和dockerrestapi互通,从而控制docker和与容器的通信。另外,glance作为dockerregister服务的本地节点,提供image服务。 这里写图片描述:4.4OpenStack整合Docker4.4OpenStack整合Docker优点-相比VM的性能优势,特别是Auto-ScaleOut的时候-使用经验、 资料 新概念英语资料下载李居明饿命改运学pdf成本会计期末资料社会工作导论资料工程结算所需资料清单 详细-混合方案,满足不同性能需求缺点-不支持Docker的一些高级特性-“一种轻量级虚拟机”这个idea是一把双刃剑-NovaAPI是对机器的抽象-而DockerAPI包含了对进程/应用的抽象4.4OpenStack整合Docker(2)DockerPluginforHeat 通过Heat组件来实现。利用heat来管理docker的资源模板,这样可以避免nova仅仅在hypervisor层面对docker管理的限制,比如一些docker本身构建的能力,或是docker容器之间的网络管理等。 这里写图片描述:4.4OpenStack整合Docker4.4OpenStack整合Docker优点-血统纯正——DockerInc.能够充分利用Docker的API问题-缺乏调度机制:quota、hostaggregate-不能用Glance来管理镜像4.4OpenStack整合Docker(3)Magnum在OpenStack和Docker集成的过程中,我们发现从OpenStack现有的项目中,找不到一个很好的集成点,虽然和Nova、Heat都做了集成的尝试,但缺点很明显,所以社区就开始了一个新的专门针对Docker和OpenStack集成的项目Magnum,用来提供容器服务。Magnum是2014年在巴黎峰会后从11月开始做的,到现在5个月时间有27个Contributor,有700多个Commit,发展速度还可以。Mangum的主要目的是提供Container服务的,它同时还可以和多个Docker集群管理系统集成,包括K8S、Swarm、CoreOS等。和这几个平台集成的主要原因是能让用户可以很方便地通过OpenStack云平台来集成K8S、CoreOS、Swarm这些已经很成型的Docker集群管理系统,促进Docker和OpenStack生态系统的融合。4.4OpenStack整合DockerMagnum的优点-支持多租户(安全性)-支持资源调度(NovaScheduler、Gantt)-支持多种Backends-支持BareMetal⽅方案
本文档为【Docker容器技术与应用朱晓彦教学全套课件项目4 Docker集群管理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥12.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
科技制造的艺术美
暂无简介~
格式:ppt
大小:702KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-07-19
浏览量:52