Overzicht van Pod-sandboxing in Azure Kubernetes Service (AKS)

Omdat AKS-clusters workloads van meerdere teams of tenants schalen en hosten, kan de gedeelde infrastructuur isolatie complexer maken. Mogelijk hebt u sterkere isolatie nodig om te voorkomen dat resource-intensieve of piekgevoelige workloads voorspelbare workloads verstoren. Mogelijk moet u ook gevoelige workloads isoleren om te voldoen aan de beveiligingsvereisten.

Om aan deze vereisten te voldoen, kunt u uw workloads isoleren via logische of fysieke isolatiestrategieën. Voor logische isolatie gebruikt u Kubernetes-naamruimten om resources en implementaties te scheiden. Naamruimten delen de onderliggende clusterinfrastructuur, zodat ze niet dezelfde fysieke isolatiegrens bieden als afzonderlijke clusters. Hoewel afzonderlijke clusters een fysieke grens bieden, kan deze strategie de kosten verhogen wanneer de clusters hun volledige capaciteit niet gebruiken.

Pod-sandboxing op AKS introduceert de mogelijkheid om uw workloads uit te voeren op afzonderlijke, lichtgewicht virtuele podmachines (VM's). Elke pod-VM biedt een isolatiegrens voor rekenkracht: de workload wordt uitgevoerd met een eigen gastkernel en wordt geïsoleerd van de hostkernel en workloads in andere pod-VM's.

Podsandboxing is gebaseerd op het open-source Kata Containers-project.

Belangrijk

De grens van de pod-VM biedt alleen isolatie van rekenresources. Het AKS-besturingsvlak, de opslag- of gegevenspaden of acties die worden uitgevoerd door gebruikers met toegang tot clusterbeheerders, worden niet geïsoleerd. Pod-sandboxing alleen biedt geen volledige harde multitenancy. Raadpleeg voor een implementatie met meerdere tenants de AKS-richtlijnen voor multitenant-oplossingen en pas de vereiste identiteits-, netwerk-, opslag- en beheeropties toe.

Architectuur en onderdelen

Pod-sandboxing gebruikt de Kata Containers-runtime om voor elke gesandboxte pod een lichtgewicht pod-VM te maken. In het volgende diagram ziet u hoe de onderdelen aan de hostzijde de geïsoleerde pod-VM maken en beheren en hoe de onderdelen aan de gastzijde de workload uitvoeren.

  • Stel in het podmanifest in runtimeClassName: kata-vm-isolation om de Kata Containers-runtime te selecteren.
  • Containerd roept de Kata-shim (containerd-shim-kata-v2) aan in plaats van de standaardruntime-shim.
  • De Kata-shim start de monitor van de virtuele Cloud Hypervisor-machine (VMM), waarmee een pod-VM wordt gemaakt met een afzonderlijke gastkernel en de Kata-agent.
  • De Kata-agent maakt en beheert de containers en workloadprocessen binnen de pod-VM.
  • Wanneer de pod-VM wordt verwijderd, sluit de Kata-shim de pod-VM af en brengt de resources terug naar de containerhost.

Voordelen en gebruiksvoorbeelden

Pod-sandboxing isoleert elke gesandboxte pod in een lichtgewicht pod-VM met een eigen gastkernel. Deze rekengrens scheidt de workload van de hostkernel en workloads in andere pod-VM's. Combineer pod-sandboxing met besturingselementen zoals netwerkbeleid en Azure Policy om netwerk- en governancerisico's aan te pakken die niet door de grens van de pod-VM worden behandeld. Voor richtlijnen voor het selecteren van beheermaatregelen voor multitenantimplementaties, zie AKS-richtlijnen voor multitenantoplossingen.

Veelvoorkomende gebruiksvoorbeelden

Pod-sandboxing kan u helpen:

  • Hostworkloads van verschillende tenants op hetzelfde AKS-cluster en bieden een afzonderlijke isolatiegrens voor rekenkracht voor elke pod in de sandbox.
  • Isoleer onvertrouwde workloads van de kernel van de host en van workloads in andere pod-VM's, terwijl u gedeelde clustercapaciteit blijft gebruiken.
  • Bescherm gevoelige of waardevolle workloads tegen workloads die in andere pod-VM's worden uitgevoerd.
  • Verminder het effect van resource-intensieve of piekbelaste workloads op andere geïsoleerde pods door voor elke pod-VM CPU- en geheugenaanvragen en -limieten in te stellen.
  • Beperk de impact op de rekenomgeving van de uitval van een workload tot de VM van de pod.

Isolatie van workloads

Schermopname van architectuurdiagram met workloadisolatie in AKS Pod-sandboxing.

Met pod-sandboxing kunt u workloads samen plaatsen op gedeelde clusterknooppunten, terwijl u voor elke gesandboxte pod een afzonderlijke grens voor rekenisolatie behoudt.

U kunt resourceaanvragen en -limieten declareren voor uw workloads. AKS past standaardwaarden toe wanneer u ze weglaat. De pod-VM beperkt een resource-intensieve workload tot de CPU en het geheugen dat aan die VM is toegewezen. Als een workload ervoor zorgt dat de pod-VM uitvalt, beschermt de grens van de compute-isolatie workloads in andere pod-VM's tegen die uitval.

Flexibiliteit

U kunt sandbox- en standaardpods uitvoeren in hetzelfde cluster. Deze flexibiliteit stelt u in staat VM-isolatie voor pods alleen toe te passen op workloads die dit vereisen.

Opensource-onderdelen

Pod-sandboxing maakt gebruik van opensource-onderdelen, waaronder de Cloud Hypervisor VMM en de Kata Containers-runtime . Open ontwikkeling biedt transparantie in de isolatieonderdelen en maakt communitybeoordeling mogelijk. De architectuur scheidt de gastkernel ook in elke pod-VM van de Azure Linux-hostkernel.

Bestaande workloads migreren

Voor een eenvoudige implementatie voegt u de Kata-runtimeklasse toe aan een bestaande podspecificatie om de workload uit te voeren in een pod-VM. Deze manifestwijziging garandeert geen gedrag dat identiek is aan een pod die gebruikmaakt van de standaardruntime runc . Valideer vóór de migratie de operationele werking van de workload en de compatibiliteit met Kubernetes-functies, en houd rekening met de resourcedimensionering en overhead van de pod-VM. Zie Overwegingen voor pod-sandboxing voor meer informatie.

Volgende stappen