关于 k8s 的 pod 疑惑

2019 年 9 月 26 日
 linxiaoziruo

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

2977 次点击
所在节点    程序员
16 条回复
xifan8866
2019 年 9 月 26 日
操作系统难道不是一个进程嘛
Bromine0x23
2019 年 9 月 26 日
简单来说,Pod 不对应进程
linxiaoziruo
2019 年 9 月 26 日
如果都是进程,为啥操作系统看不到容器里跑的进程。打开命令行看不到相关的进程信息
xfriday
2019 年 9 月 26 日
@linxiaoziruo 宿主主机可以看到容器内的进程,容器内跑个空 loop,然后宿主主机 top 一下就看到了,容器技术做的是资源隔离
Rand01ph
2019 年 9 月 26 日
最好是一个容器对应一个进程,一个 Pod 应该抽象成一个应用。
choury
2019 年 9 月 26 日
谁说一个 pod 对应一个进程的,瞎扯
Nitroethane
2019 年 9 月 26 日
容器是利用 Linux 内核的命名空间特性以及 cgroup 特性构建的,容器中的一个进程在宿主机中也表现为一个进程。pod 是 k8s 进行资源管理和调度的基本单位。一个 pod 中可以包含多个容器,同一个 pod 内的容器共用一个命名空间(网络命名空间和 pid 命名空间),一般是联系比较紧密的应用才会放到同一个 pod 里,官方文档里有举例子。一个容器里可以跑多个进程,但是从实践角度来说基本不会在一个容器里跑多个进程。
其中提到的名词够你学一阵了
1daydayde
2019 年 9 月 26 日
谁告诉你的,基本都错了
reus
2019 年 9 月 26 日
进程树了解一下
ls2110609
2019 年 9 月 26 日
去看看 k8s 权威指南吧
sweetweapen
2019 年 9 月 26 日
# Nitroethane 正解
LeeSeoung
2019 年 9 月 26 日
看下 7 楼 正解。。
polythene
2019 年 9 月 26 日
可以把 Pod 理解成一个虚拟机 vm,一个虚拟机里面可以跑多个进程( container ),k8s 负责把这个虚拟机调度到某个实体机器上
a852695
2019 年 9 月 26 日
pod 不是一个实体
linxiaoziruo
2019 年 9 月 27 日
我擦,早上到工位一看,这么多回复,全明白了。大佬们,小弟给跪了。
Reficul
2019 年 9 月 27 日
宿主机不一定看得到容器里的进程,取决于 CRI 是啥。gvisor 里一个容器里无论有多少进程在宿主上看起来就一个进程,和 kvm 一样。

Pod 就是多个容器组成的一个整体,模拟的是一个机器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/604493

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX