Kubernetes豆荚-为什么有时会有多个过程?

时间:2019-03-29 20:36:15

标签: kubernetes

我的理解是,如果将一个容器配置为具有一个容器,则该容器将以PID 1的形式运行其“主”进程。我的吊舱每个只有一个容器,而且它们经常有多个运行的进程(总是同一进程的副本)-为什么会发生这种情况?

在一个群集上,我有:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.3  0.4 276668 76076 ?        Ssl  16:50   0:48 python manage.py drive_consumer_worker
root        19  0.0  0.0  34432  2756 ?        Rs   20:28   0:00 ps aux

在另一个群集(运行相同的Deployment)上,我有:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  1.2  0.3 1269420 104388 ?      Ssl  Mar16 240:12 python manage.py drive_consumer_worker
root        26  0.0  0.2 1044312 84160 ?       S    Mar16   0:01 python manage.py drive_consumer_worker
root        30  0.0  0.0  34440  2872 ?        Rs   20:30   0:00 ps aux

如您所见,内存大小足够大,足以表明这是一个“真实”的过程,但是我不知道该怎么做才能继续调试。我看不到任何定义了Pod副本数和进程数的模式。

部署定义中的摘录:

      containers:
      - args:
        - newrelic-admin run-program python manage.py drive_consumer_worker
        command:
        - /bin/bash
        - -c

这是怎么回事?

1 个答案:

答案 0 :(得分:1)

这实际上取决于父进程,如果它不产生任何子进程,则1就是容器中的全部内容。在这种情况下,python manage.py drive_consumer_worker似乎正在生成子进程,因此,如果容器中有更多进程,则由应用程序来控制是否生成子进程。