5

Używam programu Docker Compose (v2) i mam usługę węzła (stronę internetową) oraz interfejs użytkownika oparty na pythonie z nginxem siedzącym przed nimi.Automatyczne dołączanie kontenera dokera do poprzedniej konfiguracji modułu równoważenia obciążenia nginx

Jedna rzecz, którą chciałbym zrobić, to móc skalować usługi, dodając więcej kontenerów. Jeśli wiem z wyprzedzeniem, ile kontenerów będę posiadał, mogę kodować konfigurację nginx na wcześniejszym etapie z odniesieniami do adresów IP kontenerów udostępnianych przez dokowanie. Problem polega jednak na tym, że chcę, aby konfiguracja nginxa była dynamiczna, np. jeśli dodaję inny kontener Docker, po prostu dodaje on położenie kontenera do listy upstream IP w bloku upstream.

Mój pomysł polegał na stworzeniu skryptu, który automatycznie doda serwery wyższego poziomu przy użyciu zmiennych env, gdy pojemniki ulegną zmianie, ale nie jestem pewien, od czego zacząć i nie mogę znaleźć dobrego przykładu.

Odpowiedz

2

Istnieje kilka sposobów osiągnięcia tego. To, o czym mówisz, nazywane jest zwykle wykrywaniem usługi i występuje w wielu postaciach. Opiszę dwa z nich, których używałem wcześniej.

Pierwszy i najprostszy (który działa dobrze dla pojedynczych serwerów lub tylko odkrywając kontenery lokalnie na jednym serwerze) to lokalny serwer proxy, który korzysta z gniazda lub interfejsu Docker. https://github.com/jwilder/nginx-proxy jest jednym z popularnych i powinno dobrze działać przy tworzeniu prototypów skalowalnych usług w Compose.

Innym sposobem (bardziej przyjaznym dla wielu hostów, ale bardziej skomplikowanym) byłoby rejestrowanie usług w rejestrze (np. Etcd lub Consul), a następnie dynamiczne zapisywanie konfiguracji. Aby to zrobić, możesz użyć systemu rejestracji (takiego jak https://github.com/gliderlabs/registrator), aby zarejestrować kontenery i ich porty. Następnie serwer proxy lub aplikacja może pobrać plik konfiguracyjny zapisany przy użyciu systemu szablonów, takiego jak https://github.com/kelseyhightower/confd.

+0

to wygląda dokładnie to, czego szukałem, dzięki! – ExoticChimp

Powiązane problemy