Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MXC helpt u bij het beheren van de complexiteit van het gebruik van containers: u gebruikt MXC om een beleid te beschrijven en de levenscyclus van een container te beheren, maar de geselecteerde containment-backend voert de daadwerkelijke afdwinging uit. Elke back-end is gebaseerd op een ander besturingssysteemmechanisme. Als gevolg hiervan verschillen back-ends in hoe ze een workload isoleren en in hoe ze bestanden, netwerken, ui en levenscyclus verwerken.
Begin met wat uw workload nodig heeft en bevestig vervolgens dat een back-end deze kan leveren op de hosts waarop u zich richt. De naam of versie van het besturingssysteem alleen geeft niet aan of een back-end wordt ondersteund.
Begrijp host- en workloadomgevingen
In een aanvraag kunt u vragen om een soort omgeving, een containment intent genoemd, of u kunt een specifieke back-end opgeven. De process intent wordt toegewezen aan de systeemeigen back-end voor procesisolatie op de host waarop u werkt. Omdat deze back-end verschilt per besturingssysteem, kan dezelfde intent u verschillende mogelijkheden bieden op Windows, Linux en macOS.
| Host | Standaard procesbackend | Andere omgevingen |
|---|---|---|
| Windows | ProcessContainer | Een afzonderlijke Windows-sessie, een Windows-VM of Linux-workloads via WSLc, indien ondersteund |
| Linux | Bubblewrap | LXC en gespecialiseerde back-ends voor virtualisatie, indien ondersteund |
| macOS | Gordel | Controleer bij de release die u installeert welke andere opties worden ondersteund |
De workload hoeft niet te worden uitgevoerd op hetzelfde besturingssysteem als de host. WSLc voert bijvoorbeeld een Linux-workload uit op een Windows host. Het heeft zijn eigen vereisten en deelt resources met de host anders dan een Windows proces sandbox doet.
Releasestatus en SDK-dekking controleren
De back-endondersteuning verandert van release tot release, dus controleer de ondersteuningsinformatie voor de pakketversie die u installeert.
In MXC v1.0.0 kunnen de V1 SDK's containers maken met deze back-ends:
- Windows: ProcessContainer, IsolationSession en WSLc
- Linux: Bubblewrap en LXC
- macOS: Seatbelt
Windows Sandbox, MicroVM en Hyperlight zijn experimenteel. Ze vereisen expliciete experimentele autorisatie en u kunt ze niet maken via de V1 SDK-API's. Als u een van deze of een andere gespecialiseerde omgeving overweegt, controleert u eerst de releaseopmerkingen voor uw versie.
Een back-end die beschikbaar is op de host biedt mogelijk nog steeds geen ondersteuning voor de SDK-bewerking die u wilt aanroepen. In de V1 SDK's:
- De levenscyclus-API's werken alleen met IsolationSession en WSLc.
- One-shot PTY-uitvoering werkt met IsolationSession, Bubblewrap, LXC en Seatbelt.
- PTY-uitvoering in een bestaande container werkt alleen met IsolationSession.
Zie de SDK-verwijzingen voor meer informatie:
- Een startbewerking voor .NET kiezen
- Een TypeScript-startbewerking kiezen
- Een Rust-startbewerking kiezen
- Levenscyclus van de MXC-container
Als u Rust gebruikt, is back-endondersteuning ook afhankelijk van de crate-functies die u inschakelt. Als u IsolationSession of WSLc wilt gebruiken, schakelt u de feature isolation_session of wslc van de mxc-sdk crate in. Zie de Rust SDK-handleiding voor meer informatie.
Beginnen met runtimedetectie
Elke SDK kan u vertellen wat de huidige host ondersteunt voordat u iets start. Voer deze controles eerst uit, maar blijf ook opstartfouten afhandelen, omdat de configuratie van de host kan veranderen tussen de controle en de start.
Gebruik platformondersteuning om erachter te komen of u containers helemaal kunt starten, welke back-ends beschikbaar zijn voor een breder overzicht van de host, en de probe om een specifiek verzoek op Windows te testen voordat u het uitvoert.
| SDK | Discovery API | Wat u moet controleren |
|---|---|---|
| .NET | MxcPlatform.GetPlatformSupport() |
IsSupported, Reason en AvailableMethods, dat de back-ends vermeldt die de SDK kan starten |
| .NET | MxcPlatform.GetAvailableBackends() |
Beschikbaarheid van hosts, optionele mogelijkheden en waarschuwingen. Sommige uitvoerings-API's kunnen niet alle hier vermelde back-ends gebruiken. |
| .NET | MxcContainer.Probe() |
Op Windows zou de ProcessContainer-isolatielaag het verzoek en verzoekspecifieke compatibiliteitsdiagnostiek krijgen, zonder een container te maken |
| TypeScript | getPlatformSupport() |
isSupported, reason, availableMethods, en eventuele hostspecifieke waarschuwingen en capability-velden |
| TypeScript | getAvailableBackends() |
Beschikbaarheid van hosts, optionele mogelijkheden en waarschuwingen. Sommige uitvoerings-API's kunnen niet elke back-end gebruiken die hier wordt vermeld. |
| TypeScript | probe() |
Op Windows zou het verzoek de isolatielaag ProcessContainer en verzoekspecifieke compatibiliteitsdiagnose ontvangen, zonder een container te maken |
| Rust | v1::platform_support() |
is_supported, reason, available_methodsen, op Linux, Bubblewrap-netwerkmogelijkheid |
| Rust | v1::available_backends() |
Beschikbaarheid van hosts, optionele mogelijkheden en waarschuwingen. Sommige execution-API's kunnen niet elke back-end gebruiken die hier wordt vermeld. |
| Rust | v1::probe() |
Op Windows zou de aanvraag de ProcessContainer-isolatielaag gebruiken en aanvraagspecifieke compatibiliteitsdiagnose krijgen, zonder een container te maken |
Velden die niet van toepassing zijn of niet kunnen worden gedetecteerd, ontbreken mogelijk in de resultaten. Discovery is een handige eerste controle, maar valideert uw hele beleid niet. Om er zeker van te zijn, maakt u het verzoek dat u wilt uitvoeren en bevestigt u dat de geselecteerde back-end elke maatregel kan afdwingen die nodig is.
Sommige hosts hebben extra onderdelen of configuratie door een beheerder nodig voordat een back-end werkt. Detectieresultaten en opstartfouten kunnen u vertellen wat er ontbreekt, maar dat geeft uw app of een coderingsagent geen toestemming om de host te wijzigen. Vraag de persoon die verantwoordelijk is voor de host om de gedocumenteerde installatiestappen van de back-end te volgen.
Zie voor Windows ondersteuning voor beleid voor besturingssysteemversies. Een Windows-versie kan worden ondersteund door MXC en nog steeds geen bepaalde beleidsfunctie hebben, dus controleer beide.
Controleer welke beperkingen uw workload vereist
Twee back-ends kunnen dezelfde beleidssyntaxis accepteren en deze nog steeds anders afdwingen. Voordat u een back-end kiest, moet u rekening houden met gebieden zoals:
| Area | Vragen om te stellen |
|---|---|
| Bestanden | Kan de back-end de benodigde lees-, schrijf- en weigertoekenningen uitdrukken, inclusief overlappende toekenningen? Deelt het bestanden met de host, koppelt het ze of kopieert het ze? |
| Network | Kan het uw netwerkmodel afdwingen, rechtstreeks of via een proxy, inclusief regels voor privénetwerken en host-loopback? |
| UI (Gebruikersinterface) | Kan het de beperkingen voor vensters, klembord en invoer toepassen die u nodig hebt? |
| Lifecycle | Wordt elke opdracht onafhankelijk uitgevoerd of kan deze de omgeving tussen opdrachten behouden? Wat wordt er na een stop bewaard? |
| Leermodus | Biedt de host ondersteuning voor ProcessContainer denial capture? Als dat niet het geval is, welke diagnosewerkstroom biedt de back-end? |
In de MXC-handleidingen voor GitHub worden de ondersteunde mogelijkheden, builds van het besturingssysteem en de vereisten voor elke back-end vermeld.
Kies een back-end op basis van uw vereisten
Voordat u een back-end kiest, schrijft u het volgende op:
- De hostbesturingssystemen en processorarchitecturen die uw app ondersteunen.
- De gast- of hulpprogrammaomgeving die de workload nodig heeft.
- De toegangsbehoeften van de workload voor bestanden, het netwerk, de gebruikersinterface, het apparaat en hosthulpprogramma's.
- Of elke opdracht nu zelfstandig wordt uitgevoerd of de toestand van eerdere opdrachten nodig heeft.
- Uw limieten voor opstarttijd, resources, implementatie en gebruikersinteractie.
- Hoe sterk de isolatiegrens moet zijn voor de workload en de bijbehorende gegevens.
- Of de back-end elke beleidsmaatregel kan afdwingen die u nodig hebt.
Test vervolgens elke hostconfiguratie die u ondersteunt, met zowel positieve als negatieve tests. Bij een geslaagde start toont alleen aan dat MXC de configuratie heeft geaccepteerd. Negatieve tests, zoals een poging om buiten de toegestane paden te schrijven, laten zien of de beperkingen daadwerkelijk gelden.
Verwante onderwerpen
Windows developer