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
:
- Komunikacja między kontenerami na różnych hostach: zapewnia połączenie sieciowe między kontenerami uruchomionymi na różnych węzłach.
- Izolacja: umożliwia tworzenie odizolowanych przestrzeni sieciowych dla różnych aplikacji.
- 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.
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:
docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377
Krok 3: Tworzenie sieci overlay
Po zainicjowaniu klastra stwórz sieć overlay
za pomocą komendy:
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
:
docker network ls
Przykładowy wynik:
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
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
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:
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:
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:
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
:
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
:
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:
- 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.
- 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.
- Tworzenie kopii zapasowych konfiguracji: Regularnie zapisuj konfiguracje sieci i stacków, aby szybko je przywrócić w razie awarii.
GO TO FULL VERSION