Czy należy używać forever / pm2 w kontenerze (Docker)?
Refaktoruję kilka węzłów.js services. Wszystkie z nich zaczynały się od forever
na serwerach wirtualnych, jeśli proces uległ awarii, po prostu uruchamiają się ponownie.
Teraz, przechodząc do kontenerowych i bezstanowych struktur aplikacji, myślę, że proces powinien zakończyć się i kontener powinien zostać ponownie uruchomiony po niepowodzeniu.
Czy to prawda? Czy są zalety czy wady?3 answers
Moim zdaniem nie należy używać nadzorcy procesów w kontenerze (forever, pm2), a zamiast tego użyć docker restart policy poprzez --restart=always
(lub jeden z innych smaków tej opcji). Jest to bardziej zgodne z ogólną filozofią Dockera i powinno działać bardzo podobnie do nadzoru procesu w kontenerze, ponieważ kontenery docker zaczynają działać bardzo szybko.
Najsilniejszym zwolennikiem uruchomienia nadzoru nad procesem w kontenerze, jaki widziałem, jest Phusion baseimage-Docker README jeśli chcesz poznać inne stanowisko na ten temat.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-09 14:59:04
Chociaż dobrym pomysłem jest użycie --restart=always
jako zabezpieczenia awaryjnego, ponowne uruchamianie kontenera jest stosunkowo powolne (5+ sekund z prostym serwerem węzłów Hello World opisanym tutaj ), więc możesz zminimalizować przestoje aplikacji za pomocą czegoś takiego jak forever
.
Minusem ponownego uruchomienia procesu w kontenerze jest to, że odzyskiwanie awarii może się teraz zdarzyćna dwa sposoby, co może mieć wpływ na monitorowanie itp.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-27 06:21:04
Węzeł wymaga konfiguracji klastrów, jeśli pracujesz na serwerze z wieloma procesorami.
Z PM2 dostajesz to bez pisania dodatkowego kodu. http://pm2.keymetrics.io/docs/usage/cluster-mode/
Chyba, że używasz kilku serwerów z pojedynczymi instancjami procesora, niż powiedziałbym, że używasz PM2 w produkcji.
Pm2 będzie również szybszy do restartu niż docker
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-20 14:41:02