Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
A medida que los clústeres de AKS escalan y hospedan cargas de trabajo de varios equipos o inquilinos, la infraestructura compartida puede hacer que el aislamiento sea más complejo. Es posible que necesite un mayor aislamiento para evitar que las cargas de trabajo con uso intensivo de recursos o con picos de actividad interrumpan las cargas de trabajo previsibles. Es posible que también tenga que aislar las cargas de trabajo confidenciales para cumplir los requisitos de seguridad.
Para cumplir estos requisitos, puede aislar las cargas de trabajo mediante estrategias de aislamiento lógico o físico. Para el aislamiento lógico, use espacios de nombres de Kubernetes para separar recursos e implementaciones. Los espacios de nombres comparten la infraestructura de clúster subyacente, por lo que no proporcionan el mismo límite de aislamiento físico que los clústeres independientes. Aunque los clústeres independientes proporcionan un límite físico, esta estrategia puede aumentar los costos cuando los clústeres no usan su capacidad completa.
El aislamiento de pods en AKS introduce la posibilidad de ejecutar sus cargas de trabajo en máquinas virtuales ligeras independientes para pods (VM). Cada máquina virtual de pod proporciona un límite de aislamiento computacional: la carga de trabajo se ejecuta con su propio núcleo invitado y está aislada del núcleo del host y de las cargas de trabajo de otras máquinas virtuales de pod.
El aislamiento de pods se basa en el proyecto de código abierto Kata Containers.
Importante
El límite de la máquina virtual de pod solo proporciona aislamiento de proceso. No aísla el plano de control, el almacenamiento o las rutas de acceso de datos de AKS, ni las acciones realizadas por los usuarios con acceso de administrador del clúster. El sandboxing de pods por sí solo no proporciona una multitenencia completa y rígida. Para una implementación multiinquilino, revise la guía de AKS para soluciones multiinquilino y aplique los controles de identidad, red, almacenamiento y gobernanza necesarios.
Arquitectura y componentes
El aislamiento de pods usa el entorno de ejecución Kata Containers para crear una máquina virtual ligera de pod para cada pod aislado. En el diagrama siguiente se muestra cómo los componentes del lado host crean y administran la máquina virtual de pod aislada y cómo los componentes del lado invitado ejecutan la carga de trabajo.
- En el manifiesto del pod, defina
runtimeClassName: kata-vm-isolationpara seleccionar el runtime de Kata Containers. - Containerd invoca el shim de Kata (
containerd-shim-kata-v2) en lugar del shim estándar del entorno de ejecución. - El shim de Kata inicia el monitor de máquina virtual (VMM) de Cloud Hypervisor, que crea una VM de pod con un kernel invitado independiente y el agente Kata.
- El agente Kata crea y gestiona los contenedores y los procesos de la carga de trabajo dentro de la máquina virtual del pod.
- Cuando se elimina la máquina virtual del pod, el shim de Kata apaga la máquina virtual del pod y libera sus recursos al host del contenedor.
Ventajas y casos de uso
El sandboxing de pods aísla cada pod en un entorno de sandbox dentro de una máquina virtual de pod ligera con su propio kernel invitado. Este límite de cómputo separa la carga de trabajo del kernel del host y de las cargas de trabajo de otras VM de pod. Combine el sandboxing de pods con controles como las directivas de red y Azure Policy para hacer frente a los riesgos de red y de gobernanza que no cubre el límite de la máquina virtual del pod. Para obtener instrucciones sobre cómo seleccionar controles para implementaciones multiinquilino, consulte Guía de AKS para soluciones multiinquilino.
Casos de uso comunes
El aislamiento de pods puede ayudarle a:
- Aloje cargas de trabajo de diferentes inquilinos en el mismo clúster de AKS, al tiempo que proporciona un límite de aislamiento de recursos de proceso independiente para cada pod en entorno de sandbox.
- Aísle las cargas de trabajo no fiables del kernel del host y de las cargas de trabajo de otras VM de pod, sin dejar de usar la capacidad compartida del clúster.
- Proteja las cargas de trabajo confidenciales o de alto valor de las cargas de trabajo que se ejecutan en otras máquinas virtuales de pod.
- Reduzca el efecto de las cargas de trabajo que consumen muchos recursos o que presentan picos de actividad sobre otros pods en entorno de sandbox aplicando solicitudes y límites de CPU y memoria a cada máquina virtual del pod.
- Limite el alcance del fallo de una carga de trabajo de cómputo a la VM del pod.
Aislamiento de cargas de trabajo
El aislamiento de pods permite ubicar conjuntamente cargas de trabajo en nodos compartidos del clúster, mientras mantiene un límite de aislamiento de cómputo independiente para cada pod aislado.
Puede declarar solicitudes y límites de recursos para las cargas de trabajo. AKS aplica valores predeterminados al omitirlos. La VM del pod restringe una carga de trabajo con uso intensivo de recursos a la CPU y la memoria asignadas a esa VM. Si una carga de trabajo hace que se produzca un error en su máquina virtual de pod, el límite de aislamiento de proceso protege las cargas de trabajo de otras máquinas virtuales de pod frente a ese error.
Flexibilidad
Puede ejecutar pods aislados y estándar en el mismo clúster. Esta flexibilidad permite aplicar el aislamiento de la VM del pod solo a las cargas de trabajo que lo requieran.
Componentes de código abierto
El aislamiento de pods utiliza componentes de código abierto, incluidos el VMM Cloud Hypervisor y el entorno de ejecución Kata Containers. El desarrollo abierto proporciona transparencia en los componentes de aislamiento y permite la revisión de la comunidad. La arquitectura también separa el kernel invitado en cada máquina virtual de pod del kernel de host de Azure Linux.
Migración de cargas de trabajo existentes
Para una implementación básica, agregue la clase en tiempo de ejecución Kata a una especificación de pod existente para ejecutar la carga de trabajo en una máquina virtual de pod. Este cambio en el manifiesto no garantiza un comportamiento idéntico al de un pod que usa el entorno de ejecución estándar runc. Antes de la migración, valide el comportamiento operativo de la carga de trabajo y la compatibilidad de características de Kubernetes y tenga en cuenta el tamaño y la sobrecarga de los recursos de la máquina virtual de pod. Para obtener más información, consulte Consideraciones sobre el aislamiento de pods.
Pasos siguientes
- Revise las consideraciones de espacio aislado del pod antes de la implementación.
- Implementar el aislamiento de pods en AKS.