Compartir a través de


Perspectiva del Azure Framework Well-Architected sobre el servicio de Kubernetes de Azure (AKS)

Azure Kubernetes Service (AKS) es un servicio de Kubernetes administrado que puede usar para implementar y administrar aplicaciones en contenedor. De forma similar a otros servicios administrados, AKS descarga gran parte de la sobrecarga operativa en Azure, a la vez que proporciona características de alta disponibilidad, escalabilidad y portabilidad a la carga de trabajo.

Este artículo asume que, como arquitecto, ha revisado el árbol de decisiones de proceso y ha elegido AKS como proceso para su carga de trabajo. Las instrucciones de este artículo proporcionan recomendaciones de arquitectura que se asignan a los principios de los pilares del marco de buena arquitectura de Azure.

Importante

Cómo usar esta guía

Cada sección tiene una lista de comprobación de diseño que presenta áreas arquitectónicas de interés junto con estrategias de diseño localizadas en el ámbito tecnológico.

También se incluyen recomendaciones para las funcionalidades tecnológicas que pueden ayudar a materializar esas estrategias. Las recomendaciones no representan una lista exhaustiva de todas las configuraciones disponibles para AKS y sus dependencias. En su lugar, enumeran las recomendaciones clave asignadas a las perspectivas de diseño. Use las recomendaciones para crear la prueba de concepto o para optimizar los entornos existentes.

Arquitectura fundamental que muestra las recomendaciones clave: arquitectura base de AKS.

Ámbito de la tecnología

Esta revisión se centra en las decisiones relacionadas entre sí para los siguientes recursos de Azure:

  • AKS

Al hablar sobre las mejores prácticas de los pilares del Well-Architected Framework para AKS, es importante distinguir entre el clúster y la carga de trabajo . Los procedimientos recomendados de clúster son una responsabilidad compartida entre el administrador del clúster y su proveedor de recursos, mientras que los procedimientos recomendados de carga de trabajo son el dominio de un desarrollador. Este artículo tiene consideraciones y recomendaciones para cada uno de estos roles.

Nota

Los siguientes pilares incluyen una lista de comprobación de diseño y una lista de recomendaciones que indican si cada opción es aplicable a la arquitectura de clúster , la arquitectura de carga de trabajo , o ambas.

Fiabilidad

El propósito del pilar Fiabilidad es proporcionar una funcionalidad continuada mediante la creación de suficiente resiliencia y la capacidad de recuperarse rápidamente de los fallos.

principios de diseño de confiabilidad proporcionar una estrategia de diseño de alto nivel aplicada a componentes individuales, flujos del sistema y al sistema en su conjunto.

Diseño de una lista de comprobación

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Fiabilidad. Determine su relevancia para los requisitos empresariales a la vez que tenga en cuenta las características de AKS y sus dependencias. Amplíe la estrategia para incluir más enfoques según sea necesario.

  • (Clúster) Crear redundancia para mejorar la resistencia. Usar zonas de disponibilidad para los clústeres de AKS como parte de la estrategia de resistencia para aumentar la disponibilidad al implementar en una sola región. Muchas regiones de Azure proporcionan zonas de disponibilidad. Las zonas están lo suficientemente cerca como para tener conexiones de baja latencia entre ellas, pero lo suficientemente lejos como para reducir la probabilidad de que las interrupciones locales afecten a más de una zona.

    En el caso de las cargas de trabajo críticas, implemente varios clústeres en distintas regiones de Azure. Al distribuir geográficamente clústeres de AKS, puede lograr una mayor resistencia y minimizar los efectos de los errores regionales. Una estrategia de varias regiones ayuda a maximizar la disponibilidad y proporcionar continuidad empresarial. Las cargas de trabajo accesibles desde Internet deben usar Azure Front Door o Azure Traffic Manager para enrutar globalmente el tráfico a través de clústeres de AKS. Para obtener más información, consulte estrategia multirregional.

    Planee el espacio de direcciones IP para asegurarse de que el clúster pueda escalar y controlar de forma confiable el tráfico de conmutación por error en topologías de varios clústeres.

  • (Clúster y carga de trabajo) Supervisar la confiabilidad y los indicadores generales de mantenimiento del clúster y las cargas de trabajo. Recopilar registros y métricas para supervisar el estado de la carga de trabajo, identificar las tendencias de rendimiento y confiabilidad y solucionar problemas. Revise Procedimientos recomendados para supervisar Kubernetes con Azure Monitor y la guía de modelado de salud para cargas de trabajo Well-Architected para ayudar a diseñar la solución de supervisión de confiabilidad y salud para su solución de AKS.

    Asegúrese de que las cargas de trabajo están creadas para admitir el escalado horizontal y notificar la preparación y el estado de las aplicaciones.

  • (Clúster y carga de trabajo) Alojar pods de aplicación en grupos de nodos de usuario. Al aislar los pods del sistema de las cargas de trabajo de la aplicación, ayuda a garantizar que los servicios esenciales de AKS no se vean afectados por las demandas de recursos o los posibles problemas causados por una carga de trabajo que se ejecuta en grupos de nodos de usuario.

    Asegúrese de que la carga de trabajo se ejecuta en grupos de nodos de usuario y elija la SKU de tamaño adecuada. Como mínimo, incluya dos nodos para los grupos de nodos de usuario y tres nodos para el grupo de nodos del sistema.

  • (Clúster y carga de trabajo) Tenga en cuenta el acuerdo de nivel de servicio (SLA) de tiempo de actividad de AKS en los objetivos de disponibilidad y recuperación. Para definir los objetivos de confiabilidad y recuperación para el clúster y la carga de trabajo, siga las recomendaciones de Recomendaciones para definir los objetivos de confiabilidad. A continuación, formule un diseño que cumpla esos objetivos.

  • (Clúster y carga de trabajo) Proteja el servicio de clúster de AKS mediante Azure Backup mediante el almacenamiento de puntos de recuperación en un almacén de Backup y realice la restauración durante cualquier escenario de desastre. Para realizar copias de seguridad y restaurar las aplicaciones en contenedores y los datos que se ejecutan en clústeres de AKS, siga las instrucciones de la introducción a la copia de seguridad de AKS para configurar la protección.

Recomendaciones

Recomendación Prestación
(Clúster y carga de trabajo) Controle la planificación de pods utilizando selectores de nodo y afinidad.

En AKS, el programador de Kubernetes puede aislar lógicamente las cargas de trabajo por hardware en el nodo. A diferencia de las tolerancias, los pods que no tienen un selector de nodos coincidente se pueden programar en nodos etiquetados, pero se da prioridad a los pods que especifican un selector de nodos coincidente.
La afinidad de nodo da lugar a una mayor flexibilidad, lo que permite definir lo que sucede si el pod no puede coincidir con un nodo.
(Clúster) Elija el complemento de red adecuado en función de los requisitos de red y el ajuste de tamaño del clúster.

Los diferentes complementos de red proporcionan distintos niveles de funcionalidad. Azure Container Networking Interface (Azure CNI) es necesario para escenarios específicos, como grupos de nodos basados en Windows, algunos requisitos de red y directivas de red de Kubernetes.

Para obtener más información, consulte Kubenet frente a Azure CNI.
El complemento de red adecuado puede ayudar a garantizar una mejor compatibilidad y rendimiento.
(Clúster y carga de trabajo) Use el SLA de tiempo de actividad de AKS para clústeres de nivel de producción. La carga de trabajo puede admitir objetivos de mayor disponibilidad gracias a las mayores garantías de disponibilidad del punto de conexión del servidor de API de Kubernetes para los clústeres de AKS.
(Clúster) Use zonas de disponibilidad para maximizar la resistencia dentro de una región de Azure mediante la distribución de nodos de agente de AKS entre centros de datos físicamente independientes.

Si existen requisitos de coubicación, use una implementación de AKS basada en conjuntos de escalado de máquinas virtuales normales en una sola zona o use los grupos con ubicación por proximidad para minimizar la latencia entre nodos.
Al distribuir grupos de nodos entre varias zonas, los nodos de un grupo de nodos continúan ejecutándose incluso si otra zona deja de funcionar.
(Clúster y carga de trabajo) Defina las solicitudes de recursos de pod y los límites en los manifiestos de implementación de aplicaciones. Aplique esos límites mediante Azure Policy. Los límites de recursos de MEMORIA y CPU de contenedor son necesarios para evitar el agotamiento de recursos en el clúster de Kubernetes.
(Clúster y carga de trabajo) Mantenga el grupo de nodos del sistema aislado de las cargas de trabajo de la aplicación.

Los grupos de nodos del sistema requieren una SKU de máquina virtual (VM) de al menos 2 vCPU y 4 GB de memoria. Se recomienda usar 4 vCPU o más. Para obtener más información, consulte Pods de nodos del sistema y usuario.
El grupo de nodos del sistema hospeda pods críticos del sistema que son esenciales para el plano de control del clúster. Al aislar estos pods del sistema de las cargas de trabajo de las aplicaciones, ayuda a asegurarse de que los servicios esenciales no se vean afectados por las demandas de recursos o los problemas potenciales causados por las cargas de trabajo.
(Clúster y carga de trabajo) Separe las aplicaciones a grupos de nodos dedicados en función de requisitos específicos. Evite un gran número de grupos de nodos para reducir la sobrecarga de administración. Las aplicaciones pueden compartir la misma configuración y necesitan máquinas virtuales habilitadas para GPU, CPU o máquinas virtuales optimizadas para memoria, o la capacidad de escalar a cero. Al dedicar grupos de nodos a aplicaciones específicas, puede ayudar a garantizar que cada aplicación obtenga los recursos que necesita sin sobreaprovisionar ni infrautilizar recursos.
(Clúster) Use una NAT Gateway para clústeres que ejecutan cargas de trabajo que hacen muchas conexiones salientes simultáneas. Azure NAT Gateway admite tráfico de salida confiable a escala y le ayuda a evitar problemas de confiabilidad mediante la aplicación de limitaciones de Azure Load Balancer al tráfico saliente simultáneo elevado.
(Clúster y carga de trabajo) Use Azure Backup para proteger el clúster de AKS y restaurar a regiones alternativas durante el desastre. Azure Backup admite las operaciones de copia de seguridad y restauración de aplicaciones en contenedor y de datos, abarcando tanto el estado del clúster como los datos de la aplicación.

Puede usar las copias de seguridad en un escenario de desastre regional y recuperarlas.
Azure Backup con Azure Kubernetes Service (AKS) ofrece una solución totalmente administrada, escalable, segura y rentable. Mejora la confiabilidad de la carga de trabajo sin las complejidades de configuración y mantenimiento de la infraestructura de copia de seguridad.

Seguridad

El propósito del pilar seguridad es proporcionar garantías de confidencialidad, integridad y disponibilidad a la carga de trabajo.

Los Principios de diseño de seguridad proporcionan una estrategia de diseño general para lograr esos objetivos aplicando enfoques al diseño técnico de AKS.

Diseño de una lista de comprobación

Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño de seguridad e identifique vulnerabilidades y controles para mejorar la posición de seguridad. Familiarícese con los conceptos de seguridad de AKS y evalúe las recomendaciones de protección de seguridad basadas en la prueba comparativa de Kubernetes de CIS. Amplíe la estrategia para incluir más enfoques según sea necesario.

  • (Clúster) Integre con Microsoft Entra ID para la administración de identidad y acceso. Centralice la administración de identidades para el clúster mediante Microsoft Entra ID. Cualquier cambio en el estado del grupo o cuenta del usuario se actualiza automáticamente al acceder al clúster de AKS. Establecer la identidad como el principal perímetro de seguridad. Los desarrolladores y propietarios de aplicaciones del clúster de Kubernetes necesitan obtener acceso a diferentes recursos.

    Use el control de acceso basado en roles (RBAC) de Kubernetes con Microsoft Entra ID para el acceso con privilegios mínimos. Proteja la configuración y los secretos minimizando la asignación de privilegios de administrador.

  • (Clúster) Integrar con herramientas de monitoreo de seguridad y gestión de información y eventos de seguridad. Usar Microsoft Defender para contenedores con Microsoft Sentinel para detectar y responder rápidamente a amenazas en sus clústeres y las cargas de trabajo que se ejecutan en ellos. Active el conector de AKS para Microsoft Sentinel a fin de transmitir los registros de diagnóstico de AKS a Microsoft Sentinel.

  • (Clúster y carga de trabajo) Implementar la segmentación y los controles de red. Para evitar la filtración de datos, asegúrese de que solo se permita el tráfico autorizado y seguro y contenga el radio de explosión de una infracción de seguridad.

    Considere la posibilidad de usar un clúster de AKS privado para asegurarse de que el tráfico de administración de clústeres al servidor de API permanece en la red privada. O bien, use la lista de permitidos del servidor de API para clústeres públicos.

  • (Carga de trabajo) Usar un firewall de aplicaciones web (WAF) para examinar el tráfico entrante en busca de posibles ataques. WAF puede detectar y mitigar amenazas en tiempo real para ayudar a bloquear el tráfico malintencionado antes de que llegue a las aplicaciones. Proporciona una protección sólida frente a ataques comunes basados en web, como inyección de código SQL, scripting entre sitios y otras vulnerabilidades de Open Web Application Security Project. Algunos equilibradores de carga, como azure Application Gateway o Azure Front Door tienen un WAF integrado.

  • (Carga de trabajo) Mantenga reforzada la cadena de suministro de software de una carga de trabajo. Asegúrese de que la canalización de integración continua y entrega continua esté reforzado con un análisis compatible con contenedores.

  • (Clúster y carga de trabajo) Implementación de protección adicional para cargas de trabajo seguras especializadas. Si el clúster necesita ejecutar una carga de trabajo confidencial, es posible que tenga que implementar un clúster privado. Estos son algunos ejemplos:

Recomendaciones

Recomendación Prestación
(Clúster) Use identidades administradas en el clúster. Puede evitar la sobrecarga asociada a la administración y rotación de los principios de servicio.
(Carga de trabajo) Use el ID de carga de trabajo de Microsoft Entra con AKS para acceder a los recursos protegidos de Microsoft Entra, como Azure Key Vault y Microsoft Graph, desde la carga de trabajo. Use identificadores de carga de trabajo de AKS para proteger el acceso a los recursos de Azure mediante RBAC de Microsoft Entra ID sin tener que administrar credenciales directamente en el código.
(Clúster) Use Microsoft Entra ID para autenticarse con Azure Container Registry desde AKS. Mediante el identificador de Entra de Microsoft, AKS puede autenticarse con Container Registry sin el uso de secretos de imagePullSecrets.
(Clúster) Proteja el tráfico de red al servidor de API mediante el clúster de AKS privado si los requisitos de carga de trabajo requieren niveles más altos de segmentación. De forma predeterminada, el tráfico de red entre los grupos de nodos y el servidor de API viaja por la red troncal de Microsoft. Mediante el uso de un clúster privado, puede ayudar a garantizar que el tráfico de red al servidor de API permanezca solo en la red privada.
(Clúster) En el caso de los clústeres de AKS públicos, use intervalos de direcciones IP autorizados por el servidor de API. Incluya orígenes como las direcciones IP públicas de los agentes de compilación de implementación, la administración de operaciones y el punto de salida de los grupos de nodos, como Azure Firewall. Al usar clústeres públicos, puede reducir significativamente la superficie expuesta a ataques del clúster de AKS limitando el tráfico que puede llegar al servidor de API de los clústeres.
(El Clúster) Proteja el servidor de API usando Microsoft Entra ID RBAC.

Deshabilitar las cuentas locales para garantizar todo el acceso al clúster mediante identidades basadas en Microsoft Entra ID.
Proteger el acceso al servidor de API de Kubernetes es uno de los aspectos más importantes que puede hacer para proteger el clúster. Integre RBAC de Kubernetes con Microsoft Entra ID para controlar el acceso al servidor de API.
(Clúster) Use directivas de red de Azure o Calico. Mediante el uso de directivas, puede proteger y controlar el tráfico de red entre pods de un clúster. Calico proporciona un conjunto más completo de funcionalidades, como la ordenación y prioridad de directivas, las reglas de denegación y las reglas de coincidencia más flexibles.
(Clúster) Proteja los clústeres y pods mediante Azure Policy. Azure Policy puede ayudar a aplicar de manera centralizada y coherente las políticas y medidas de seguridad a escala en tus clústeres. También puede controlar qué funciones se conceden a los pods y detectar si algo contraviene la política de la empresa.
(Clúster) Proteja el acceso del contenedor a los recursos. Limite el acceso a las acciones que los contenedores pueden realizar. Proporcione el menor número de permisos, y evite el uso de la raíz o de elevación de privilegios.

Para los contenedores basados en Linux, consulte Acceso de contenedor de seguridad a los recursos mediante características de seguridad integradas de Linux.
Al restringir los permisos y evitar el uso de root o escalación de privilegios, ayuda a reducir el riesgo de infracciones de seguridad. Puede ayudar a garantizar que, incluso si un contenedor está en peligro, se minimizan los posibles daños.
(Clúster) Controle el tráfico de salida del clúster asegurándose de que el tráfico saliente del clúster pasa a través de un punto de seguridad de red, como azure Firewall o un proxy HTTP de . Al enrutar el tráfico saliente a través de Azure Firewall o un proxy HTTP, puede ayudar a aplicar directivas de seguridad que impidan el acceso no autorizado y la filtración de datos. Este enfoque también simplifica la administración de directivas de seguridad y facilita la aplicación de reglas coherentes en todo el clúster de AKS.
(Clúster) Use el ID de carga de trabajo de Microsoft Entra de código abierto y el Controlador CSI del almacén de secretos junto con Key Vault. Estas características le ayudan a proteger y rotar secretos, certificados y cadenas de conexión en Key Vault mediante el cifrado seguro. Proporcionan un registro de auditoría de acceso y mantienen los secretos críticos fuera del flujo de implementación.
(Clúster) Use Microsoft Defender para contenedores. Microsoft Defender para contenedores le ayuda a supervisar y mantener la seguridad de los clústeres, contenedores y sus aplicaciones.

Optimización de costos

La optimización de costes se centra en detectar patrones de gasto, priorizar inversiones en áreas críticas y optimizar en otras para ajustarse al presupuesto de la organización al tiempo que se cumplen los requisitos empresariales.

Los principios de diseño de optimización de costos de proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos y tomar decisiones según sea necesario en el diseño técnico relacionado con AKS y su entorno.

Diseño de una lista de comprobación

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Optimización de costes para inversiones. Ajuste el diseño para que la carga de trabajo esté alineada con el presupuesto asignado para la carga de trabajo. El diseño debe usar las funcionalidades adecuadas de Azure, supervisar las inversiones y encontrar oportunidades para optimizar con el tiempo.

  • (Clúster) Incluir los planes de tarifa de para AKS en el modelo de costos. Para calcular los costos, use la calculadora de precios de Azure y pruebe diferentes planes de configuración y pago en la calculadora.

  • (Clúster) Obtener las mejores tarifas para la carga de trabajo. Use la SKU de máquina virtual adecuada para cada grupo de nodos porque afecta directamente al costo de ejecutar las cargas de trabajo. La elección de una máquina virtual de alto rendimiento sin un uso adecuado puede dar lugar a gastos desperdiciados. La selección de una máquina virtual menos eficaz puede provocar problemas de rendimiento y un mayor tiempo de inactividad.

    Si ha planificado correctamente la capacidad y la carga de trabajo es predecible y existirá durante un período de tiempo prolongado, suscríbase a Azure Reservations o a un plan de ahorro para reducir los costes de recurso.

    Elija Azure Spot Virtual Machines para usar la capacidad de Azure no utilizada con descuentos significativos. Estos descuentos pueden alcanzar hasta el 90% de los precios de pago por uso. Si Azure necesita recuperar la capacidad, la infraestructura de Azure expulsará los nodos de acceso puntual.

    Si ejecuta AKS en las instalaciones o en el perímetro, también puede usar Ventaja híbrida de Azure para reducir los costes al ejecutar aplicaciones contenedorizadas en esos escenarios.

  • (Clúster y carga de trabajo) Optimizar los costos de los componentes de carga de trabajo. Elija la región más rentable para la carga de trabajo. Evalúe los requisitos de costo, latencia y cumplimiento para asegurarse de que ejecuta la carga de trabajo de forma rentable y que no afecta a los clientes ni crea cargos adicionales de red. La región en la que implementa la carga de trabajo en Azure puede afectar significativamente al costo. Debido a muchos factores, el costo de los recursos varía para cada región de Azure.

    Mantenga imágenes pequeñas y optimizadas para ayudar a reducir los costos porque los nodos nuevos necesitan descargar esas imágenes. Los fallos o agotamientos de tiempos de espera de solicitudes de usuario cuando se inicia la aplicación pueden dar lugar a un sobreaprovisionamiento. Compile imágenes de forma que permita que el contenedor se inicie lo antes posible para ayudar a evitar errores y tiempos de espera.

    Revise las recomendaciones de optimización de costos en Procedimientos recomendados para supervisar Kubernetes con Azure Monitor para determinar la mejor estrategia de supervisión para las cargas de trabajo. Analice las métricas de rendimiento, empezando por la CPU, la memoria, el almacenamiento y la red, para identificar las oportunidades de optimización de costos por clúster, nodos y espacio de nombres.

  • (Clúster y carga de trabajo) Optimizar los costos de escalado de cargas de trabajo. Considere las configuraciones de escalado vertical y horizontal alternativas para reducir los costos de escalado, a la vez que cumple todos los requisitos de carga de trabajo. Use escaladores automáticos para escalar verticalmente cuando las cargas de trabajo estén menos activas.

  • (Clúster y carga de trabajo) Recopilar y analizar datos de costos. La base de la habilitación de la optimización de costos es la propagación de un clúster de ahorro de costos. Desarrolle una mentalidad de rentabilidad que incluya la colaboración entre los equipos de finanzas, operaciones e ingeniería para impulsar la alineación con los objetivos de ahorro de costos y aportar transparencia a los costos en la nube.

Recomendaciones

Recomendación Prestación
(Clúster y carga de trabajo) Ajuste la selección de SKU de AKS y el tamaño de disco administrado según los requisitos de la carga de trabajo. Alinear su selección con las demandas de trabajo ayuda a asegurarse de que no pague por recursos no necesarios.
(Clúster) Elija los tipos de instancia de máquina virtual adecuados para los grupos de nodos de AKS de .

Para determinar los tipos de instancia de máquina virtual adecuados, tenga en cuenta las características de la carga de trabajo, los requisitos de recursos y las necesidades de disponibilidad.
Seleccionar el tipo de instancia de máquina virtual adecuado es fundamental porque afecta directamente al costo de ejecutar aplicaciones en AKS. La elección de una instancia de alto rendimiento sin un uso adecuado puede dar lugar a gastos desperdiciados. Elegir una instancia menos eficaz puede provocar problemas de rendimiento y un mayor tiempo de inactividad.
(Clúster) Elija máquinas virtuales basadas en la arquitectura de Azure Resource Manager más eficaz. AKS admite la creación de grupos de nodos Arm64 y una mezcla de nodos de arquitectura de Intel y Resource Manager dentro de un clúster. La arquitectura Arm64 proporciona una mejor relación de precio a rendimiento debido a su menor utilización de energía y rendimiento de proceso eficiente. Estas funcionalidades pueden aportar un mejor rendimiento a un costo menor.
(Clúster) Habilite el escalador automático de clúster para reducir automáticamente el número de nodos de agente en respuesta a la capacidad excesiva de recursos. El escalado automático para reducir el número de nodos en su clúster de AKS le permite ejecutar un clúster eficiente cuando la demanda es baja y aumentar el tamaño cuando la demanda incrementa.
(Clúster) Habilite el aprovisionamiento automático de nodos para automatizar la selección de SKU de máquina virtual. El aprovisionamiento automático de nodos simplifica el proceso de selección de SKU y decide, en función de los requisitos de recursos de pod pendientes, la configuración de máquina virtual óptima para ejecutar cargas de trabajo de la manera más eficaz y rentable.
(Carga de trabajo) Use HorizontalPodAutoscaler para ajustar el número de pods en una implementación en función del uso de la CPU o de otras métricas. Reducir automáticamente el número de pods cuando la demanda es baja y aumentarlo cuando la demanda aumenta resulta en un funcionamiento más rentable de la carga de trabajo.
(Carga de trabajo) Use VerticalPodAutoscaler (versión preliminar) para ajustar el tamaño de los pods y establecer las solicitudes y los límites dinámicamente en función del uso histórico. Al establecer solicitudes y límites de recursos en contenedores para cada carga de trabajo, VerticalPodAutoscaler libera CPU y memoria para otros pods y ayuda a garantizar el uso eficaz de los clústeres de AKS.
(Clúster) Configure el complemento de análisis de costes de AKS. La extensión de clúster de análisis de costos permite obtener una visión detallada de los costos asociados a varios recursos de Kubernetes en sus clústeres o espacios de nombres.

Excelencia operativa

La excelencia operativa se centra principalmente en procedimientos para prácticas de desarrollo, observabilidad y administración de versiones.

Los principios de diseño de Excelencia Operativa proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos con respecto a los requisitos operativos de una carga de trabajo.

Diseño de una lista de comprobación

Inicie su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para la Excelencia Operativa para definir los procesos de observabilidad, pruebas e implementación. Consulte Procedimientos recomendados de AKS y Guía de operaciones del segundo día para obtener información sobre las consideraciones clave que hay que comprender e implementar.

  • (Clúster) Implementar un enfoque de implementación de infraestructura como código (IaC). Usar un enfoque de implementación declarativo basado en plantillas mediante Bicep, Terraform o herramientas similares. Asegúrese de que todas las implementaciones son repetibles, rastreables y almacenadas en un repositorio de código fuente. Para obtener más información, consulte las guías de inicio rápido en la documentación del producto de AKS.

  • (Clúster y carga de trabajo) Automatización de implementaciones de infraestructura y cargas de trabajo. Use soluciones de software estándar para administrar, integrar y automatizar la implementación del clúster y las cargas de trabajo. Integre las canalizaciones de implementación con el sistema de control de código fuente e incorpore pruebas automatizadas.

    Desarrolle un proceso automatizado con el fin de asegurar que sus clústeres se inicialicen con las configuraciones e implementaciones necesarias a nivel de clúster. Este proceso se realiza normalmente mediante GitOps.

    Use un proceso de implementación repetible y automatizado para la carga de trabajo dentro del ciclo de vida de desarrollo de software.

  • (Clúster y carga de trabajo) Implementar una estrategia de supervisión completa. Recopilar registros y métricas para supervisar el estado de la carga de trabajo, identificar las tendencias en el rendimiento y la confiabilidad y solucionar problemas. Revise los procedimientos recomendados de para supervisar Kubernetes con Azure Monitor y las recomendaciones de Well-Architected para diseñar y crear un sistema de supervisión para determinar la mejor estrategia de supervisión para las cargas de trabajo.

    Habilite la configuración de diagnóstico para asegurarse de que se registran las interacciones del servidor de API principal o del plano de control.

    La carga de trabajo debe diseñarse para emitir telemetría que se pueda recopilar y que también incluya los estados de actividad y preparación.

  • (Clúster y carga de trabajo) Implementar pruebas en estrategias de producción. Pruebas en producción usa implementaciones reales para validar y medir el comportamiento y el rendimiento de una aplicación en el entorno de producción. Use prácticas de ingeniería de caos destinadas a Kubernetes para identificar problemas de confiabilidad de aplicaciones o plataformas.

    azure Chaos Studio puede ayudar a simular errores y desencadenar situaciones de recuperación ante desastres.

  • (Clúster y carga de trabajo) Aplicar la gobernanza de la carga de trabajo. Azure Policy ayuda a garantizar el cumplimiento coherente con los estándares de la organización, automatiza la aplicación de directivas y proporciona visibilidad y control centralizados sobre los recursos del clúster.

    Consulte la sección de directivas de Azure para obtener más información acerca de las directivas integradas disponibles para AKS.

  • (Clúster y carga de trabajo) Use implementaciones azul-verde a nivel stamp para cargas de trabajo críticas. Un enfoque de implementación azul-verde a nivel de stamp puede aumentar la confianza en la publicación de cambios y permite actualizaciones sin interrupciones, ya que se pueden validar las compatibilidades con las dependencias de nivel inferior, como la plataforma Azure, los proveedores de recursos y los módulos de IaC.

    Los controladores de entrada y Kubernetes admiten muchos patrones de implementación avanzados para su inclusión en el proceso de ingeniería de versiones. Considere patrones como implementaciones azul-verde o versiones controladas.

  • (Clúster y carga de trabajo) Hacer que las cargas de trabajo sean más sostenibles. Hacer que las cargas de trabajo sean más sostenibles y eficientes en la nube requiere la combinación de esfuerzos en torno a optimización de costos, reducir las emisiones de carbonoy optimizar el consumo de energía. Optimizar el costo de la aplicación es el paso inicial para hacer que las cargas de trabajo sean más sostenibles.

    Consulte Principios de ingeniería de software sostenible en AKS para obtener información sobre cómo crear cargas de trabajo de AKS sostenibles y eficaces.

Recomendaciones

Recomendación Prestación
(Clúster) Ponga en práctica los estándares de configuración de clústeres y pods mediante Directivas de Azure para AKS. Las directivas de Azure para AKS pueden ayudarle a aplicar medidas de seguridad y aplicación a escala en los clústeres de una manera centralizada y coherente. Use directivas para definir los permisos concedidos a los pods y garantizar el cumplimiento de las directivas de la empresa.
(Carga de trabajo) Use el escalador automático controlado por eventos de Kubernetes (KEDA). KEDA permite que las aplicaciones se escalen en función de eventos, como el número de eventos que se están procesando. Puede elegir entre un catálogo enriquecido de más de 50 escaladores KEDA.

Eficiencia del rendimiento

La eficiencia del rendimiento consiste en mantener la experiencia del usuario incluso cuando hay un aumento de la carga mediante la administración de la capacidad. La estrategia incluye el escalado de recursos, la identificación y la optimización de posibles cuellos de botella y la optimización del rendimiento máximo.

Los principios de diseño eficiencia del rendimiento proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos de capacidad con respecto al uso esperado.

Diseño de una lista de comprobación

Inicie su estrategia de diseño basada en la lista de comprobación de revisión de diseño para la Eficiencia del Rendimiento, con el fin de definir una línea base usando indicadores clave de rendimiento específicos para AKS.

  • (Clúster y carga de trabajo) Llevar a cabo la planificación de la capacidad. Llevar a cabo e iterar un ejercicio detallado de planificación de capacidad que incluye SKU, configuración de escalado automático, direccionamiento IP y consideraciones de conmutación por error.

    Después de formalizar el plan de capacidad, actualice con frecuencia el plan observando continuamente el uso de recursos del clúster.

  • (Clúster) Definir una estrategia de escalado. Configure el escalado para asegurarse de que los recursos se ajustan de forma eficaz para satisfacer las demandas de carga de trabajo sin uso excesivo ni desperdicio. Use características de AKS como el escalado automático del clúster y HorizontalPodAutoscaler para satisfacer dinámicamente sus necesidades de carga de trabajo con menos esfuerzo en las operaciones. Optimice la carga de trabajo para que funcione e implemente de forma eficaz en un contenedor.

    Revise la guía de escalado y creación de particiones para comprender los distintos aspectos de la configuración de escalado.

  • (Clúster y carga de trabajo) Realice pruebas de rendimiento. Realice actividades de prueba de carga continuas que ejerciten tanto el escalador automático de pods como el de clústeres. Compare los resultados con los objetivos de rendimiento y las líneas base establecidas.

  • (Clúster y carga de trabajo) Escalar cargas de trabajo y flujos de forma independiente. Separar cargas de trabajo y flujos a grupos de nodos diferentes para permitir el escalado independiente. Siga las instrucciones de Optimización del diseño de cargas de trabajo mediante flujos para identificar y priorizar los flujos.

Recomendaciones

Recomendación Prestación
(Clúster) Habilite el escalador automático de clústeres para ajustar automáticamente el número de nodos de agente en respuesta a las demandas de la carga de trabajo.

Use HorizontalPodAutoscaler para ajustar el número de pods en una implementación en función del uso de la CPU o de otras métricas.
La capacidad de escalar vertical u horizontalmente automáticamente el número de nodos y el número de pods de su clúster de AKS le permite ejecutar un clúster eficaz y rentable.
(Clúster y carga de trabajo) Separe las cargas de trabajo en grupos de nodos diferentes y considere la posibilidad de escalar los grupos de nodos de usuario. A diferencia de los grupos de nodos del sistema, que siempre requieren nodos en ejecución, los grupos de nodos de usuario permiten escalar hacia arriba o hacia abajo.
(Carga de trabajo) Utilice las características avanzadas del programador de AKS para implementar un equilibrio avanzado de recursos para las cargas de trabajo que lo requieran. A medida que gestionas clústeres de AKS, a menudo debes aislar a los equipos y sus cargas de trabajo. Las características avanzadas que proporciona el programador de Kubernetes permiten controlar qué pods se pueden programar en determinados nodos. También permiten controlar cómo se pueden distribuir adecuadamente las aplicaciones multipod en todo el clúster.
(Carga de trabajo) Use KEDA para crear un conjunto de reglas de escalado automático significativo basado en señales específicas de la carga de trabajo. No todas las decisiones de escalado se pueden derivar de métricas de CPU o memoria. Las consideraciones de escala suelen provenir de puntos de datos más complejos o incluso externos. KEDA permite que las aplicaciones se escalen en función de eventos, como el número de mensajes en una cola o la longitud de un retraso en un tema.

Directivas de Azure

Azure proporciona un amplio conjunto de directivas integradas relacionadas con AKS que se aplican al recurso de Azure, como las directivas típicas de Azure y el complemento de Azure Policy para Kubernetes, y dentro del clúster. Muchas de las directivas de recursos de Azure están disponibles en variantes de Auditar/Denegar e Implementar si no existe. Además de las definiciones integradas de Azure Policy, puede crear directivas personalizadas para el recurso de AKS y para el complemento de Azure Policy para Kubernetes.

Algunas de las recomendaciones de este artículo se pueden auditar mediante Azure Policy. Por ejemplo, puede comprobar las siguientes directivas de clúster:

  • Los clústeres tienen configurados sondeos de estado de preparación o disponibilidad para la especificación del pod.
  • Microsoft Defender para políticas basadas en la nube.
  • Directivas de configuración y modo de autenticación, tales como Microsoft Entra ID, RBAC y deshabilitar la autenticación local.
  • Directivas de acceso de red del servidor de API, incluido el clúster privado.
  • Directivas de configuración de GitOps.
  • Directivas de configuración de diagnósticos.
  • Restricciones de versión de AKS.
  • Impedir la invocación de comandos.

También puede comprobar las siguientes directivas de clúster y carga de trabajo:

  • Iniciativas de seguridad de pods de clúster de Kubernetes para cargas de trabajo basadas en Linux.
  • Incluya directivas de funcionalidad de pod y contenedor, como AppArmor, sysctl, límites de seguridad, SELinux, seccomp, contenedores con privilegios y credenciales de API de clúster de montaje automático.
  • Directivas de montaje, controladores de volumen y sistema de archivos.
  • Directivas de red de pods y contenedores, como la red host, el puerto, las direcciones IP externas permitidas, los HTTP y los equilibradores de carga internos.
  • Restricciones de implementación del espacio de nombres.
  • Límites de recursos de CPU y memoria.

Para una gobernanza completa, revise las definiciones integradas de Azure Policy para Kubernetes y otras directivas que podrían afectar a la seguridad de la capa de cómputo.

Recomendaciones de Azure Advisor

Azure Advisor es un consultor en la nube personalizado que le ayuda a seguir los procedimientos recomendados para optimizar las implementaciones de Azure. Estas son algunas recomendaciones que pueden ayudarle a mejorar la confiabilidad, la seguridad, la rentabilidad, el rendimiento y la excelencia operativa de AKS.

Tenga en cuenta los siguientes artículos como recursos que muestran las recomendaciones resaltadas en este artículo.

Cree conocimientos sobre la implementación mediante la siguiente documentación del producto: