Arquitectura de referencia para AKS en Azure Stack HCI

Azure Stack
Windows Server

En este escenario se ilustra cómo diseñar e implementar una arquitectura de línea base para Microsoft Azure Kubernetes Service (AKS) que se ejecuta en Azure Stack HCI (AKS híbrido).

En este artículo se incluyen recomendaciones para la red, la seguridad, la identidad, la administración y la supervisión del clúster en función de los requisitos empresariales de una organización. Forma parte de un conjunto de instrucciones de referencia arquitectónica compuesto por dos artículos. Consulte aquí las recomendaciones para el diseño de la red.

Architecture

En la imagen siguiente se muestra la arquitectura de referencia para Azure Kubernetes Service en Azure Stack HCI en el clúster de conmutación por error de los centros de datos de Azure Stack HCI o Windows Server 2019 o 2022:

Conceptual image of Baseline architecture for Azure Kubernetes Service on Azure Stack HCI.

Descargue un archivo Visio de esta arquitectura.

La arquitectura consta de los componentes y las funcionalidades siguientes:

  • Azure Stack HCI (20H2) . Una solución de clúster de infraestructura hiperconvergida (HCI) que hospeda cargas de trabajo de Windows y Linux virtualizadas, y su almacenamiento en un entorno local híbrido. El clúster de Azure Stack HCI se implementa como un clúster de dos a ocho nodos.
  • Azure Kubernetes Service en Azure Stack HCI (AKS híbrido). Una implementación local de AKS, que automatiza la ejecución de aplicaciones contenedorizadas a escala.
  • Azure Arc. Un servicio en la nube que amplía el modelo de administración basado en Azure Resource Manager a recursos que no son de Azure, como máquinas virtuales que no son de Azure, clústeres de Kubernetes y bases de datos contenedorizadas.
  • Azure Policy. Un servicio en la nube que ayuda a aplicar estándares organizativos y a evaluar el cumplimiento a escala mediante la evaluación de los recursos de Azure (incluidos los habilitados para Arc) en las propiedades de esos recursos en las reglas de negocio. Estos estándares también incluyen Azure Policy para Kubernetes, que aplica directivas a las cargas de trabajo que se ejecutan en el clúster.
  • Azure Monitor. Servicio basado en la nube que maximiza la disponibilidad y el rendimiento de las aplicaciones y los servicios con una completa solución que permite recopilar y analizar datos de telemetría tanto en entornos locales como en la nube, así como actuar sobre estos.
  • Microsoft Defender for Cloud. Sistema unificado de administración de seguridad de la infraestructura que fortalece el nivel de seguridad de los centros de datos y proporciona una protección contra amenazas avanzada de todas las cargas de trabajo híbridas que se encuentran en la nube, así como también en el entorno local.
  • Mediante Azure Automation. Ofrece un servicio de configuración y de automatización basado en la nube que facilita una administración coherente en los entornos que se encuentren dentro y fuera de Azure.
  • Velero. Herramienta de código abierto que admite tanto la copia de seguridad a petición como la copia de seguridad programada y restaura todos los objetos del clúster de Kubernetes.
  • Azure Blob Storage. Almacenamiento de objetos seguro y escalable de forma masiva para cargas de trabajo nativas de nube, archivos, lagos de datos, informática de alto rendimiento y aprendizaje automático.

Componentes

Detalles del escenario

Posibles casos de uso

  • Implemente cargas de trabajo basadas en contenedores y de alta disponibilidad en una implementación de Kubernetes local de AKS.
  • Automatice la ejecución de aplicaciones contenedorizadas a escala.
  • Menor costo total de propiedad (TCO) a través de soluciones certificadas por Microsoft, automatización basada en la nube, administración centralizada y supervisión centralizada.

Hardware certificado

Use hardware certificado por Azure Stack HCI, que proporciona la configuración de Arranque seguro, United Extensible Firmware Interface (UEFI) y Módulo de plataforma segura (TPM) de fábrica. Los requisitos de proceso dependen de la aplicación y del número de nodos de trabajo que se ejecuten en AKS en el clúster de Azure Stack HCI. Use varios nodos físicos para la implementación de Azure Stack HCI o al menos un clúster de conmutación por error de Windows Server Datacenter de dos nodos para lograr una alta disponibilidad. Es necesario que todos los servidores tengan el mismo fabricante y modelo, usen un procesador Intel Nehalem de 64 bits, tipo AMD EPYC o procesadores posteriores compatibles con traducción de direcciones de segundo nivel (SLAT).

Estrategias de implementación de clústeres

AKS simplifica la implementación local de Kubernetes al proporcionar asistentes o cmdlets de PowerShell que puede usar para configurar Kubernetes y complementos de Azure Stack HCI esenciales. Los clústeres de Azure Kubernetes Service tienen los siguientes componentes en Azure Stack HCI:

  • Clúster de administración. Implemente el clúster de administración en una máquina virtual (VM) de alta disponibilidad que se ejecuta en Azure Stack HCI o en un clúster de conmutación por error de Windows Server 2019/2022 Datacenter. El clúster de administración es responsable de implementar y administrar varios clústeres de cargas de trabajo e incluye los siguientes componentes:
    • Servidor de API. Interactúa con las herramientas de administración.
    • Equilibrador de carga. Administra las reglas de equilibrio de carga para el servidor de API del clúster de administración.
  • Clústeres de carga de trabajo. Implemente componentes de plano de control de alta disponibilidad y componentes de nodo de trabajo. Las aplicaciones contenedorizadas se ejecutan en un clúster de cargas de trabajo. Para lograr el aislamiento de aplicaciones, puede implementar hasta ocho clústeres de carga de trabajo. El clúster de carga de trabajo consta de los siguientes componentes:
    • Plano de control Se ejecuta en una distribución de Linux y contiene componentes del servidor de API para la interacción con Kubernetes API y un almacén de pares clave-valor distribuido, etcd, para almacenar toda la configuración y los datos del clúster.
    • Equilibrador de carga. Se ejecuta en una máquina virtual Linux y proporciona servicios con equilibrio de carga para el clúster de carga de trabajo.
    • Nodos de trabajo. Se ejecutan en un sistema operativo Windows o Linux que hospeda aplicaciones contenedorizadas.
    • Recursos de Kubernetes. Los pods representan una instancia única de la aplicación, que normalmente tiene una asignación 1:1 con un contenedor, pero determinados pods pueden contener varios contenedores. Las implementaciones representan uno o varios pods idénticos. Los pods y las implementaciones se agrupan lógicamente en un espacio de nombres que controla el acceso a la administración de los recursos.

Requisitos de red

Kubernetes proporciona una capa de abstracción a las redes virtuales mediante la conexión de los nodos de Kubernetes a la red virtual. También proporciona conectividad entrante y saliente para pods a través del componente kube-proxy. La plataforma Azure Stack HCI proporciona mayor simplificación de la implementación mediante la configuración de la máquina virtual del equilibrador de carga haProxy.

Nota

Para obtener información sobre cómo diseñar e implementar conceptos de red para implementar nodos de AKS en clústeres de Azure Stack HCI y Windows Server, consulte el segundo artículo de esta serie, Arquitectura de red.

La arquitectura usa una red virtual que asigna direcciones IP mediante una de las siguientes opciones de red:

  • Redes IP estáticas. Usa un grupo de direcciones estático definido para todos los objetos de la implementación. Agrega ventajas adicionales y garantiza que siempre se puede acceder tanto a la carga de trabajo como a la aplicación. Éste es el método recomendado.
  • Redes DHCP. Asigna direcciones IP dinámicas a los nodos de Kubernetes, a las máquinas virtuales subyacentes y a los equilibradores de carga mediante un servidor DHCP (Protocolo de configuración dinámica de host).

Un grupo de IP virtuales es un rango de direcciones IP reservadas que se usan para asignar direcciones IP al servidor de API del clúster de Kubernetes y para los servicios de Kubernetes.

Use Project Calico para Kubernetes para obtener otras características de la red, como la directiva de red y el control de flujo.

Requisitos de almacenamiento

Use en todos los servidores del clúster los mismos tipos de unidades, es decir, que sean del mismo tamaño y modelo. Azure Stack HCI funciona con las tecnologías Serial Advanced Technology Attachment (SATA), Serial Attached SCSI (SAS), Non-Volatile Memory Express (NVMe) de conexión directa o con unidades de memoria persistentes que están conectadas físicamente a un servidor cada una. En el caso de los volúmenes de clúster, HCI usa la tecnología de almacenamiento definido por software (Espacios de almacenamiento directo) para combinar las unidades físicas en el bloque de almacenamiento y así proporcionar tolerancia a errores, escalabilidad y rendimiento. Las aplicaciones que se ejecutan en Kubernetes en Azure Stack HCI suelen a menudo esperan que las siguientes opciones de almacenamiento estén disponibles:

  • Volúmenes. Representan una manera de almacenar, recuperar y conservar datos entre pods y durante el ciclo de vida de la aplicación.
  • Volúmenes persistentes. Recurso de almacenamiento creado y administrado por Kubernetes API, y que puede existir más allá de la duración de un pod individual.

Considere la posibilidad de definir clases de almacenamiento para diferentes niveles y ubicaciones, con el fin de optimizar el costo y el rendimiento. Las clases de almacenamiento admiten el aprovisionamiento dinámico de volúmenes persistentes y definen el valor de reclaimPolicy para especificar la acción del recurso de almacenamiento subyacente para administrar volúmenes persistentes cuando se elimina el pod.

Administración de AKS en Azure Stack HCI

Para administrar AKS en Azure Stack HCI se usan las siguientes opciones de administración:

  • Windows Admin Center. Ofrece una interfaz de usuario intuitiva para que el operador de Kubernetes administre el ciclo de vida de los clústeres de Azure Kubernetes Service en Azure Stack HCI.
  • PowerShell. Facilita la descarga, configuración e implementación de AKS en Azure Stack HCI. El módulo de PowerShell también admite la implementación y configuración de otros clústeres de carga de trabajo, así como la reconfiguración de los existentes.

requisitos de Active Directory

Para lograr una administración óptima, integre AKS en Azure Stack HCI o en el clúster de conmutación por error de Windows Server Datacenter con un entorno de Active Directory Domain Services (AD DS). Siempre que sea posible, use unidades organizativas independientes para los servidores y servicios de AKS en Azure Stack HCI, ya que ello le permitirá proporcionar permisos y acceso de control más granulares. La integración de Active Directory con Azure Kubernetes Service en Azure Stack HCI permite a los usuarios de las máquinas unidas a un dominio de Windows utilizar sus credenciales de inicio de sesión único (SSO) para conectarse al servidor de API (con kubectl).

Recomendaciones

Las siguientes recomendaciones sirven para la mayoría de los escenarios. Sígalas a menos que tenga un requisito concreto que las invalide.

Integración de implementaciones híbridas de AKS con Azure Arc

Para minimizar el costo total de propiedad, integre las implementaciones híbridas de AKS con Azure Arc. Considere la posibilidad de usar los siguientes servicios de Azure:

  • Información del contenedor de Azure Monitor. Supervisa el rendimiento de las cargas de trabajo de contenedor que se ejecutan en clústeres tanto de Linux como de Windows. Recopila métricas del procesador y de la memoria procedentes de los controladores, nodos y contenedores mediante Metrics API. Con la información del contenedor, puede identificar el uso de memoria y procesador, detectar el rendimiento general del pod, conocer el comportamiento del clúster y configurar alertas para lograr una supervisión proactiva.
  • Funcionalidades de automatización. AKS híbrido proporciona una amplia gama de funcionalidades de automatización, con actualizaciones del sistema operativo combinadas con actualizaciones de la pila completa, que incluyen el firmware y los controladores que proporcionan los proveedores y asociados de Azure Stack HCI. Puede ejecutar Windows PowerShell localmente desde uno de los servidores de Azure Stack HCI o de forma remota desde un equipo de administración. La integración con Azure Automation y Azure Arc facilita una gran variedad de escenarios de automatización para las cargas de trabajo virtualizadas y contenedorizadas.
  • Velero y Azure Blob Storage. Velero es una herramienta de código abierto que admite la copia de seguridad a petición, la copia de seguridad programada y la restauración de todos los objetos del clúster de Kubernetes en los recursos definidos y almacenados en una base de datos etcd como una definición de recursos personalizados (CRD) de Kubernetes. Proporciona copia de seguridad de los recursos y volúmenes de Kubernetes para todo un clúster o parte de un clúster mediante espacios de nombres o selectores de etiquetas. Almacene el conjunto de copia de seguridad creado con la herramienta Velero en una cuenta de almacenamiento de Azure en un contenedor de blobs.
  • Servicio Kubernetes habilitado para Azure Arc. Proporciona una representación de Azure Resource Manager del clúster de AKS en Azure Stack HCI. Implemente agentes habilitados para Azure Arc en un espacio de nombres de Kubernetes, para recopilar registros y métricas, para recopilar metadatos del clúster, la versión del clúster y un recuento de nodos, así como para asegurarse de que los agentes muestran un rendimiento óptimo.
  • Azure Policy. Implemente y aplique directivas de seguridad integradas en el clúster de AKS mediante Azure Policy. También puede usar la definición de directivas personalizada para aplicar GitOps, que es la práctica de declarar el estado deseado de la configuración de Kubernetes (implementaciones, espacios de nombres, etc.) en un repositorio de Git.
  • Azure Policy para Kubernetes. Administre las directivas de clúster internas implementadas por Gatekeeper, implemente la definición de directiva en el clúster como plantilla de restricción e informe sobre el estado de cumplimiento de los clústeres de Kubernetes desde un solo lugar.
  • Azure RBAC. Se use para la asignación de roles y para administrar el acceso a Kubernetes habilitado para Azure Arc.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Confiabilidad

  • Implemente una máquina virtual de alta disponibilidad para el clúster de administración y varios hosts en el clúster de Kubernetes para satisfacer el nivel mínimo de disponibilidad para las cargas de trabajo.
  • Copia de seguridad y restauración de clústeres de cargas de trabajo mediante Velero y Azure Blob Storage. Defina los objetivos de disponibilidad y recuperación para satisfacer los requisitos empresariales.
  • Las implementaciones de AKS híbrido usan clústeres de conmutación por error y migración en vivo para conseguir una alta disponibilidad y tolerancia a errores. La migración en vivo es una característica de Hyper-V que permite trasladar máquinas virtuales en ejecución desde un host de Hyper-V a otro sin que se perciba tiempo de inactividad y de manera transparente.
  • Configure las implementaciones para usar características de Kubernetes, como Implementaciones, Mapa de afinidad y Conjuntos de réplicas, para garantizar que los pods son resistentes en los escenarios de interrupción.
  • Debe asegurarse de que los servicios a los que se hace referencia en la sección Arquitectura se admiten en la región en la que se implementa Azure Arc.
  • Considere la posibilidad de limitar el uso de imágenes de contenedor públicas y extraerlas solo de los registros de contenedor para los que tenga control del Acuerdo de Nivel de Servicio, como Azure Container Registry.

Seguridad

Céntrese en toda la pila protegiendo tanto el host como los contenedores.

Seguridad de la infraestructura

  • Use hardware con certificación de Azure Stack HCI que proporcione una configuración de Arranque seguro, UEFI y TPM de fábrica. Estas tecnologías, combinadas con seguridad basada en virtualización (VBS), ayudan a proteger las cargas de trabajo sensibles a la seguridad. Para encontrar soluciones validadas, visite el sitio web de soluciones de Azure Stack HCI.
  • Use Arranque seguro para asegurarse de que el servidor solo ejecuta software de confianza de un fabricante de equipos originales.
  • Use UEFI para controlar el proceso de arranque del servidor.
  • Use TPM para almacenar claves criptográficas y para aislar todas las funciones relacionadas con la seguridad basadas en hardware.
  • El cifrado de unidad BitLocker permite cifrar los volúmenes de Espacios de almacenamiento directo en reposo.
  • Configure directivas de red de Calico para definir reglas de aislamiento de red entre contenedores.
  • Para aumentar los requisitos de seguridad, considere la posibilidad de implementar un clúster de cargas de trabajo en un servidor Windows dedicado.
  • Use Microsoft Defender for Cloud, disponible a través de Windows Admin Center, para administrar de forma centralizada la configuración de seguridad de los servidores y clústeres. Proporciona protección contra amenazas a los clústeres de Kubernetes habilitados para Arc. La extensión de Microsoft Defender for Cloud recopila datos de los nodos del clúster y los envía al back-end de Azure Defender para Kubernetes en la nube para su posterior análisis.
  • Protección de la comunicación con certificados.
  • Haga girar las claves de cifrado del almacén de secretos de Kubernetes (etcd) mediante el complemento Servidor de administración de claves (KMS).

Seguridad de la aplicación

  • Use la extensión del proveedor de secretos de Azure Key Vault en AKS en Azure Stack HCI para proteger aún más los secretos que usan diferentes aplicaciones, para lo que los almacena en el servicio Azure Key Vault.
  • Use el complemento Open Service Mesh de AKS para proteger la comunicación entre servicios mediante la habilitación de TLS mutua (mTLS). Este complemento también se puede usar para definir y ejecutar directivas de control de acceso específicas en los servicios.
  • Use Azure Policy para Kubernetes para aplicar directivas de seguridad de clúster, como pods sin privilegios.
  • Use una instancia de Azure Container Registry que contenga el examen de vulnerabilidades en su repositorio de contenedores.
  • Use cuentas de seguridad administradas por grupos para las cargas de trabajo de Windows con un host no unido a un dominio (solo se puede aplicar a Windows Server).

Seguridad del contenedor

  • Proteja el entorno de host y demonio mediante la eliminación de los servicios que no sean necesarios.
  • Mantenga los secretos fuera de las imágenes y móntelos solo a través del motor de orquestación de contenedores.
  • Proteja las imágenes de una instancia Azure Container Registry que admita el examen de vulnerabilidades y RBAC.
  • Use el aislamiento de los contenedores y evite ejecutar contenedores en modo con privilegios para evitar que los atacantes escalen los privilegios si el contenedor está en peligro.

Optimización de costos

Excelencia operativa

  • Asistente para crear clúster. Utilice la experiencia simplificada de aprovisionamiento y administración con Windows Admin Center. El Asistente para crear clúster de Windows Admin Center proporciona una interfaz controlada por asistente que le guía en la creación de clústeres de Azure Stack HCI. El Asistente para crear clústeres facilita la operación, con respecto a crear scripts de implementación que puede controlar el código fuente para la auditoría y la repetibilidad en varias implementaciones. Del mismo modo, Windows Admin Center simplifica el proceso de administración de VM de Azure Stack HCI.
  • Azure Arc. Se integra con Azure Arc o con un rango de servicios de Azure que proporcionan funcionalidades adicionales de administración, mantenimiento y resistencia (por ejemplo, Azure Monitor y Log Analytics).
  • GitOps. En lugar de configurar manualmente los componentes de Kubernetes, use herramientas automatizadas para aplicar configuraciones a un clúster de Kubernetes, ya que estas configuraciones se registran en un repositorio de origen. Este proceso se conoce a menudo como GitOps, y las soluciones conocidas de GitOps para Kubernetes incluyen Flux y Argo CD. En esta arquitectura, se recomienda usar la extensión GitOps proporcionada por Microsoft, que se basa en Flux.
  • Open Service Mesh (OSM) habilitado para Azure Arc. Malla de servicio nativa ligera, extensible y en la nube que permite a los usuarios no solo administrar de forma uniforme características de observación para entornos de microservicios muy dinámicos, sino también ayudar a protegerlas y disfrutar de ellas de inmediato.

Eficiencia del rendimiento

  • Use hardware certificado de Azure Stack HCI para mejorar el rendimiento y el tiempo de actividad de las aplicaciones, así como para simplificar la administración y la operaciones, y reducir el costo total de propiedad.
  • Conozca los límites de AKS en Azure Stack HCI. Microsoft admite las implementaciones de AKS en Azure Stack con un máximo de ocho servidores físicos por clúster, ocho clústeres de Kubernetes y 200 máquinas virtuales.
  • El escalado de AKS en Azure Stack HCI depende del número de nodos de trabajo y clústeres de destino. Para dimensionar correctamente el hardware de los nodos de trabajo, es preciso prever el número de pods, contenedores y nodos de trabajo de un clúster de destino. Debe asegurarse de que al menos el 15 % de la capacidad de Azure Stack HCI está reservada para errores, tanto planeados como no planeados. Para mejorar el rendimiento, use los recursos informáticos de forma eficaz no solo para cumplir los requisitos del sistema, sino también para mantener esa eficiencia a medida que cambia la demanda y evolucionan las tecnologías. La regla general es que si un nodo se queda sin conexión durante el mantenimiento o durante un error no planeado, los nodos restantes puedan tener suficiente capacidad para administrar el aumento de la carga.
  • Si ejecuta muchos servicios de Kubernetes en cada clúster de destino, considere la posibilidad de aumentar el tamaño de la máquina virtual del equilibrador de carga.
  • AKS en Azure Stack HCI distribuye los nodos de trabajo para cada grupo de nodos de un clúster de destino mediante la lógica de selección de ubicación de Azure Stack HCI.
  • Planee las reservas de direcciones IP para configurar hosts de AKS, clústeres de cargas de trabajo, servidores de Cluster API, servicios de Kubernetes y servicios de aplicación. Microsoft recomienda reservar un mínimo de 256 direcciones IP para la implementación de AKS en Azure Stack HCI.
  • Considere la posibilidad de implementar un controlador de entrada que funcione en la capa 7 y use más reglas inteligentes para distribuir el tráfico de la aplicación.
  • Implemente la optimización del rendimiento de la red para la asignación del ancho de banda del tráfico.
  • Use la aceleración de la unidad de procesamiento gráfico (GPU) para cargas de trabajo extensas.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Creadores de entidad de seguridad:

Otros colaboradores:

Pasos siguientes