Análisis de costos de Azure Kubernetes Service (AKS)

En este artículo, aprenderá a habilitar el análisis de costos en Azure Kubernetes Service (AKS) para ver los datos detallados de costos de los recursos del clúster.

Introducción al análisis de costos de AKS

Los clústeres de AKS se basan en recursos de Azure, como máquinas virtuales, discos virtuales, equilibradores de carga y direcciones IP públicas. Varias aplicaciones pueden usar estos recursos. Los patrones de consumo de recursos suelen diferir para cada aplicación, por lo que su contribución al costo total de los recursos del clúster también puede variar. Algunas aplicaciones pueden tener presencia en varios clústeres, lo que puede suponer un desafío para la atribución y gestión de costos.

Al habilitar el análisis de costos en el clúster de AKS, puede ver la asignación de costes detallada en el ámbito de las construcciones de Kubernetes, como clústeres y espacios de nombres, y recursos de Azure Compute, Network y Storage. El complemento se basa en OpenCost, un proyecto de incubación de Cloud Native Computing Foundation de código abierto para la recopilación de datos de uso. Los datos de uso se reconcilian con los datos de factura de Azure para proporcionar una vista completa de los costos del clúster de AKS directamente en el portal de Azure.

Para más información sobre Microsoft Cost Management, consulte Empezar a analizar los costos en Azure.

Después de habilitar el complemento de análisis de costos y permitir hasta 24 horas de recopilación de datos, puede usar la información de Descripción del uso y los costos de AKS para ayudarle a comprender los datos.

Requisitos previos

  • El clúster debe usar el nivel Standard o Premium, no el nivel Free.
  • Para ver la información de análisis de costos, debe tener uno de los siguientes roles en la suscripción que hospeda el clúster: Owner, Contributor, Reader, Cost Management Contributor o Cost Management Reader.
  • Identidad administrada configurada en el clúster.
  • El controlador Azure Disk Container Storage Interface (CSI) habilitado en el clúster.
  • Si usa la CLI de Azure, necesita la versión 2.61.0 o posterior instalada.
  • Una vez habilitado el análisis de costes, no puedes rebajar el clúster al nivel Free sin deshabilitar primero el análisis de costes.
  • 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.

Limitaciones

  • Las vistas de costos de Kubernetes solo están disponibles para los tipos de ofertas de Contrato Enterprise y Contrato de cliente de Microsoft de Microsoft Azure. Para más información, consulte Ofertas admitidas de Microsoft Azure.
  • Actualmente, no se admiten nodos virtuales.
  • El complemento no está disponible en las usnateastregiones , usnatwest, usseceasto ussecwest . Para obtener más información, consulte Problemas y solución de problemas del complemento de análisis de costos de AKS.
  • El complemento de análisis de costos de AKS admite aproximadamente 7000 contenedores por clúster, según el límite de memoria de 4 GB actual y sujeto a cambios.

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:

  • Creación de un clúster de AKS de nivel Standard o Premium.
  • Actualización de un clúster de AKS de nivel Standard o Premium existente.
  • Actualizar un clúster de Free a Standard o Premium.
  • Actualización de un clúster de Standard a Premium.
  • Degradación de un clúster de Premium a Standard nivel.

Habilitación del análisis de costos en un nuevo clúster

Habilite el análisis de costos en un nuevo clúster mediante el comando az aks create con la marca --enable-cost-analysis. En el ejemplo siguiente se crea un nuevo clúster de AKS en el nivel Standard con el análisis de costos habilitado:

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="AKSCostRG$RANDOM_SUFFIX"
export CLUSTER_NAME="AKSCostCluster$RANDOM_SUFFIX"
export LOCATION="WestUS2"
az group create --resource-group $RESOURCE_GROUP --location $LOCATION
az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --location $LOCATION --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

Resultados:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "location": "WestUS2",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null,
    "type": "Microsoft.ContainerService/managedClusters"
}

Habilitar el análisis de costos en un clúster existente

Habilite el análisis de costos en un clúster existente mediante el comando az aks update con la marca --enable-cost-analysis. En el ejemplo siguiente se actualiza un clúster de AKS existente en el Standard nivel para habilitar el análisis de costos. Reemplace $RESOURCE_GROUP y $CLUSTER_NAME por los nombres de su grupo de recursos y de su clúster, o defínalos como variables de entorno.

az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-cost-analysis

Resultados:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Nota:

Un agente se implementa en el clúster al habilitar el complemento. El agente consume una pequeña cantidad de recursos de CPU y memoria.

Advertencia

El uso de memoria del complemento de análisis de costos de AKS depende del número de contenedores implementados. Puede calcular aproximadamente el consumo de memoria mediante 200 MB + 0,5 MB por contenedor. El límite de memoria actual se establece en 4 GB, que admite aproximadamente 7000 contenedores por clúster. Estas estimaciones están sujetas a cambios.

Nota:

Al habilitar el análisis de costos también se crea una identidad administrada denominada cost-analysis-identity con acceso de lectura al grupo de recursos del nodo del clúster y se le asigna a los grupos de nodos del clúster. Se utiliza para recopilar los identificadores ARM de los recursos de clúster para informes.

Dado que el grupo de nodos ya tiene una identidad administrada, los comandos del nodo que usan identidades administradas deben especificar la identidad que se va a usar en lugar de confiar en la identidad administrada del grupo de nodos.

Por ejemplo: az login --identity --resource-id <resource ID of identity>.

Deshabilitar el análisis de costos en el clúster de AKS

Deshabilite el análisis de costos mediante el comando az aks update con la marca --disable-cost-analysis.

az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-cost-analysis

Resultados:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Nota:

Si desea degradar el clúster desde el nivel de Standard o Premium al nivel de Free mientras está habilitado el análisis de costos, primero debe deshabilitar el análisis de costos.

Visualización de los datos de costos

Puede ver los datos de asignación de costos en Azure Portal.

En el portal de Azure, vaya a la suscripción Azure que hospeda el clúster de AKS. En Cost Management, seleccione Análisis de costos. En la lista Ver , seleccione el elemento desplegable de lista y, a continuación, seleccione Clústeres de Kubernetes.

Para obtener más información, consulte Ver los costos de AKS en Microsoft Cost Management.

Definiciones de costos

En las vistas de recursos y espacios de nombres de Kubernetes, es posible que vea cualquiera de los siguientes cargos:

Tipo de cargo Description
Cargos de inactividad El costo de la capacidad de recursos disponible que no utiliza ninguna carga de trabajo.
Cargos por servicios Los costes asociados al servicio, como Uptime SLA, Microsoft Defender para contenedores, etc.
Cargos del sistema El costo de la capacidad reservada por AKS en cada nodo para ejecutar los procesos del sistema requeridos por el clúster, incluido kubelet y el entorno de ejecución del contenedor. Más información.
Cargos sin asignar Costo de los recursos que no se pudieron asignar a los espacios de nombres.

Nota:

Normalmente, el sistema finaliza y hace que los datos de costo y uso estén disponibles en un plazo de 8 a 24 horas.

Solución de problemas

Si experimenta problemas, como que el pod cost-agent se sitúe OOMKilled o se bloquee en un estado Pending, consulte Solucionar problemas del complemento de análisis de costos AKS.

Pasos siguientes

Para más información sobre el costo en AKS, consulte Descripción del uso y los costos de Azure Kubernetes Service (AKS).