Docker komponuje równoważenie i skalowanie obciążenia

Docker komponuje równoważenie i skalowanie obciążenia
Docker Compose to lubiany i podstawowy element Docker, który jest powszechnie używany do przetwarzania i zarządzania wieloma aplikacjami i usługami kontenerów i usług. Ponieważ Docker komponuje aplikacje wielokontażowe, dlatego jest konieczne mądre zarządzanie tymi usługami lub kontenerami. Dzięki Dockerowi skalowanie i równoważenie obciążenia pozwalają nam skutecznie zarządzać i wykonywać wiele usług.

Ten blog pokaże, jak wdrożyć skalowanie i równoważenie obciążenia w Docker Compose.

Jak zwiększyć usługi w Docker Compose?

Skalowanie w Docker oznacza tworzenie replików usług lub kontenerów. Te repliki są zarządzane na hoście. Aby zaimplementować skalowanie w Docker Compose, przejdź przez podane instrukcje.

Krok 1: Generuj DockerFile
Wygeneruj plik dokujący, który będzie kontenerować golang ”Main1.Iść”Program. W tym celu wklej dostarczony kod do pliku:

Od Golang: 1.8
WorkDir/Go/Src/App
Kopiuj Main1.Iść .
RUN GO BUDLE -O WEBSERVER .
Expose 8080: 8080
PUNKT WEJŚCIA ["./serwer internetowy"]

Krok 2: Generuj plik komponsu
Następnie utwórz kolejny plik o nazwie „Kompozycja dokera.yml”Złóż i wklej poniżej instrukcje:

Wersja: „Alpine”
Usługi:
sieć:
zbudować: .
Porty:
- 8080

Tutaj:

  • "usługi”Służy do tworzenia i konfigurowania usługi kompozycji Docker. W tym celu skonfigurowaliśmy „sieć" praca.
  • "zbudować”Jest wykorzystywany do określenia pliku dokera. W danym bloku kodu klawisz kompilacji użyje powyższego podanego pliku dokera.
  • "porty”Odsłaniają porty dla kontenerów. Tutaj wykorzystaliśmy „8080" zamiast "8080: 8080". Dzieje się tak, ponieważ gdy skalujemy różne usługi, port wiążący „8080”Zostanie przydzielone tylko do jednej usługi, a druga wygeneruje błąd. „„porty" wartość "8080”Umożliwia Dockerowi automatyczne przypisanie portów do usług w sieci hosta:

Alternatywnie użytkownicy mogą przypisać „porty„Wartość w zakresie, takim jak„80-83: 8080". To automatycznie przypisuje porty eksponujące w określonym zakresie do każdego kontenera lub usługi.

Krok 3: Uprzepustuj pojemniki
Następnie odpal pojemniki za pomocą „Komposowanie dokera" Komenda. Aby powtórzyć „sieć„Usługa, użyj„-skala„Opcja wraz z„=„Wartość, jak pokazano poniżej:

Docker-Compose Up-skala Web = 2

Krok 4: Lista kontenerów komponują
Wymień komponuj kontenery i sprawdź, czy usługi skalowania są wykonywane, czy nie:

PS -A -kompose dokera

Możesz zobaczyć dwie repliki „sieć„Usługa działa”61844" I "61845”Odpowiednio lokalne porty hosta:

W celu potwierdzenia przejdź do przypisanych portów lokalnego hosta i sprawdź, czy usługa działa, czy nie.

Można zauważyć, że „sieć„Usługa z powodzeniem uruchomi się na przypisanych portach:

Jak zaimplementować równoważenie obciążenia w Docker Compose?

Balancer obciążenia jest jednym z najlepszych rozwiązań do zarządzania ruchem od różnych kontenerów lub klientów na serwerze. Zwiększa niezawodność i dostępność aplikacji i usług. Różne kryteria routingu są używane na backend do zarządzania aplikacjami wieloma kontenerami, takimi jak Round Robin.

Aby wdrożyć technikę równoważenia obciążenia w usługach komponowanych, skorzystaj z podanych instrukcji.

Krok 1: Utwórz „nginx.plik conf ”
Stworzyć "nginx.conf”Plik i wklej poniższy kod do pliku. Instrukcje te obejmują:

  • "pod prąd”Z nazwą„Wszystko”Określ usługę upstream. Tutaj możesz określić tyle usług, ile musisz zarządzać. Na przykład zdefiniowaliśmy „sieć„Usługa oczekuje się ujawnienia w porcie 8080.
  • W "serwer”, Ustawiliśmy port słuchowy„8080„Dla równoważenia obciążenia nginx i minął proxy”http: // all/„Aby zarządzać usługą Upstream:
użytkownik nginx;
wydarzenia
robotnik_connections 1000;

http
Upstream All
Serwer Web: 8080;

serwer
Posłuchaj 8080;
Lokalizacja /
proxy_pass http: // all/;


Krok 2: Skonfiguruj obciążenie Balancer Nginx w „Kompozycie dokera.plik yml ”
Następnie skonfiguruj równoważenie obciążenia „nginx„Usługa w„Kompozycja dokera" plik. W tym celu określliśmy następujące klucze:

  • "obraz”Definiuje obraz podstawowy dla„nginx" praca.
  • "wolumeny”Służy do powiązania„nginx.conf„Do docelowej ścieżki kontenera.
  • "zależy od”Określa, że„nginx„Usługa będzie zależeć od„sieć" praca:
  • "porty”Określ port słuchowy usługi Balancer Nginx:
Wersja: „Alpine”
Usługi:
sieć:
zbudować: .
nginx:
Zdjęcie: nginx: najnowszy
wolumeny:
- ./nginx.conf:/etc/nginx/nginx.CONF: RO
zależy od:
- sieć
Porty:
- 8080: 8080

Krok 3: Uruchom pojemniki komponowane
Teraz uruchom pojemnik na komponowanie wraz z „-skala„Opcja realizacji replik usług internetowych:

Docker-Compose Up-skala Web = 2

Tutaj te repliki usług internetowych są zarządzane w serwisie Balancer ”„nginx”:

Przejdź po porcie odsłuchowym „nginx”Usługa i sprawdź, czy saldo ładowania zarządza dwoma kontenerami usługi sieciowej w tym samym porcie, czy nie. Odśwież stronę, aby przejść na drugi pojemnik i ponownie odśwież stronę, aby przełączyć na pierwszy kontener:

Chodzi o równoważenie i skalowanie obciążenia Docker.

Wniosek

Równoważenie obciążenia i skalowanie to techniki zwiększające dostępność i niezawodność aplikacji. Skalowanie Docker generuje repliki określonych usług i równowaga modułu obciążenia lub zarządza ruchem do i z różnych kontenerów na serwerze. W tym celu wykorzystaliśmy „nginx„Jako równowaga obciążenia. Ten blog pokazał, że Docker komponuje równoważenie i skalowanie obciążenia.