This topic created in 2614 days ago, the information mentioned may be changed or developed.
几个问题.
1. 之前我们一直使用 supervisor + nginx+ gunicorn 组合.
现在想用 docker
nginx 一个 docker; gunicorn 一个 docker, 感觉 supervisor 没啥用了. supervisor 单独起一个进程监控两个 docker 进程? 没必要啊...
supervisor 加到 docker 里面监控 gunicorn? 感觉好麻烦啊..直接监控 docker 不就好了?
引申出另一个问题.
2. 如何监控 docker 的状态.
举例, gunicorn 挂了 docker 会跟着一起挂吗?
谢谢.
7 replies • 2019-04-11 15:48:37 +08:00
 |
|
3
baojiweicn2 Apr 10, 2019 via Android 1
supervisor 是不需要了,docker restart always 就成。 gunicorn 挂了 docker 也会挂,但是 restart always 就会自起来。 建议有 health check。让 lbs 定期去 check。 上 k8s 吧,既然都用容器了。
|
 |
|
4
mritd Apr 10, 2019 via iPhone 2
不需要 su,docker damon 本身由 systemd 守护,在新版本上事实上容器已经被 containerd 接管,containerd 由 systemd 控制,docker daemon 通过 rpc 调用 containerd 启动容器,至于在容器内启动 su 更不可取,因为在容器健康检查有效的情况下,su 会屏蔽 docker 对容器健康状态的感知,可能造成容器内服务已死,但是上层看到容器仍然健康(内部 su 存活)的情况,在使用上层编排系统后(eg: k8s),上层发展容器有问题会重新调度(k8s controller 调谐)
|
 |
|
5
baojiweicn2 Apr 10, 2019 via Android
额额,我表达的意思是 gunicorn 挂了 container 也会挂,docker 自己是不会挂的,可能和楼主的想表达的意思混淆了,特意纠正
|
 |
|
7
julyclyde Apr 11, 2019 1
本来就没啥用啊 python-supervisord 是“你们非 root ”用的东西,提供的好处是“每次让你少输入那么长的命令”
它本身不能监管本身,如果故障了那就故障了。不如 systemd/init 监管的服务那么可靠。在 docker 里如果 1 号进程挂了,容器就挂了,编排系统会负责去重启的
|