V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linxiaoziruo
V2EX  ›  程序员

关于 k8s 的 pod 疑惑

  •  
  •   linxiaoziruo · 2019-09-26 17:25:56 +08:00 · 2437 次点击
    这是一个创建于 1887 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个 pod 里包含一个或者多个容器。一个容器里面又能运行多个进程。 一个 pod 是一个进程,一个容器又是一个进程,这难道是进程里面跑进程,进程里面包含进程?这从操作系统层面说不通啊。

    16 条回复    2019-09-27 10:17:50 +08:00
    xifan8866
        1
    xifan8866  
       2019-09-26 18:22:32 +08:00 via iPhone
    操作系统难道不是一个进程嘛
    Bromine0x23
        2
    Bromine0x23  
       2019-09-26 18:28:10 +08:00
    简单来说,Pod 不对应进程
    linxiaoziruo
        3
    linxiaoziruo  
    OP
       2019-09-26 18:44:51 +08:00
    如果都是进程,为啥操作系统看不到容器里跑的进程。打开命令行看不到相关的进程信息
    xfriday
        4
    xfriday  
       2019-09-26 18:48:59 +08:00
    @linxiaoziruo 宿主主机可以看到容器内的进程,容器内跑个空 loop,然后宿主主机 top 一下就看到了,容器技术做的是资源隔离
    Rand01ph
        5
    Rand01ph  
       2019-09-26 19:09:48 +08:00
    最好是一个容器对应一个进程,一个 Pod 应该抽象成一个应用。
    choury
        6
    choury  
       2019-09-26 19:16:26 +08:00
    谁说一个 pod 对应一个进程的,瞎扯
    Nitroethane
        7
    Nitroethane  
       2019-09-26 19:26:17 +08:00 via Android   ❤️ 2
    容器是利用 Linux 内核的命名空间特性以及 cgroup 特性构建的,容器中的一个进程在宿主机中也表现为一个进程。pod 是 k8s 进行资源管理和调度的基本单位。一个 pod 中可以包含多个容器,同一个 pod 内的容器共用一个命名空间(网络命名空间和 pid 命名空间),一般是联系比较紧密的应用才会放到同一个 pod 里,官方文档里有举例子。一个容器里可以跑多个进程,但是从实践角度来说基本不会在一个容器里跑多个进程。
    其中提到的名词够你学一阵了
    0312birdzhang
        8
    0312birdzhang  
       2019-09-26 19:31:28 +08:00
    谁告诉你的,基本都错了
    reus
        9
    reus  
       2019-09-26 19:36:01 +08:00
    进程树了解一下
    ls2110609
        10
    ls2110609  
       2019-09-26 19:51:10 +08:00
    去看看 k8s 权威指南吧
    sweetweapen
        11
    sweetweapen  
       2019-09-26 19:51:54 +08:00
    # Nitroethane 正解
    LeeSeoung
        12
    LeeSeoung  
       2019-09-26 19:56:03 +08:00
    看下 7 楼 正解。。
    polythene
        13
    polythene  
       2019-09-26 20:17:19 +08:00
    可以把 Pod 理解成一个虚拟机 vm,一个虚拟机里面可以跑多个进程( container ),k8s 负责把这个虚拟机调度到某个实体机器上
    a852695
        14
    a852695  
       2019-09-26 20:23:46 +08:00
    pod 不是一个实体
    linxiaoziruo
        15
    linxiaoziruo  
    OP
       2019-09-27 09:59:51 +08:00
    我擦,早上到工位一看,这么多回复,全明白了。大佬们,小弟给跪了。
    Reficul
        16
    Reficul  
       2019-09-27 10:17:50 +08:00
    宿主机不一定看得到容器里的进程,取决于 CRI 是啥。gvisor 里一个容器里无论有多少进程在宿主上看起来就一个进程,和 kvm 一样。

    Pod 就是多个容器组成的一个整体,模拟的是一个机器。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4867 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 10:04 · PVG 18:04 · LAX 02:04 · JFK 05:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.