欢迎来到天天文库
浏览记录
ID:56430910
大小:2.89 MB
页数:44页
时间:2020-06-18
《Docker+kubernetes技术资料ppt版本.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Docker&kubernetes210max主要内容Docker介绍及原理Docker操作Docker三剑客扩展-swarmkubernetes介绍及原理第一部分Docker介绍及原理DockerDocker基于容器技术的轻量级虚拟化解决方案Docker是容器引擎,把Linux的cgroup、namespace等容器底层技术进行封装抽象(后面会介绍此两种技术),为用户提供了创建和管理容器的便捷界面(包括命令行和API)Docker是一个开源项目,诞生于2013年初,基于Google公司推出的Go语言实现微软,红帽Lin
2、ux,IBM,Oracle等主流IT厂商已经在自己的产品里增加对Docker的支持。Google每周启动超过20亿个容器进行业务服务,于上个世纪90年代已经开始大规模使用容器技术210maxvm现有问题1、资源利用效率低2、单物理机多应用无法有效隔离(进程空间,cpu资源,磁盘)3、运维部署不便4、测试、版本管理复杂5、迁移成本高6、传统虚拟机,空间占用大,启动慢,管理复杂210maxDocker--轻量级虚拟化容器技术1、秒级启动,秒级停止,空间资源占用极少(几M)2、实现进程级别的隔离3、可在普通服务器上建立上百个d
3、ocker实例4、加快开发测试部署的速度5、简化版本管理210maxDocker的生态圈OfficialRepos&14K+DockerizedAppsCommunity460+Contributors250+MeetupsonDocker2.75MDownloads6.7KProjectsonGitHubSupportEnterpriseSupportRobustDocumentationImplementation,Integration,TrainingNetworkofPartnersTheDockerPlatf
4、ormDockerEngineDockerHubBuild,Ship,andRunPartnersContentUsers210max认识DockerNamespaces(IBM)Cgroups(Google)LXCtoolsTheLinuxKernelGitSELinux(RedHat)SolarisZonesBSDJails+++Docker如何和Linux内核打交道?Docker平台工具、守护进程Image镜像,包括应用及系统的只读数据包Container容器,虚拟机的运行实例Registry仓库登记,管理镜像文件
5、DockerhubDocker官方公有仓库Docker专业术语210maxDockerVSVM210maxDocker容器本质上是宿主机上的进程。docker通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时拷⻉机制(copy-on-write)实现了⾼效的⽂件操作。1、namespace资源隔离想要实现⼀个资源隔离的容器,在分布式的环境下进⾏通信和定位,容器必然要有独⽴的IP、端⼝、路由等,⾃然就联想到了⽹络的隔离。同时,容器还需要⼀个独⽴的主机名以便在⽹络中标识⾃⼰。有了⽹络,⾃然离不开
6、通信,也就想到了进程间通信需要隔离。开发者可能也已经想到了权限的问题,对⽤户和⽤户组的隔离就实现了⽤户权限的隔离。最后,运⾏在容器中的应⽤需要有进程号(PID),⾃然也需要与宿主机中的PID进⾏隔离。Docker的原理210maxDocker的原理pid-进程net-网络ipc-消息mnt-文件系统uts-分时user-用户Namespace资源隔离LinuxKernelPID也是可以被虚拟的。命名空间建立系统的不同视图,对于每一个命名空间,从用户看起来,应该像一台单独的Linux计算机一样,有自己的init进程(PID
7、为1),其他进程的PID依次递增,A和B空间都有PID为1的init进程,子容器的进程映射到父容器的进程上,父容器可以知道每一个子容器的运行状态,而子容器与子容器之间是隔离210maxDocker的原理-docker总览如图创建一个docker容器,通过imagemanagent的distribution和registry模块拉取镜像,通过镜像管理里面的image、reference和layer存储镜像的元数据;镜像存储驱动graphdriver将镜像存储在文件系统、编辑或维护docker工作目录镜像层,最终对镜像的元数
8、据的增删改查,屏蔽不同层调用的影响;docker容器创建网络,通过network模块调用libnetwork创建配置网络,libnetwork可以抽象出容器网络核心模型:沙盒、端点、网络,五种内置驱动bridge、host、none、remote和overlay;创建volume数据卷需调用volumedriver,
此文档下载收益归作者所有