薄情先生|Docker,容器,编排,和基于容器的系统设计模式( 二 )
如果在一个docker容器里面 , 使用ps命令查看进程 , 可能只会看到如下的输出:
/ # psPIDUSERTIME COMMAND1 root0:00 /bin/bash10 root0:00 ps在容器中执行ps , 只会看到1号进程/bin/bash和10号进程ps 。 前面有说到 , docker容器本身只是Linux中的一个进程(组) , 也就是说在宿主机上 , 这个/bin/bash的pid可能是100或1000 , 那为什么在docker里面看到的这个/bin/bash进程的pid是1呢? 答案是linux提供的Namespace机制 , 将/bin/bash这个进程的进程空间隔离开了。
具体的做法呢 , 就是在创建进程的时候添加一个可选的参数 , 比如下面这样:
int pid = clone(main_function, stack_size, CLONE_NEWPID | SIGCHLD, NULL);那样后 , 创建的线程就会有一个新的命名空间 , 在这个命名空间中 , 它的pid就是1 , 当然在宿主机的真实环境中 , 它的pid还是原来的值 。 上面的这个例子 , 其实只是pid Namespace(进程命名空间) , 除此之外 , 还有network Namespace(网络命名空间) , mount Namespace(文件命名空间 , 就是将整个容器的根目录root挂载到一个新的目录中 , 然后在其中放入内核文件看起来就像一个新的系统了)等 , 用以将整个容器和实际宿主机隔离开来 。 而这其实也就是容器基础的基础实现了 。
但是 , 上述各种Namespace其实还不够 , 还有一个比较大的问题 ,那就是系统资源的隔离, 比如要控制一个容器的CPU资源使用率 , 内存占用等 , 否则一个容器就吃尽系统资源 , 其他容器怎么办 。
而Linux实现资源隔离的方法就是Cgroups , 具体的使用方法就不多介绍 。 Cgroups主要是提供文件接口 , 即通过修改 /sys/fs/cgroup/下面的文件信息 , 比如给出pid , CPU使用时间限制等就能限制一个容器所使用的资源 。
所以 , docker本身只是linux中的一个进程 , 通过Namespace和cgroup将它隔离成一个个单独的沙盒 。 明白这点 , 就会明白docker的一些特性 , 比如说太过依赖内核的程序在docker上可能执行会出问题 , 比如无法在低版本的宿主机上安装高本版的docker等 , 因为本质上还是执行在宿主机的内核上 。
对了 , 还有mac和windows系统 , 这些是怎么实现的呢?很简单 , 它们的docker都是建立在虚拟化的linux上的 , 所以其实还是linux 。
说完容器 , 接下来就开始介绍编排了 。
编排之争这里我们主要会介绍编排这个概念 , 以及从这个概念起引发的docker swarm和k8s的纷争 。
docker本身只是提供打包-部署的功能 , 它并没有提供分布式集群(大规模集群)管理的功能 , 这其实是原本Paas项目的主要领域 。而编排才是容器技术的核心魅力所在, 没有编排 , 容器就只是一个沙箱工具 。 所以从docker成熟以后 , 你会发现它的主要发力点是在编排 , 也就是swarm项目上 , 不过这个docker的亲儿子 , swarm编排工具 , 却败给了横空出世的k8s 。
为什么会这样?
先说说什么是容器的编排 , 说简单些 就是对(docker)容器的配置 , 运行时候的行为的管理。
那么docker swarm是怎么进行编排的呢?这其实还涉及到另一个项目 , docker-compose , 这两个项目与docker Machine合称为docker三剑客(怎么听起来有点low) 。
前面说到编排就是对容器的配置和运行行为进行管理 , 那么很自然的想法就是将这些配置和行为的定义都写到一个配置文件里面 , 比如用户需要运行容器A , 容器B , 容器C 。 那么我们可以将这几个容器相关的配置和关联 , 比如网络 , 磁盘 , 启动副本 , 出错行为等配置 , 还有容器间的协作方式(启动顺序等)都写到一个配置文件 。最后通过一条命令 , 加载并执行这个配置文件 , 就能够实现容器的编排了。
swarm做的事情很简单 , 有时候简单不一定是好事 , 因为那意味着难以满足业界复杂的需求 。 比如它在处理有状态服务上的无力 , 又比如它难以处理多个服务间复杂的关系(处理服务的顺序是不够的) 。 这时候 , 脱胎于Borg的kubernetes(k8s)出现在人们的面前 。 它身上 , 沉淀着google数十年的经验 , 可以说它就是那个站在巨人肩膀上的宠儿 。 那么相比于swarm , 它的优势到底在哪里呢?
推荐阅读
- 张先生18823381855|转让海翼国际控股
- 先生|一停就是10年,60万豪车竟没人要?车主说:我不能动……
- 明星八卦|靳东亮相新戏发布会,阵容曝光被批不如《恋爱先生》,你怎么看
- 9月7日晚间|柏堡龙:实际控制人陈伟雄先生、陈娜娜女士解除质押共约2690万股
- 先生|60万豪车竟没人要?车主说:我不能动……,一停就是10年
- 包先生|什么包显品味还不撞包?看看这篇你就知道了!
- 疫情后的九先生轰趴馆市场前景依旧稳定
- 薄情先生|热烈祝贺首批CPAC分散控制系统产品正式交付
- 薄情先生|汉华推出氮化镓PD快充散热解决方案,全方位满足电源厂商需求
- 郭艾伦|辽宁男篮好消息!核心后卫正式留队,成为CBA顶薪先生
