CodeGym /Kursy /Docker SELF /Nauka sieci overlay

Nauka sieci overlay

Docker SELF
Poziom 18 , Lekcja 1
Dostępny

7.1 Nauka sieci overlay

Sieć overlay — to rozproszona sieć Docker, która pozwala kontenerom działającym na różnych hostach komunikować się ze sobą. Często jest używana w kontekście orkiestracji kontenerów, takich jak Docker Swarm albo Kubernetes, aby zapewnić komunikację między kontenerami działającymi na różnych węzłach. W tym wykładzie przejrzymy, jak stworzyć i używać sieć overlay, a także przykłady jej zastosowania.

Sieć overlay tworzy wirtualną rozproszoną sieć na istniejących sieciach, łącząc kilka hostów w jedną wspólną przestrzeń sieciową. To umożliwia kontenerom komunikowanie się, jakby były w tej samej sieci lokalnej, niezależnie od fizycznej lokalizacji hostów.

Zalety korzystania z sieci overlay:

  1. Komunikacja między kontenerami na różnych hostach: zapewnia połączenie sieciowe między kontenerami uruchomionymi na różnych węzłach.
  2. Izolacja: umożliwia tworzenie odizolowanych przestrzeni sieciowych dla różnych aplikacji.
  3. Skalowalność: wspiera dynamiczne dodawanie i usuwanie węzłów bez przestojów w pracy.

7.2 Tworzenie sieci overlay

Aby stworzyć sieć overlay, najpierw musisz zainicjować klaster Docker Swarm. To utworzy węzeł zarządzający (menedżera) i pozwoli na tworzenie sieci rozproszonych.

Krok 1: Inicjalizacja Docker Swarm

Uruchom komendę na hoście, który będzie menedżerem klastra. Ta komenda zainicjalizuje klaster Swarm i wygeneruje komendę do dołączenia innych węzłów do klastra.

Terminal

docker swarm init

Krok 2: Dołączenie węzłów roboczych do klastra

Na innych hostach wykonaj komendę wygenerowaną przez docker swarm init, aby dołączyć je do klastra. Przykład komendy:

Terminal

docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377

Krok 3: Tworzenie sieci overlay

Po zainicjowaniu klastra stwórz sieć overlay za pomocą komendy:

Terminal

docker network create -d overlay my_overlay_network

Krok 4: Weryfikacja sieci

Aby sprawdzić, czy sieć została poprawnie utworzona, wykonaj komendę docker network ls, która wyświetli listę wszystkich sieci, w tym nową sieć overlay:

Terminal

docker network ls

Przykładowy wynik:

Terminal

NETWORK ID     NAME                DRIVER    SCOPE
a1b2c3d4e5     my_overlay_network overlay  swarm

Teraz sieć my_overlay_network jest gotowa do użytku w aplikacjach rozproszonych.

7.3 Użycie sieci overlay

Teraz, kiedy sieć została utworzona, możesz uruchamiać kontenery i serwisy, które są do niej podłączone.

Przykład użycia sieci overlay dla serwisów

W Docker Swarm można używać serwisów do zarządzania kontenerami. Stwórzmy kilka serwisów, które będą podłączone do sieci overlay.

Krok 1: Tworzenie serwisu serwera WWW

Terminal

docker service create --name webserver --network my_overlay_network -p 8080:80 nginx

Ta komenda tworzy serwis webserver, podłączony do sieci my_overlay_network. Serwer WWW będzie dostępny pod adresem http://localhost:8080.

Krok 2: Tworzenie serwisu bazy danych

Terminal

docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres

Tutaj tworzony jest serwis database, podłączony do tej samej sieci, z ustawieniem zmiennej środowiskowej POSTGRES_PASSWORD.

Krok 3: Sprawdzenie połączenia między serwisami

Uruchom tymczasowy kontener, aby sprawdzić połączenie między serwisami:

Terminal

docker run -it --network my_overlay_network busybox

Wewnątrz kontenera użyj komend ping, aby sprawdzić połączenie z serwerem WWW i bazą danych:

Terminal

ping webserver
ping database

Jeśli konfiguracja została wykonana poprawnie, ping pokaże pomyślne połączenie, potwierdzając, że kontenery mogą się komunikować po nazwach hostów.

Krok 4: Sprawdzenie statusu serwisów

Użyj komendy docker service ls, aby sprawdzić status utworzonych serwisów:

Terminal

docker service ls

Oczekiwany wynik pokaże informacje o uruchomionych serwisach, ich statusie i liczbie replik.

Uwaga: sieć overlay pozwala kontenerom na różnych hostach wymieniać dane, jeśli są one podłączone do tego samego klastra Swarm.

7.4 Przykłady użycia sieci overlay w Docker Compose

Docker Compose ułatwia zarządzanie aplikacjami wielokontenerowymi i sieciami. Możesz zdefiniować sieć overlay i używać jej do komunikacji między kontenerami w pliku docker-compose.yml.

Przykład pliku docker-compose.yml:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    networks:
      - my_overlay_network
        
  db:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: mysecretpassword
    networks:
      - my_overlay_network
        
networks:
  my_overlay_network:
    driver: overlay
    attachable: true

Uruchamianie Docker Compose:

Terminal

docker stack deploy -c docker-compose.yml mystack

Ta komenda wdroży stack, używając pliku docker-compose.yml, i stworzy serwisy podłączone do sieci my_overlay_network.

Praktyczne porady:

  1. Monitorowanie sieci: Używaj narzędzi do monitorowania Docker Swarm, takich jak Docker Dashboard albo Prometheus, aby śledzić stan sieci i interakcję między kontenerami.
  2. Zarządzanie skalowalnością: Sieć overlay wspiera dynamiczne dodawanie i usuwanie węzłów. Zapewnij prawidłową konfigurację zasobów sieciowych dla skalowalności aplikacji.
  3. Tworzenie kopii zapasowych konfiguracji: Regularnie zapisuj konfiguracje sieci i stacków, aby szybko je przywrócić w razie awarii.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION