Análisis de costos de Azure Kubernetes Service

Un clúster de Azure Kubernetes Service (AKS) depende de recursos de Azure, como máquinas virtuales, discos virtuales, equilibradores de carga y direcciones IP públicas. Varias aplicaciones pueden usar estos recursos, que pueden ser mantenidos por diferentes equipos de su organización. Los patrones de consumo de recursos para esas aplicaciones suelen ser variables, por lo que su contribución al costo total de los recursos del clúster también puede variar. Algunas aplicaciones también pueden tener superficies en varios clústeres, lo que puede suponer un desafío al realizar la atribución de costos y la administración de costos.

Anteriormente, en Microsoft Cost Management (MCM) el consumo de recursos de clúster se agregaba en el grupo de recursos del clúster. Se podía usar MCM para analizar los costos, pero existían varios desafíos:

  • No había ninguna funcionalidad nativa de Azure para mostrar el uso de recursos de clúster en un nivel más granular que el de un clúster. No se realizaba el desglose en categorías discretas, como las de proceso (incluidos los núcleos de CPU y la memoria), almacenamiento y redes.

  • No existía ninguna funcionalidad nativa de Azure para distinguir entre tipos de costos, por ejemplo entre costos de aplicaciones individuales y costos compartidos. MCM informaba del costo de los recursos, pero no se sabía qué parte del costo de los recursos se usaba para ejecutar aplicaciones individuales, qué parte se reservaba para los procesos del sistema requeridos por el clúster o cuáles eran los costos de inactividad asociados al clúster.

  • No había ningún mecanismo nativo de Azure para analizar los costos en varios clústeres en el mismo ámbito de suscripción.

Como resultado, es posible que haya usado soluciones de terceros para recopilar y analizar el consumo de recursos y los costes por niveles de granularidad específicos de Kubernetes, como por espacio de nombres o pod. Pero las soluciones de terceros son costosas de implementar, ajustar y mantener para cada clúster de AKS. En algunos casos, incluso hay que pagar por las características avanzadas, lo que aumenta el coste total de propiedad del clúster.

Para hacer frente a este reto, AKS se ha integrado con MCM para ofrecer un desglose detallado de los costos en función de las construcciones de Kubernetes, como el clúster y el espacio de nombres, además de las categorías de Azure Compute, Network y Storage.

El complemento de análisis de costos de AKS se basa en OpenCost, un proyecto de espacio aislado de Cloud Native Computing Foundation de código abierto para la recopilación de datos de uso. El análisis de costos se reconcilia con los datos de la factura de Azure. Los datos posteriores al procesamiento se ven directamente en la experiencia del portal de análisis de costos de MCM.

Requisitos previos y limitaciones

  • El clúster debe ser de nivel Standard o Premium, no de nivel Free.

  • Para ver la información de análisis de costos, debe tener uno de los siguientes roles en la suscripción en la que se hospeda el clúster: Propietario, Colaborador, Lector, Colaborador de administración de costos o Lector de administración de costos.

  • Una vez habilitado el análisis de costos, no se puede degradar el clúster al nivel de Free sin deshabilitar primero el análisis de costos.

  • El clúster se debe implementar con un identificador de carga de trabajo de Microsoft Entra configurado.

  • Si usa la CLI de Azure, debe tener instalada la versión 2.44.0 o posterior, y la versión de la extensión de la CLI de Azure aks-preview 0.5.155 o posterior instalada.

  • Las vistas de costos de Kubernetes solo están disponibles para los siguientes tipos de ofertas de Microsoft Azure. Para más información sobre los tipos de oferta, consulte Ofertas admitidas de Microsoft Azure.

    • Contrato Enterprise
    • Contrato de cliente de Microsoft
  • En este momento no se admiten nodos virtuales.

Instalación o actualización de la extensión de la CLI de Azure aks-preview

Instale la extensión aks-preview Azure CLI mediante el comando az extension add.

az extension add --name aks-preview

Si necesita actualizar la versión de la extensión, puede hacerlo mediante el comando az extension update.

az extension update --name aks-preview

Habilitación del análisis de costos en el clúster de AKS

Puede habilitar el análisis de costos con la marca --enable-cost-analysis durante una de las siguientes operaciones:

  • Cree un clúster de AKS de nivel Standard o Premium

  • Actualización de un clúster de AKS que ya esté en el nivel Standard o Premium.

  • Actualización de un clúster Free a Standard o Premium.

  • Actualización de un clúster Standard a Premium.

  • Cambiar un clúster Premium a una versión anterior al nivel Standard.

En el ejemplo siguiente se crea un nuevo clúster de AKS en el nivel Standard con el análisis de costos habilitado:

az aks create --resource-group <resource-group> --name <cluster-name> --location <location> --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

En el ejemplo siguiente se actualiza un clúster de AKS existente en el nivel Standard para habilitar el análisis de costos:

az aks update --resource-group <resource-group> --name <cluster-name> --enable-cost-analysis

Advertencia

El uso de memoria del análisis de costos de AKS depende del número de contenedores implementados. El consumo de memoria puede aproximarse aproximadamente a 200 MB + 0,5 MB por contenedor. El límite de memoria actual se establece en 4 GB, que admitirá aproximadamente 7000 contenedores por clúster, pero podría ser más o menos en función de varios factores. Estas estimaciones están sujetas a cambios.

Deshabilitación del análisis de costos

Puede deshabilitar el análisis de costos en cualquier momento mediante az aks update.

az aks update --name myAKSCluster --resource-group myResourceGroup --disable-cost-analysis

Nota:

Si tiene previsto cambiar a una versión anterior el clúster desde los niveles Standard o Premium al nivel Free mientras el análisis de costos está habilitado, primero debe deshabilitar explícitamente el análisis de costos, como se muestra aquí.

Visualización de los datos de costos

Puede ver los datos de asignación de costos en Azure Portal. Para más información sobre cómo navegar por la vista de interfaz de usuario del análisis de costos, vea la documentación de Cost Management.

Definiciones de costos

En las vistas de recursos y espacios de nombres de Kubernetes, verá los siguientes cargos:

  • Cargos de inactividad: representa el costo de la capacidad de recursos disponibles que no fue usada por ninguna carga de trabajo.
  • Cargos de servicio: representa los cargos asociados al servicio como Uptime SLA, Microsoft Defender para contenedores, etc.
  • Cargos del sistema: representa el costo de la capacidad reservada por AKS en cada nodo para ejecutar los procesos del sistema requeridos por el clúster, incluido el kubelet y el tiempo de ejecución del contenedor. Más información.
  • Cargos sin asignar: representa el costo de los recursos que no se pudieron asignar a los espacios de nombres.

Nota:

Los datos pueden tardar hasta un día en finalizarse. Después de 24 horas, las fluctuaciones en los costos del día anterior se habrán estabilizado.

Solución de problemas

Consulte la siguiente guía para solucionar problemas del complemento de análisis de costos de AKS.

Saber más

La visibilidad es un elemento de la administración de costos. Consulte Optimizar costos en Azure Kubernetes Service (AKS) para ver otros procedimientos recomendados sobre cómo obtener control sobre el costo de Kubernetes.