为什么 K8S 要求 Pod 中的 Container 启动时至少有一个进程是前台运行的?

2021-03-19 08:43:08 +08:00
 zhoudaiyu

不是很明白为什么必须前台,如果有的进程就是只能后台启动的,那怎么办呢?

4673 次点击
所在节点    Kubernetes
50 条回复
julyclyde
2021-03-22 16:19:32 +08:00
依靠 SIGCHLD 来检测容器内的程序有没有退出
如果退出就要做后续扫尾动作了
julyclyde
2021-03-22 16:20:15 +08:00
@killva4624 暴露了暴露了!
julyclyde
2021-03-22 16:20:43 +08:00
@claymore94
@napsterwu
你这个 tail-f 是不是会有点费 cpu 啊
byzf
2021-03-22 17:12:20 +08:00
否则容器运行时依靠什么来判断容器有没有结束。
dabney777
2021-03-22 17:21:23 +08:00
@ospider 如果更新了一段代码导致 core dump 了,supervisor 会一直重启进程,这时候登录进去看日志很容易查看日志。如果主进程就是新写的进程的话,容器会一直重启,也看不到报错
joesonw
2021-03-22 19:31:14 +08:00
@byzf 容器不是虚拟机. 容器也是在宿主机上, 只是命名空间, 资源做了隔离. 本质就是一个进程.
zhoudaiyu
2021-03-22 19:36:00 +08:00
@joesonw 老哥 说到隔离问个问题 为什么容器里的 CPU 内存用量都看到的是宿主机的?如果我想只看到本 container 或者 pod 的,该如何做?
byzf
2021-03-22 20:38:54 +08:00
@joesonw 不是只有虚拟机才有运行时,容器目前来说大多数是必须要运行时的,比如 docker daemon,然后这个运行时要去管理容器的状态,判断是否成功运行、是否要重启之类的操作。
julyclyde
2021-03-23 11:14:57 +08:00
@zhoudaiyu 用 lxcfs 就能看到实际分配资源量了
dzdh
2021-04-06 23:56:30 +08:00
容器本身就是另一种『进程模型』的实现。

你用 supervisor 的需求,本质上是想『多个容器共享存储、网络、设备』等资源。

在 k8s 里,你将这多个 container 放在一个 pod 里就可以了啊。不动为什么还需要 supervisor

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

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

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

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

© 2021 V2EX