Visualiza un desglose detallado de los costos de los clústeres


En esta página, se muestra cómo ver un desglose de los costos de tu clúster de Google Kubernetes Engine (GKE) en la exportación de BigQuery de Facturación de Cloud mediante la asignación de costos de GKE.

Puedes usar esta información para distribuir los costos de un clúster a sus usuarios.

Posible aumento del volumen de datos

Habilitar la asignación de costos de GKE puede aumentar tus costos de almacenamiento y consulta en BigQuery. El aumento exacto depende de la cantidad de combinaciones de etiquetas y espacios de nombres distintas que usas en los Pods y los clústeres.

La habilitación de la asignación de costos de GKE no cambia el costo total del uso de GKE. La suma de los elementos de una sola línea de costo de tu exportación es la misma, y los informes que compilaste en la exportación de facturación muestran los mismos valores.

Asignación de costos de GKE y medición del uso del clúster

La asignación de costos de GKE es diferente de la medición del uso del clúster de las siguientes maneras:

  • La asignación de costos de GKE proporciona una alternativa a la medición del uso del clúster para obtener información del clúster.
  • La asignación de costos de GKE calcula los costos del clúster en tu cuenta de Facturación de Cloud en lugar de agregar los datos en una plantilla de Looker Studio.
  • La asignación de costos de GKE te permite ver los datos de costos de un clúster en la consola de Google Cloud de Facturación de Cloud y en la exportación detallada de la Facturación de Cloud.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Limitaciones y restricciones

  • Solo puedes ver los datos de la asignación de costos de GKE en la exportación de datos detallado de costo de uso de BigQuery de la Facturación de Cloud.
  • Debes tener la versión 392.0.0 de Google Cloud CLI o una posterior
  • Si habilitas la asignación de costos de GKE, la exportación de la facturación comenzará a incluir elementos de una sola línea adicionales para los recursos de GKE a partir de esa fecha. La exportación de facturación no reabastece los datos.
  • Si inhabilitas la asignación de costos de GKE, tu exportación de facturación deja de incluir elementos de una sola línea adicionales, pero no modifica ni quita los elementos de una sola línea anteriores que se generaron mientras la función estaba habilitada.
  • Los datos de asignación de costos de GKE se basan en solicitudes de recursos, no en recursos consumidos. Para obtener más información sobre las diferencias entre las solicitudes de recursos, los límites de recursos y el consumo de recursos, consulta Prácticas recomendadas de Kubernetes: solicitudes y límites de recursos.
  • La asignación de costos de GKE admite los siguientes tipos de SKU de recursos:
    • SKUs de CPU virtual de instancia de VM de Compute Engine
    • SKU de RAM de instancia de VM de Compute Engine
    • SKU de GPU de instancia de VM de Compute Engine
    • SKU de capacidad de PD de Compute Engine
  • Si un Pod tiene más de 50 etiquetas de Kubernetes, ninguna de esas etiquetas estará disponible en la sección Facturación de Cloud de la consola de Google Cloud o en la exportación detallada de la Facturación de Cloud.
  • Después de habilitar la asignación de costos de GKE, los datos pueden tardar hasta tres días en aparecer en Facturación de Cloud.
  • La asignación de costos de GKE incluye datos de discos persistentes, con las siguientes excepciones:
    • Solo admite los recursos PersistentVolume aprovisionados por el controlador CSI del disco persistente de Compute Engine o con la clase de almacenamiento gce-pd con el modo de acceso ReadWriteOnce o ReadWriteOncePod.
    • Es posible que no se realice un seguimiento de los discos persistentes con un tiempo de actividad inferior a 30 minutos. Siempre se realiza un seguimiento de los discos persistentes con un tiempo de actividad de al menos 30 minutos.
  • La asignación de costos de GKE no admite descuentos por compromiso de uso flexibles (CUD). El uso de recursos que cubren los CUD flexibles aparece en el espacio de nombres goog-k8s-unsupported-sku

Visualiza los costos del clúster de GKE

Cuando habilitas la asignación de costos de GKE, el nombre del clúster y el espacio de nombres de tus cargas de trabajo de GKE aparecen en el campo labels de la exportación de facturación a BigQuery:

Metadatos Descripción Nombre del clúster Espacio de nombres
Clave de etiqueta de recurso (labels.key) Las etiquetas de Kubernetes tienen el siguiente formato: k8s-label/${k8s-label-key}, en el que ${k8s-label-key} es la clave de la etiqueta de Kubernetes del Pod. La etiqueta de facturación k8s-label/${k8s-label-key} tiene el mismo valor que la etiqueta de Pod de Kubernetes correspondiente. goog-k8s-cluster-name k8s-namespace
Valor de la etiqueta de recurso (labels.value) Si una clave de etiqueta de Kubernetes coincide con una clave de etiqueta de VM, el valor de la etiqueta de Kubernetes anula el valor de la etiqueta de VM. Las etiquetas de recursos del clúster y del grupo de nodos se aplican a los recursos con la siguiente prioridad de mayor a menor:
  • Recurso individual, como instancia o almacenamiento
  • Grupo de nodos
  • Clúster
[cluster-name] [namespace]

Para obtener más información, consulta Esquema de los datos de costos de uso detallados.

Además, los siguientes espacios de nombres se usan para realizar un seguimiento de los gastos generales y de los recursos sin asignar:

  • kube:system-overhead: Esto tiene en cuenta los recursos de nodo que no están disponibles para los Pods. El sistema reserva estos recursos para ejecutar el framework de Kubernetes (incluidos, entre otros, kubelet, kube-proxy y containerd). Esta es la diferencia entre la capacidad del nodo y los recursos asignables.
  • kube:unallocated: Las cargas de trabajo no solicitan los recursos ni la sobrecarga del sistema.

Si GKE no puede determinar la asignación de costos de un recurso, la exportación incluye uno de los siguientes valores:

  • goog-k8s-unknown: La Facturación de Cloud no pudo procesar el SKU. Esto puede ocurrir cuando se aprovisiona una nueva instancia de Compute Engine. Puedes esperar algunos valores de goog-k8s-unknown durante el inicio y el apagado del nodo, por ejemplo, cuando GKE escala de forma automática un clúster.
  • goog-k8s-unsupported-sku: La asignación de costos de GKE no admite el SKU. Trata esto como <blank>/NULL. No se garantiza que un SKU siempre esté etiquetado con este valor.
  • <blank>/NULL: La asignación de costos de GKE no realiza un seguimiento de este recurso. Esto puede ocurrir cuando la asignación de costos de GKE no está habilitada o el recurso no pertenece a un clúster administrado por GKE.

Se realiza un seguimiento de los costos de los discos persistentes cuando los pods reclaman el respaldo PersistentVolumeClaims del disco persistente. Los costos de Persistent Disk heredan todos los metadatos, como las etiquetas y los espacios de nombres de Pods, del Pod que se reclama, hasta que se borran sus PersistentVolumeClaims. En el caso de las PersistentVolumeClaims que se borran, pero conservan PersistentVolumes de acuerdo con la política de reclamo, los costos de Persistent Disk se rastrean como no asignados.

Las etiquetas que se aplican directamente a PersistentVolumeClaims no aparecen en la sección Facturación de Cloud de la consola de Google Cloud o en la exportación detallada de Facturación de Cloud.

Habilita la asignación de costos de GKE

Puedes habilitar la asignación de costos de GKE en un clúster nuevo o existente con la CLI de gcloud o la consola de Google Cloud.

Crea un clúster nuevo

gcloud

Crea un clúster con la marca --enable-cost-allocation:

gcloud container clusters create CLUSTER_NAME \
    --enable-cost-allocation \
    --region=COMPUTE_REGION

Reemplaza lo siguiente:

  • CLUSTER_NAME es el nombre del clúster nuevo.
  • COMPUTE_REGION: La región de Compute Engine del clúster. Para los clústeres zonales, usa --zone=COMPUTE_ZONE.

Consola

Para habilitar la asignación de costos de GKE cuando creas un clúster nuevo, haz lo siguiente:

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Configura tu clúster.

  4. En el panel de navegación, en Clúster, haz clic en Funciones.

  5. En la sección Otro, selecciona la casilla de verificación Habilitar asignación de costo.

  6. Configura el clúster según sea necesario y, luego, haz clic en Crear.

Actualiza un clúster

gcloud

Actualiza un clúster con la marca --enable-cost-allocation:

gcloud container clusters update CLUSTER_NAME \
    --enable-cost-allocation

Reemplaza CLUSTER_NAME por el nombre del clúster.

Consola

Para habilitar la asignación de costos de GKE en un clúster existente, haz lo siguiente:

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud. Ir a Google Kubernetes Engine
  2. Haz clic en el nombre del clúster que deseas modificar.
  3. En la página Clústeres, en la sección Funciones, haz clic en junto a Asignación de costos.
  4. En el diálogo Editar asignación de costos, selecciona la casilla de verificación Habilitar asignación de costos.
  5. Haga clic en Guardar cambios.

Verifica que la asignación de costos de GKE esté habilitada

gcloud

Describe el clúster:

gcloud container clusters describe CLUSTER_NAME

El resultado es similar a este:

...
costManagementConfig:
  enabled: true
...

En este resultado, costManagementConfig indica que la asignación de costos de GKE está habilitada.

Consola

Para verificar si la asignación de costos de GKE está habilitada en un clúster existente, haz lo siguiente:

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud. Ir a Google Kubernetes Engine
  2. Haz clic en el nombre del clúster que deseas modificar.
  3. En la página Clústeres, en la sección Funciones, junto a Asignación de costos, se mostrará si la asignación de costos de GKE está habilitada.

Filtra datos de costos de GKE

Las siguientes consultas de ejemplo muestran cómo filtrar y agrupar los costos de GKE para los tipos de recursos admitidos por nombre de clúster, espacio de nombres y etiqueta.

Reemplaza BILLING_DATASET_TABLE por el nombre del conjunto de datos que creaste en BigQuery.

El nombre de la tabla es similar a gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>.

Realiza una limpieza

Para evitar que se generen costos en tu cuenta de Google Cloud por los recursos que se usan en este instructivo, inhabilita la asignación de costos de GKE en el clúster:

gcloud container clusters update CLUSTER_NAME \
    --no-enable-cost-allocation

También puedes borrar el clúster que creaste.

¿Qué sigue?