Pojęcia dotyczące sieci dla kontenerów
Kontenery to izolowane jednostki oprogramowania uruchamiane w udostępnionym jądrze systemu operacyjnego. Kontener pakuje aplikację z jej zależnościami i oddziela ją od systemu operacyjnego hosta, w którym jest uruchamiana. Wynikiem jest lekkie środowisko uruchomieniowe, w którym można uruchamiać i łatwo udostępniać aplikacje podczas programowania.
Kontener jest odizolowany od systemu operacyjnego hosta i innych kontenerów. Wirtualne karty sieciowe dołączone do przełączników wirtualnych umożliwiają kontenerom komunikowanie się ze sobą i z sieciami zewnętrznymi.
Środowisko uruchomieniowe kontenera: Docker
W tym module zapoznamy się z opcjami sieci dla kontenerów platformy Docker w systemie Windows. Docker to kolekcja narzędzi typu open source, rozwiązań i usług opartych na chmurze, które zapewniają wspólny model pakowania lub konteneryzowania kodu aplikacji w standardowej jednostce nazywanej kontenerem platformy Docker. Kontenery platformy Docker zapewniają funkcje zabezpieczeń umożliwiające uruchamianie wielu kontenerów jednocześnie na tym samym hoście bez wywierania na siebie wpływu.
Izolacja kontenera z przełącznikami wirtualnymi
Różne typy przełączników wirtualnych zapewniają różne poziomy izolacji i wydajności kontenerów. Wewnętrzny przełącznik wirtualny nie jest bezpośrednio połączony z fizyczną kartą sieciową na hoście kontenera, tylko zewnętrzny przełącznik wirtualny jest połączony bezpośrednio.
Trzy z najbardziej typowych typów przełączników wirtualnych obejmują translator adresów sieciowych, przezroczyste i nakładki.
- Kontener z przełącznikiem wirtualnym translatora adresów sieciowych używa translatora adresów sieciowych do uzyskiwania dostępu do sieci zewnętrznych. Przełącznik wirtualny translatora adresów sieciowych jest łatwy do skonfigurowania, ale ogranicza przenośność i skalowalność kontenera.
- Przezroczysty przełącznik wirtualny umożliwia kontenerowi bezpośrednie połączenie z siecią fizyczną. Ten przełącznik wirtualny zapewnia wysoką wydajność i elastyczność, ale należy ręcznie skonfigurować adresy IP i reguły routingu.
- Przełącznik wirtualny nakładki tworzy warstwę sieci wirtualnej na szczycie sieci fizycznej. Komunikacja między hostami i segmentacja sieci dla kontenera jest zwiększana, ale zwiększa się obciążenie i złożoność.
Zarządzanie kontenerami
Często kontenery są uważane za maszyny wirtualne, ale należy pamiętać, że nie są. Kontener ma odrębny cykl życiowy. Jest wdrażany, uruchamiany, zatrzymywany i niszczony na żądanie. Ten cykl życia sprawia, że kontenery są jednorazowe i wpływają na sposób, w jaki deweloperzy i plan operacyjny IT umożliwiają zarządzanie dużymi wdrożeniami kontenerów.
Wtyczki interfejsu sieciowego kontenera (CNI)
Aby zarządzać alokacją i konfiguracją adresów IP i wirtualnych kart sieciowych dla kontenerów, należy użyć wtyczki interfejsu sieciowego kontenera (CNI). Wtyczka CNI to składnik oprogramowania, który implementuje specyfikację CNI, która definiuje standardowy sposób dla orkiestratorów, takich jak Kubernetes, do interakcji z dostawcami sieci, takimi jak Platforma Azure.
Istnieją różne wtyczki CNI dostępne dla kontenerów systemu Windows, takie jak:
- Wtyczki WinNAT CNI używają przełączników wirtualnych translatora adresów sieciowych dla sieci kontenerów. WinNAT to domyślna wtyczka CNI dla platformy Docker w systemie Windows.
- Wtyczki WinCNI używają przezroczystych przełączników wirtualnych dla sieci kontenerów. WinCNI jest zgodny z platformą Kubernetes, ale wymaga ręcznego zarządzania adresami IP.
- Wtyczki usługi Azure CNI używają nakładek przełączników wirtualnych dla sieci kontenerów. Usługa Azure CNI integruje się z usługą Azure Virtual Network i udostępnia zaawansowane funkcje, takie jak zasady sieci, odnajdywanie usług i równoważenie obciążenia.
Kontenery i mikrousługi
Aplikacja mikrousług to natywne dla chmury podejście architektoniczne, w którym jedna aplikacja składa się z wielu luźno powiązanych i niezależnie wdrażanych składników lub usług. Każdy składnik lub usługa może być reprezentowany przez kontener.
Kontenery nie muszą implementować architektury mikrousług. Mogą hostować aplikację monolityczną, ale nie są one przeznaczone do tego celu. Domyślnie środowisko uruchomieniowe kontenera (takie jak Platforma Docker) i koordynator kontenera zakłada, że kontener może być zawsze bezpiecznie usunięty lub usunięty, a inny kontener może odbywać się zgodnie z potrzebami.
Kontenery, platforma Kubernetes i sieć
Procesy wdrażania, aktualizowania, monitorowania i usuwania kontenerów wiążą się z wieloma wyzwaniami. W tym module przyjrzymy się rozwiązaniom do zarządzania kontenerami kontenerów dla sieci dla kontenerów systemu Windows za pomocą platform Kubernetes i usługi Azure Kubernetes Service (AKS). Te opcje obsługują używanie wtyczek CNI dla sieci kontenerów.