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
oPremium
, no de nivelFree
.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.
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
Acceso a la API de Azure, incluida la API de Azure Resource Manager (ARM). Para obtener una lista de nombres de dominio completos (FQDN) necesarios, consulte FQDN requerido de ANÁLISIS de costos de AKS.
En este momento no se admiten nodos virtuales.
AKS Automatic no se admite en este momento.
Si usa la CLI de Azure, debe tener instalada la versión
2.61.0
o posterior.
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
oPremium
Actualización de un clúster de AKS que ya esté en el nivel
Standard
oPremium
.Actualización de un clúster
Free
aStandard
oPremium
.Actualización de un clúster
Standard
aPremium
.Cambiar un clúster
Premium
a una versión anterior al nivelStandard
.
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 complemento de análisis de costos de AKS depende del número de contenedores implementados. El consumo de memoria puede aproximarse a unos 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. Estas estimaciones podrían ser superiores o inferiores en función de diversos factores, y están sujetas a cambios.
Si tiene problemas como que el pod del complemento indica OOMKilled
o se bloquea en un estado Pending
, consulte la guía de solución de problemas del complemento de análisis de costos de AKS.
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.
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.
Azure Kubernetes Service