Windows a kontejnery
Platí pro: Windows Server 2022, Windows Server 2019, Windows Server 2016
Kontejnery jsou technologie pro balení a spouštění aplikací pro Windows a Linux v různých prostředích místně i v cloudu. Kontejnery poskytují jednoduché izolované prostředí, které usnadňuje vývoj, nasazování a správu aplikací. Kontejnery se spouštějí a zastavují rychle, takže jsou ideální pro aplikace, které se potřebují rychle přizpůsobit měnící se poptávce. Jednoduchá povaha kontejnerů je také užitečným nástrojem pro zvýšení hustoty a využití infrastruktury.
Ekosystém kontejnerů Microsoftu
Microsoft nabízí řadu nástrojů a platforem, které vám pomůžou vyvíjet a nasazovat aplikace v kontejnerech:
spouštění kontejnerů založených na Windows nebo Linuxu ve Windows 10 pro vývoj a testování pomocí DesktopDockeru, které využívá funkce kontejnerů integrované ve Windows. Kontejnery můžete také nativně spouštět v systému Windows Server.
Vyvíjejte, testujte, publikujte a nasazujte kontejnery založené na Windows pomocí výkonné podpory kontejnerů ve Visual Studiu a Visual Studio Code, které zahrnuje podporu pro Docker, Docker Compose, Kubernetes, Helm a další užitečné technologie.
Publikujte své aplikace jako image kontejnerů na veřejný DockerHub, aby je mohli používat ostatní, nebo do soukromého Azure Container Registry pro vlastní vývoj a nasazení vaší organizace, s možností push a pull přímo z Visual Studia a Visual Studio Code.
Nasazení kontejnerů ve velkém měřítku v Azure nebo jiných cloudech:
- Stáhněte si aplikaci (image kontejneru) z registru kontejneru, jako je Azure Container Registry, a pak ji nasaďte a spravujte ve velkém měřítku pomocí orchestrátoru, jako je azure Kubernetes Service (AKS).
- Azure Kubernetes Service nasazuje kontejnery do virtuálních počítačů Azure a spravuje je ve velkém měřítku, ať už jde o desítky kontejnerů, stovky nebo dokonce tisíce. Virtuální počítače Azure používají buď přizpůsobenou image Windows Serveru (pokud nasazujete aplikaci založenou na Windows), nebo přizpůsobenou image Ubuntu Linuxu (pokud nasazujete aplikaci založenou na Linuxu).
Nasazení kontejnerů na místě pomocí AKS na Azure Stack HCI, Azure Stack s modulem AKS Enginenebo Azure Stack s OpenShift. Kubernetes můžete také nastavit sami na Windows Serveru (viz Kubernetes ve Windows) a pracujeme na podpoře spouštění kontejnerů Windows na platformě RedHat OpenShift Container Platform.
Jak fungují kontejnery
Kontejner je izolovaný a jednoduchý balíček pro spuštění aplikace v hostitelském operačním systému. Kontejnery jsou postavené na jádru hostitelského operačního systému (které lze považovat za skrytou infrastrukturu operačního systému), jak je znázorněno na diagramu níže.
diagram architektury
Zatímco kontejner sdílí jádro hostitelského operačního systému, nemá k němu neomezený přístup. Místo toho kontejner získá izolovanou a v některých případech virtualizované zobrazení systému. Kontejner může například přistupovat k virtualizované verzi systému souborů a registru, ale všechny změny ovlivní pouze kontejner a zahodí se při zastavení. Pokud chcete uložit data, může kontejner připojit trvalé úložiště, jako je Disk Azure nebo sdílená složka (včetně Azure Files).
Kontejner je založen na jádru, ale jádro neposkytuje všechna rozhraní API a služby, které aplikace potřebuje spustit – většinu z nich poskytují systémové soubory (knihovny), které běží nad jádrem v uživatelském režimu. Protože je kontejner izolovaný od prostředí uživatelského režimu hostitele, potřebuje kontejner vlastní kopii těchto systémových souborů uživatelského režimu, které jsou zabalené do něčeho známého jako základní image. Základní image slouží jako základní vrstva, na které je kontejner sestaven, a poskytuje jí služby operačního systému, které jádro neposkytuje. O imagích kontejnerů ale budeme mluvit později.
Kontejnery a virtuální počítače
Na rozdíl od kontejneru virtuální počítač spouští kompletní operační systém, včetně vlastního jádra, jak je znázorněno v tomto diagramu.
diagram architektury
Kontejnery a virtuální počítače mají své použití – ve skutečnosti mnoho nasazení kontejnerů používá virtuální počítače jako hostitelský operační systém, nikoli přímo na hardwaru, zejména při spouštění kontejnerů v cloudu.
Další podrobnosti o podobnostech a rozdílech těchto doplňkových technologií najdete v tématu Containers versus virtuální počítače.
Image kontejnerů
Všechny kontejnery se vytvářejí z imagí kontejnerů. Image kontejneru je sada souborů uspořádaných do zásobníku vrstev, které se nacházejí na místním počítači nebo ve vzdáleném registru kontejneru. Image kontejneru se skládá ze souborů operačního systému uživatelského režimu potřebných pro podporu vaší aplikace, všech modulů runtime nebo závislostí aplikace a všech ostatních různých konfiguračních souborů, které aplikace potřebuje ke správnému spuštění.
Microsoft nabízí několik imagí (označovaných jako základní image), které můžete použít jako výchozí bod k sestavení vlastní image kontejneru:
- Windows – obsahuje úplnou sadu rozhraní API systému Windows a systémových služeb (bez rolí serveru).
- Windows Server – obsahuje úplnou sadu rozhraní API systému Windows a systémových služeb.
- Windows Server Core – menší image, která obsahuje podmnožinu rozhraní API windows Serveru– konkrétně úplnou architekturu .NET. Zahrnuje také většinu, ale ne všechny role serveru (například faxový server není zahrnutý).
- Nano Server – nejmenší obraz Windows Serveru, který zahrnuje podporu .NET Core rozhraní API a některých rolí serveru.
Jak už bylo zmíněno dříve, image kontejnerů se skládají z řady vrstev. Každá vrstva obsahuje sadu souborů, které při překryvování společně představují image kontejneru. Vzhledem k vrstvené povaze kontejnerů nemusíte vždy cílit na základní image pro sestavení kontejneru Windows. Místo toho můžete cílit na jinou image, která už má požadovanou architekturu. Tým .NET například publikuje image .NET Core, která přenáší modul runtime .NET Core. Šetří uživatelům, aby nemuseli duplikovat proces instalace .NET Core– místo toho můžou znovu použít vrstvy této image kontejneru. Samotná image .NET Core je založená na Nano Serveru.
Další podrobnosti najdete v tématu základní obrazy kontejneru.
Uživatelé kontejnerů
Kontejnery pro vývojáře
Kontejnery pomáhají vývojářům vytvářet a dodávat aplikace s vyšší kvalitou, rychleji. S kontejnery můžou vývojáři vytvořit image kontejneru, která se nasadí v sekundách stejně napříč prostředími. Kontejnery fungují jako snadný mechanismus sdílení kódu napříč týmy a spouštění vývojového prostředí bez dopadu na hostitelský systém souborů.
Kontejnery jsou přenosné a všestranné, můžou spouštět aplikace napsané v libovolném jazyce a jsou kompatibilní s libovolným počítačem s Windows 10, verzí 1607 nebo novějším nebo Windows Serverem 2016 nebo novějším. Vývojáři můžou vytvořit a otestovat kontejner místně na svém přenosném nebo stolním počítači a pak stejnou image kontejneru nasadit do privátního cloudu, veřejného cloudu nebo poskytovatele služeb společnosti. Přirozená flexibilita kontejnerů podporuje vzory vývoje moderních aplikací v rozsáhlých virtualizovaných cloudových prostředích. Nejužitečnější výhodou pro vývojáře je možná možnost izolovat vaše prostředí, aby vaše aplikace vždy získala vámi zadanou verzi knihoven, aby nedocházelo ke konfliktům se závislostmi.
Kontejnery pro IT profesionály
Kontejnery pomáhají správcům vytvářet infrastrukturu, která se snadněji aktualizuje a udržuje a která plně využívá hardwarové prostředky. IT specialisté můžou používat kontejnery k poskytování standardizovaných prostředí pro vývoj, kontrolu kvality a produkční týmy. Díky použití kontejnerů správci systémů abstrahují rozdíly v instalacích operačního systému a základní infrastruktuře.
Interaktivní režim kontejnerů můžete také použít ke spuštění konfliktních instancí nástroje příkazového řádku ve stejném systému.
Orchestrace kontejnerů
Orchestrátory jsou důležitou součástí infrastruktury při nastavování prostředí založeného na kontejnerech. I když můžete spravovat několik kontejnerů ručně pomocí Dockeru a Windows, aplikace často využívají pět, deset nebo dokonce stovky kontejnerů, což je místo, kde orchestrátory přicházejí.
Orchestrátory kontejnerů byly vytvořeny tak, aby pomohly spravovat kontejnery ve velkém měřítku a v produkčním prostředí. Orchestrátory poskytují funkce pro:
Orchestrátory pomáhají rozšiřovat kontejnerizované aplikace ve velkém měřítku a poskytují funkce pro:
- Nasazení ve velkém měřítku
- Plánování úloh
- Monitorování stavu
- Převzetí služeb při selhání uzlu
- Rozšiřování nebo zmenšování
- Síťování
- Zjišťování služeb
- Koordinace upgradů aplikací
- Spřažení uzlu clusteru
Existuje mnoho různých orchestrátorů, které můžete použít s kontejnery Windows; Microsoft nabízí následující možnosti:
- azure Kubernetes Service (AKS) – použití spravované služby Azure Kubernetes
- Azure Kubernetes Service (AKS) ve službě Azure Stack HCI – místní použití služby Azure Kubernetes Service
Vyzkoušení kontejnerů ve Windows
Pokud chcete začít s kontejnery ve Windows Serveru nebo Windows 10, přečtěte si následující informace:
Nápovědu k rozhodování o tom, které služby Azure jsou pro váš scénář vhodné, najdete v tématu služby kontejneru Azure a Výběr služeb Azure, které se mají použít k hostování vaší aplikace.
Prostředky
Chcete-li zobrazit prostředky pro používání Windows Server kontejnerů:
Aktuální problémy a plánovaná vylepšení funkcí najdete v úložišti GitHubu kontejnerů Windows.
Podívejte se na náš blog: Windows Containers Blog.
Pokud chcete kontaktovat tým kontejnerů Windows Serveru, odešlete e-mail zákazníkům kontejnerů Windows.