Nätverksbegrepp för containrar

Slutförd

Containrar är isolerade programenheter som körs på en delad operativsystemkärna (OS). En container paketar ett program med dess beroenden och abstraherar det från värdoperativsystemet där det körs. Resultatet är en lätt körningsmiljö där program kan köras och enkelt delas under utvecklingen.

En container är isolerad från värdoperativsystemet och från andra containrar. Med virtuella nätverkskort som är anslutna till virtuella växlar kan containrar kommunicera med varandra och med externa nätverk.

Driftmiljö för container: Docker

I den här modulen undersöker vi nätverksalternativ för Docker--containrar i Windows. Docker är en samling verktyg, lösningar och molnbaserade tjänster med öppen källkod som tillhandahåller en gemensam modell för paketering eller , appkod i en standardiserad enhet som kallas Docker-container. Docker-containrar tillhandahåller säkerhetsfunktioner för att köra flera containrar samtidigt på samma värd utan att påverka varandra.

Containerisolering med virtuella växlar

Olika typer av virtuella växlar ger olika nivåer av isolering och prestanda för containrar. En intern virtuell växel är inte direkt ansluten till ett fysiskt nätverkskort på containervärden. Endast en extern virtuell växel är direkt ansluten.

Tre av de vanligaste typerna av virtuella växlar är NAT, Transparent och Overlay.

  • En container med en NAT- virtuell växel använder NAT (Network Address Translation) för att få åtkomst till externa nätverk. Den virtuella NAT-växeln är enkel att konfigurera, men den begränsar containerns portabilitet och skalbarhet.
  • Med en transparent virtuell växel kan containern ansluta direkt till det fysiska nätverket. Den här virtuella växeln ger hög prestanda och flexibilitet, men du måste konfigurera IP-adresser och routningsregler manuellt.
  • Overlay virtuell växel skapar ett virtuellt nätverkslager ovanpå det fysiska nätverket. Du får kommunikation mellan värdar och nätverkssegmentering för din container, men det finns en ökning av omkostnader och komplexitet.

Containerhantering

Containrar betraktas ofta som virtuella datorer, men du måste komma ihåg att de inte är det. En container har en distinkt livscykel. Den distribueras, startas, stoppas och förstörs på begäran. Den här livscykeln gör containrar disponibla och påverkar hur utvecklare och IT-drift planerar för hantering av stora containerdistributioner.

Plugin-program för containernätverksgränssnitt (CNI)

Om du vill hantera allokering och konfiguration av IP-adresser och virtuella nätverkskort för dina containrar måste du använda ett containernätverksgränssnitt (CNI-) plugin-program. Ett CNI-plugin-program är en programvarukomponent som implementerar CNI-specifikationen som definierar ett standardsätt för orkestratorer som Kubernetes att interagera med nätverksleverantörer som Azure.

Det finns olika CNI-plugin-program för Windows-containrar, till exempel:

  • WinNAT CNI-plugin-program använder virtuella NAT-växlar för containernätverk. WinNAT är standardprogrammet för CNI för Docker i Windows.
  • WinCNI- plugins använder transparenta virtuella switchar för containernätverk. WinCNI är kompatibelt med Kubernetes, men kräver manuell IP-adresshantering.
  • Azure CNI- plugin-program använder virtuella överläggsväxlar för containernätverk. Azure CNI integreras med Azure Virtual Network och tillhandahåller avancerade funktioner som nätverksprinciper, tjänstidentifiering och belastningsutjämning.

Containrar och mikrotjänster

Ett mikrotjänstprogram är en molnbaserad arkitekturmetod där en enskild app består av många löst kopplade och oberoende distributionsbara komponenter eller tjänster. Varje komponent eller tjänst kan representeras av en container.

Containrar implementerar inte nödvändigtvis en arkitektur för mikrotjänster. De kan vara värdar för ett monolitiskt program, men de är inte utformade för det ändamålet. Som standard förutsätter containerkörningen (till exempel Docker) och containerorkestreraren att en container alltid kan tas bort på ett säkert sätt och att en annan container kan ta plats efter behov.

Containrar, Kubernetes och nätverk

Processen med att distribuera, uppdatera, övervaka och ta bort containrar medför många utmaningar. I den här modulen undersöker vi lösningar för containerhantering för nätverk för Windows-containrar med Kubernetes och Azure Kubernetes Service (AKS). De här alternativen stöder användning av CNI-plugin-program för containernätverk.