On Thu, Aug 20, 2015 at 7:39 PM spin@hackerspace.pl wrote:
On 2015-08-19 15:48, rysiek wrote:
Elo,
no więc mamy kilkadziesiąt różnych kontenerów z różnymi usługami, oddzielonymi i oddzielnie zarządzanymi -- a życie jest dobre.
Na dole drzewka mieszkają sobie jakieś kontenery z mysql czy innym neo4j, nad nimi php-fpmy i django, wyżej jakiś nginx, a nad nginxem kontener co to musi mieć dostęp po www do jakiejś usługi na przykład. To wszystko rzecz jasna połączone, i zarządzane przez docker-compose.
Zrestartowanie kontenera z mysql gdzieś na dole oznacza zerwanie linków i koniecznośc restartowania wszystkich kontenerów linkujących do niego, oraz linkujących do tychże kontnerów, i tak dalej -- czyli w najgorszym wypadku ~50 kontenerów na trzech poziomach:
mysql -> php-fpm/django -> nginx -> nad nginxem
To zajmuje czas i oznacza downtime, le fu-.
Oczywiście mogę sobie ręcznie przepiąć iptablesy i inne /etc/hostsy, ale to też le fu-.
Więc pytanie do wymiataczy dockerowych, których mam nadzieję mamy na tej liście: jak żyć, panie premierze? W sensie, what is the best practice jeśli idzie o restartowanie linked containers? Bo na pewno się jakoś da. Tylko jak?
Czekaj, ale jaki jest problem? Że nie masz śledzenia zależności między kontenerami, czy że nie masz redundantnej / umiejącej retry infrastruktury? W sensie, czemu niby php-fpm ma się restartować jeśli restartujesz nginx? Przekręcisz nginx, socket padnie, otworzy się nowy, done. Przekręcisz mysql, socket padnie, otworzy się nowy, done. Pewnie chcesz gdzieś frontend przekierować podczas takich operacji i poblokować nowe połączenia, ale nie czuję czemu tutaj są jakieś zależności wymagające restartów.