Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
MXC vám pomůže se správou složitosti používání kontejnerů: pomocí MXC popíšete zásady a spravujete životní cyklus kontejneru, ale vybraný backend izolace provede skutečné vynucení. Každý back-end je založený na jiném mechanismu operačního systému. V důsledku toho se back-endy liší v tom, jak izolují úlohu a jak zpracovávají soubory, sítě, uživatelské rozhraní a životní cyklus.
Začněte tím, co vaše pracovní zátěž potřebuje, a pak ověřte, že back-end ji dokáže zajistit na hostitelích, na které cílíte. Samotný název nebo verze operačního systému vám neřekne, jestli je back-end podporovaný.
Porozumění hostitelským prostředím a prostředím úloh
V požadavku můžete požádat o druh prostředí, kterému se říká containment intent, nebo můžete pojmenovat konkrétní back-end. Intent process odpovídá nativnímu backendu izolace procesů na hostiteli, na kterém běží. Vzhledem k tomu, že se back-end liší podle operačního systému, stejný záměr vám může poskytnout různé možnosti na Windows, Linuxu a macOS.
| Host | Výchozí procesní backend | Ostatní prostředí |
|---|---|---|
| Windows | ProcessContainer | Samostatná relace Windows, virtuální počítač s Windows nebo linuxové úlohy prostřednictvím WSLc, tam, kde jsou podporovány |
| Linux | Bublinková fólie | LXC a specializované back-endy virtualizace, jsou-li podporovány |
| macOS | Bezpečnostní pás | Zkontrolujte vydání, které nainstalujete, ohledně dalších podporovaných možností. |
Zatížení nemusí běžet ve stejném operačním systému jako hostitel. WSLc například spouští linuxovou úlohu na hostiteli Windows. Má vlastní předpoklady a sdílí prostředky s hostitelem jinak než sandbox procesu Windows.
Zkontrolujte stav vydání a pokrytí sady SDK
Podpora back-endu se mění z verze na verzi, proto zkontrolujte informace o podpoře pro verzi balíčku, kterou instalujete.
V MXC v1.0.0 můžou sady SDK V1 vytvářet kontejnery s těmito back-endy:
- Windows: ProcessContainer, IsolationSession a WSLc
- Linux: Bubblewrap a LXC
- macOS: Seatbelt
Windows Sandbox, MicroVM a Hyperlight jsou experimentální. Vyžadují explicitní experimentální autorizaci a nemůžete je vytvářet prostřednictvím rozhraní API sady SDK V1. Pokud uvažujete o některém z těchto nebo jiných specializovaných prostředí, nejprve si projděte poznámky k verzi vaší verze.
Back-end, který je k dispozici na hostiteli, stále nemusí podporovat operaci sady SDK, kterou plánujete volat. V sadách SDK V1:
- Rozhraní API životního cyklu pracují pouze s IsolationSession a WSLc.
- Provádění PTY typu One-shot funguje s IsolationSession, Bubblewrap, LXC a Seatbelt.
- Provádění PTY v existujícím kontejneru funguje pouze s IsolationSession.
Podrobnosti najdete v referenčních informacích k sadě SDK:
- Zvolte operaci spuštění .NET
- Zvolte typ operace spuštění TypeScriptu
- Volba operace spuštění Rustu
- Životní cyklus kontejneru MXC
Pokud používáte Rust, podpora back-endu také závisí na funkcích crate, které povolíte. Chcete-li použít IsolationSession nebo WSLc, povolte funkci isolation_session nebo wslc cratu mxc-sdk. Další informace najdete v průvodci sadou Rust SDK.
Začínáme se zjišťováním za běhu
Každá sada SDK vám může sdělit, co aktuální hostitel podporuje, než něco spustíte. Nejprve tyto kontroly spusťte, ale nadále ošetřujte chyby při spuštění, protože konfigurace hostitele se může mezi kontrolou a spuštěním změnit.
Pomocí podpory platformy zjistěte, zda můžete kontejnery vůbec spustit, které back-endy jsou k dispozici pro širší přehled o hostiteli, a pomocí sondy otestujte konkrétní požadavek v systému Windows předtím, než ho spustíte.
| sada SDK | Discovery API | Co zkontrolovat |
|---|---|---|
| platforma .NET | MxcPlatform.GetPlatformSupport() |
IsSupported, Reason a AvailableMethods, který uvádí back-endy, jež mohou spustit sadu SDK |
| platforma .NET | MxcPlatform.GetAvailableBackends() |
Dostupnost hostitele, volitelné možnosti a upozornění Některá rozhraní API pro spouštění nemůžou používat všechny back-endy uvedené tady. |
| platforma .NET | MxcContainer.Probe() |
Ve Windows úroveň izolace ProcessContainer poskytne požadavku diagnostiku kompatibility specifickou pro daný požadavek, aniž by vytvořila kontejner. |
| TypeScript | getPlatformSupport() |
isSupported, reason, availableMethods a všechna pole upozornění a funkcí specifická pro hostitele |
| TypeScript | getAvailableBackends() |
Dostupnost hostitele, volitelné možnosti a upozornění Některá rozhraní API pro spouštění nemůžou používat všechny back-endy uvedené tady. |
| TypeScript | probe() |
Ve Windows by požadavek získal úroveň izolace ProcessContainer a diagnostiku kompatibility specifickou pro daný požadavek, aniž by se vytvořil kontejner. |
| Rust | v1::platform_support() |
is_supported, reason, available_methods a v Linuxu síťová podpora Bubblewrap |
| Rust | v1::available_backends() |
Dostupnost hostitele, volitelné funkce a upozornění. Některá rozhraní API pro spouštění nemůžou používat všechny back-endy uvedené tady. |
| Rust | v1::probe() |
Ve Windows se určí úroveň izolace ProcessContainer, kterou požadavek obdrží, a diagnostika kompatibility specifická pro daný požadavek, aniž by se vytvořil kontejner. |
Ve výsledcích můžou chybět pole, která se nevztahují nebo nelze zjistit. Discovery je užitečné při prvním ověření, ale neověřuje celé zásady. Pro jistotu vytvořte požadavek, který plánujete spustit, a potvrďte, že vybraný back-end může vynutit všechna požadovaná opatření.
Někteří hostitelé potřebují před tím, než back-end funguje, další komponenty nebo nastavení správcem. Výsledky zjišťování a chyby spuštění vám můžou říct, co chybí, ale to vaší aplikaci ani agentovi kódování neuděluje oprávnění ke změně hosta. Požádejte osobu, která spravuje hostitelský server, aby postupovala podle zdokumentovaných kroků nastavení back-endu.
Pro Windows viz Podpora zásad verze operačního systému. Verze systému Windows může být podporována platformou MXC a přesto postrádat určitou funkci zásad, proto zkontrolujte obojí.
Zkontrolujte omezení, která vaše úloha potřebuje
Dva back-endy můžou přijmout stejnou syntaxi zásad a přesto ji vynutit jinak. Než se rozhodnete pro backend, zvažte následující oblasti:
| Area | Otázky k kladení |
|---|---|
| Files | Může back-end vyjádřit oprávnění ke čtení, zápisu a odepření, která potřebujete, včetně překrývajících se? Sdílí soubory s hostitelem, připojí je jako svazek nebo je zkopíruje? |
| Network | Může vynutit váš síťový model, ať už přímo, nebo prostřednictvím proxy serveru, včetně pravidel privátní sítě a zpětné smyčky hostitele? |
| uživatelské rozhraní | Může uplatnit omezení okna, schránky a vstupu, která potřebujete? |
| Lifecycle | Spouští se každý příkaz nezávisle, nebo může zachovat prostředí mezi příkazy? Co je po zastavení zachováno? |
| Režim výuky | Podporuje hostitel zachytávání odepření ProcessContainer? Pokud ne, jaký pracovní postup diagnostiky poskytuje back-end? |
Průvodci MXC na GitHubu uvádějí podporované funkce, sestavení operačního systému a požadavky pro každý back-end.
Vyberte backend podle svých požadavků
Než vyberete backend, napište si:
- Hostitelské operační systémy a architektury procesorů, které vaše aplikace podporuje.
- Hostované prostředí nebo prostředí nástroje, které úloha vyžaduje.
- Úloha vyžaduje přístup k souborům, síti, uživatelskému rozhraní, zařízením a hostitelským nástrojům.
- Zda každý příkaz běží samostatně, nebo vyžaduje stav z předchozích příkazů.
- Vaše limity pro čas spuštění, prostředky, nasazení a interakci uživatelů.
- Jak silnou hranici izolace úloha a její data vyžadují.
- Zda back-end může vynutit všechny požadované mechanismy řízení zásad.
Pak otestujte každou konfiguraci hostitele, kterou podporujete, s pozitivními i negativními testy. Úspěšné spuštění pouze ukazuje, že MXC akceptoval konfiguraci. Negativní testy, například pokus o zápis mimo udělené cesty, ukazují, zda omezení skutečně platí.
Související obsah
Windows developer