Wymagania: Chcę przypisać niezależny adres IP LAN kontenerowi Dockera za pośrednictwem usługi DHCP routera, tak aby opracowana aplikacja ASP.NET Core mogła być wdrożona na wielu serwerach (aplikacja musi być wdrożona na wielu serwerach, aby osiągnąć wysoką dostępność), a następnie mogły być przesyłane między sobą. Niektóre aplikacje, zwłaszcza starsze lub monitorujące ruch sieciowy, oczekują bezpośredniego połączenia z siecią fizyczną. W takim przypadku możesz użyć sterownika sieciowego macvlan, aby przypisać adres MAC do wirtualnego interfejsu sieciowego każdego kontenera, co sprawia, że wygląda on jak fizyczny interfejs sieciowy łączący się bezpośrednio z siecią fizyczną. W takim przypadku musisz określić fizyczny interfejs na hostze Dockera dla macvlan. I. podsieci i bramy Macvlan. Możesz nawet odizolować swoją sieć za pomocą innego fizycznego interfejsu sieciowego.
Najpierw musisz ustawić fizyczną kartę sieciową maszyny gospodarzaPozwala na tryb "trybu rozwiązłości"Na przykład, używając ESXI, skonfiguruj wirtualny przełącznik w następujący sposób:
Środowisko systemowe wygląda następująco:
CentOS Linux release 7.9.2009 (Core) Docker wersja 20.10.20, build 9fdeb9c
Zainstaluj usługę Docker na hostze CentOS 7. (pominięte)
Zakładaćnet.ipv4.ip_forward = 1, możesz zobaczyć aktualną konfigurację przez sysctl -a, jeśli nie jest to 1, proszę zmodyfikuj ją na 1, samouczek jest pominięty. Głównym celem jest ustalenie, czy informacje otrzymane przez jedną kartę sieciową mogą być przekazywane innym kartom sieciowym, gdy host Linux ma wiele kart sieciowych, a jeśli jest ustawiona na 1, można przeprowadzić przekazywanie pakietów.
Po zainstalowaniu usługi Docker utwórz sieć macvlan za pomocą następującego polecenia:
--ip-zakres: Zdecydowałem się przypisać podzbiór do Dockera 192.168.50.192/27, czyli zakres 32 adresów zaczynający się od 192.168.50.192 do 192.168.50.223. --gateway: Ustaw adres bramy, zwykle adres IP routera, proszę ustawić go zgodnie z Twoją sytuacją -o rodzic: Interfejs nadrzędny, czyli nazwa fizycznej karty sieciowej hosta, można oglądać przez IP A zgodnie z rzeczywistymi sytuacjami.
Po zakończeniu tworzenia możesz ją zobaczyć za pomocą następującego polecenia:
Spróbuj uruchomić kontener busybox i skonfigurować sieć z nowo utworzonym macvlanem za pomocą następującego polecenia:
Wskazówka: Jeśli trzeba, daj pojemnikAby ustawić adres IP, użyj parametru --ip, na przykład: --ip=192.168.50.210
Możesz zobaczyć adres IP kontenera, używając następującego polecenia:
Oczywiście możesz też wejść do środka kontenera, aby go obejrzeć, za pomocą następującego polecenia:
MyKorzystając z innych komputerów w sieci LAN, spróbuj pingować adres IP kontenera, można zauważyć, że można pingować, jak pokazano na poniższym rysunku:
Patrząc na tabelę map IP i MAC routera, można zobaczyć, że adres MAC/IP kontenera docker jest taki sam jak na routerze, jak pokazano na poniższym rysunku:
Spróbuj ponownie uruchomić kontener Redis i skonfigurować nową sieć MacVLAN za pomocą następującego polecenia:
Sam host CentOS ma również uruchomioną aplikację Redis i korzysta z portu 6379, a my tworzymy kontenerową aplikację Redis, która również korzysta z portu 6379, czyliTen sam port hosta 6379 jest podsłuchiwany przez dwa różne adresy IP, spróbuj zobaczyć, czy to działa.
Wyniki testów działają prawidłowo, jak pokazano na poniższym rysunku:
Zasoby
Logowanie do linku jest widoczne.
|