kubernetes objects再认识

栏目: 编程工具 · 发布时间: 7年前

内容简介:本文来自对极客时间《深入剖析kubernetes》的学习kubernetes objects 配置部分可以参见kubernetes yaml配置为什么需要pod?

简介(持续更新)

本文来自对极客时间《深入剖析kubernetes》的学习

kubernetes objects 配置部分可以参见kubernetes yaml配置

Pod

为什么需要pod?

  1. 操作系统为什么要有进程组?原因之一是 Linux 操作系统只需要将信号,比如,SIGKILL 信号,发送给一个进程组,那么该进程组中的所有进程就都会收到这个信号而终止运行。
  2. 在 Borg 项目的开发和实践过程中,Google 公司的工程师们发现,他们部署的应用,往往都存在着类似于“进程和进程组”的关系。更具体地说,就是这些应用之间有着密切的协作关系,使得它们必须部署在同一台机器上。具有“超亲密关系”容器的典型特征包括但不限于:

    • 互相之间会发生直接的文件交换
    • 使用 localhost 或者 Socket文件进行本地通信
    • 会发生非常频繁的远程调用
    • 需要共享某些 Linux Namespace
  3. 亲密关系 ==> 亲密关系为什么不在调度层面解决掉?非得提出pod 的概念? 容器设计模式
  4. Pod,其实是一组共享了某些资源的容器。当然,共享Network Namespace和Volume 可以通过 通过docker run --net=B --volumes-from=B --name-=A image-A... 来实现,但这样 容器 B 就必须比容器 A 先启动,这样一个 Pod 里的多个容器就不是对等关系,而是拓扑关系了。
  5. Pod 最重要的一个事实是:它只是一个逻辑概念。有了Pod,我们可以说Network Namespace和Volume 不是container A 的,也不是Container B的,而是Pod 的。哪怕Container A/B 还没有启动,我们也可以 配置Network Namespace和Volume 。以network namespace 为例,为什么需要一个pause 容器参见 《Container-Networking-Docker-Kubernetes》笔记
  6. Pod 这种“超亲密关系”容器的设计思想,实际上就是希望,当用户想在一个容器里跑多个功能并不相关的应用时,应该优先考虑它们是不是更应该被描述成一个 Pod 里的多个容器。你就可以把整个虚拟机想象成为一个 Pod,把这些进程分别做成分别做成容器镜像,把有顺序关系的容器,定义为 Init Container。 作者提到了tomcat 镜像和war 包(war包单独做一个镜像)的例子,非常精彩,好就好在 分别做镜像 肯定比 镜像坐在一起要方便。

笔者个人微信订阅号

kubernetes objects再认识


以上所述就是小编给大家介绍的《kubernetes objects再认识》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件测试的艺术

软件测试的艺术

梅尔斯 / 机械工业出版社 / 2006年01月 / 22.0

《软件测试的艺术》(原书第2版)成功、有效地进行软件测试的实用策略和技术:    基本的测试原理和策略      验收测试    程序检查和走查         安装测试    代码检查            模块(单元)测试    错误列表            测试规划与控制    同行评分            独立测试机构    黑盒、白盒测试    ......一起来看看 《软件测试的艺术》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具