Página de costos de Kubernetes
Understand cluster, namespace, workload and pod costs, idle capacity, rightsizing, carbon and health.
Página de costos de Kubernetes
Vea cuánto cuesta cada clúster, espacio de nombres, carga de trabajo y pod, cuánto está inactivo y dónde las solicitudes son mayores que el uso real.
- Los costos de Kubernetes son una asignación de su factura de la nube: muestran quién dentro del clúster usa qué y no se agregan a su gasto total en la nube.
- Las cifras son una tasa de ejecución mensual proyectada a partir del último impulso (aproximadamente 15 minutos de medición), no un mes de gasto medido. Se mueven a medida que cambian sus cargas de trabajo.
- El costo de inactividad es el precio de la capacidad del nodo que ningún pod ha solicitado. La eficiencia compara lo que usan los pods con lo que pidieron.
- Eleven tabs under "Allocate By" change how the same data is grouped: Namespace, Workload, Pod / Container, Cluster, Team / Label, Cluster Assets, Cost By Type, Rightsizing, Network Costs, Carbon and Health.
- Úselo para encontrar solicitudes de gran tamaño, capacidad de nodo vacía y los espacios de nombres que deben cargarse a los equipos.
- Al menos un clúster conectado y enviando datos: Conectar un clúster de Kubernetes.
- Un plan que incluye Costos de Kubernetes (Crecimiento o superior).
- Para la pestaña Estado, el RBAC de solo lectura opcional del manifiesto de instalación. Para la pestaña Carbon, OpenCost se instaló con la opción carbon.
Qué mide OpenCost
OpenCost observa el clúster y valora lo que utiliza cada carga de trabajo. La página puede mostrar estos tipos de costos; cada uno es un campo que el propio OpenCost informa y CostGlass no estima ninguno de ellos:
| Tipo de coste | Qué es |
|---|---|
| CPU | The cost of CPU the workload reserved (requested) or used, whichever is greater, at your cloud's price. |
| RAM | Lo mismo para la memoria. |
| Almacenamiento | Volúmenes persistentes (discos) que afirma la carga de trabajo. |
| Red | Transferencia de datos. La salida de Internet entre zonas, entre regiones y entre regiones se divide en la pestaña Costos de red. |
| Equilibrador de carga | Balanceadores de carga creados por los servicios de Kubernetes. |
| GPU | Tiempo de GPU. La muestra de GPU está oculta a menos que sus datos tengan un costo de GPU. |
| Compartido | Costo de los servicios compartidos que OpenCost distribuye entre cargas de trabajo. El exportador trata los espacios de nombres kube-system, istio-system y de monitoreo como compartidos. |
| Externo | Costos fuera del clúster que OpenCost atribuye a las cargas de trabajo (esto está vacío a menos que su configuración de OpenCost lo informe). |
| Inactivo | Capacidad de nodo que ninguna carga de trabajo ha reclamado. |
OpenCost también informa, para cada carga de trabajo, cuánta CPU y memoria tiene solicitado y cuánto cuesta en realidad usado de término medio. Ese par es lo que hace posible el ajuste de tamaño.
- Espacio de nombres
- Un grupo con nombre dentro de un clúster, a menudo uno por equipo, producto o entorno.
- Carga de trabajo
- Una aplicación en ejecución administrada por Kubernetes: un Deployment, StatefulSet, DaemonSet o Job.
- vaina
- La unidad en ejecución más pequeña: uno o más contenedores que se ejecutan juntos en un nodo. Una carga de trabajo ejecuta uno o más pods.
- Nodo
- Una máquina (virtual o física) en la que se ejecutan los pods. Esto es lo que te factura tu nube.
- Solicitud
- La cantidad de CPU o memoria que un pod le pide a Kubernetes que le reserve. La capacidad reservada se paga en función de si se utiliza o no.
- Inactivo / flojo
- Capacidad en los nodos que ningún pod ha solicitado.
Por qué los números son una tasa de ejecución mensual y qué significa eso
OpenCost informa cada costo durante los minutos que midió, normalmente en un paso de 15 minutos. El exportador envía una nueva medición cada 15 minutos y cada pulsación reemplaza a la anterior. Si CostGlass mostrara esa cifra bruta, sería alrededor de 2.900 veces demasiado pequeña, por lo que CostGlass lo proyecta: fusiona la carga de trabajo entre las ventanas medidas y escala el costo a un mes (730 horas).
| Hecho | Qué significa para ti |
|---|---|
| Las cifras son una proyección de la última medición | Si algo está inusualmente ocupado o tranquilo en los últimos 15 minutos, la proyección del mes completo avanza con ello. Mire las tendencias durante varios días antes de decidirse. |
| No se proyecta un impulso inferior a 5 minutos de datos | Hay muy pocos datos para proyectar, por lo que la figura se almacena tal como se envió. |
| Solo se conserva el último impulso para las asignaciones en vivo | Las tablas de la página muestran la última instantánea. Cada envío reemplaza al anterior, por lo que no hay un historial por módulo dentro de CostGlass. |
| El historial diario se mantiene a nivel de espacio de nombres | Cada envío también escribe una fila de costo diario por espacio de nombres, utilizando el día de tasa de ejecución, más una para la capacidad inactiva cuando se conocen los precios de los nodos. Estos alimentan el gráfico de tendencias. |
| Los botones de rango de tiempo cambian la escala de la velocidad de ejecución actual | Las cifras de resumen y de tabla utilizan la última tasa de ejecución mensual multiplicada por la duración del rango dividida por 30 días (por ejemplo, 7D es 7/30 de un mes, 90D son tres meses). No son sumas de gastos reales pasados. |
Precios de nodo, coste inactivo y conciliación con su factura
OpenCost's pod figures only cover what pods requested. Para mostrar cuánto cuestan las máquinas (y, por tanto, qué está inactivo), CostGlass fija el precio de cada nodo trabajador cuando puede.
| Nube | Cómo se fija el precio de los nodos |
|---|---|
| AWS (EKS) | From CostGlass's approximate list-price table for the instance type. |
| Azur (AKS) | From CostGlass's approximate pay-as-you-go price table for the VM size. |
| Linodo (LKE) | From Linode's own published plan prices. |
| Google Cloud, Oracle, DigitalOcean y otros | No hay una fuente de precio de nodo en CostGlass, por lo que no se fija el precio de los nodos. |
Todo o nada. El precio del clúster se fija por sus nodos solo cuando se puede fijar el precio de cada nodo. Si ni siquiera un nodo puede hacerlo, el clúster sigue teniendo "precio de pod": el total es justo lo que OpenCost asignó a los pods, y la cifra inactiva no se reconstruye a partir de los precios de los nodos. CostGlass no adivina un precio de nudo.
When all nodes are priced: cluster cost is the sum of node prices; each node's idle cost is its price minus the pods scheduled on it (never below zero); and the cluster efficiency is cost not idle divided by cost.
Reconciliación: la pastilla coloreada debajo del texto de introducción
Cuando sus datos de facturación de la nube están conectados, CostGlass compara las cifras de los nodos de Kubernetes con lo que la nube realmente cobró por esos nodos. Cada grupo recibe una pastilla:
| Pastilla | Significado |
|---|---|
| Conciliado con su factura | Every node was found in your billing data. Pod shares are scaled so they add up to the billed node cost. |
| Parcialmente reconciliado | Some nodes were matched. Hover the pill to see how many matched and why the rest did not. |
| Estimado al precio de lista | No matching bill data yet, or the cloud does not support matching. The numbers are list-price estimates and the pill says why. |
La coincidencia de AWS utiliza ID de instancia EC2 en sus datos de facturación (CUR con ID de recursos). También existe una coincidencia de Azure, Google Cloud, Oracle y Alibaba, pero se escribió a partir de documentación y datos de muestra y no se ha comparado con una exportación real desde esas nubes, por lo que se espera un "precio estimado de lista" hasta que se demuestre. Linode y DigitalOcean siempre se mantienen al precio de lista. Los datos de facturación normalmente tienen un retraso de aproximadamente un día. La conciliación se ejecuta automáticamente después de cada envío; Los propietarios y administradores también pueden activarlo a través de la API.
Diseño de página y controles
Costos de Kubernetes: tarjetas KPI, pestañas y controles Asignar por, gráfico de trayectoria de gasto y tabla de desglose de costos.From top to bottom: the header (with Ask CostGlass AI, the connection status and Refresh Telemetry), a one-line reminder that Kubernetes costs are an allocation, a reconciliation pill per cluster, four KPI cards, the controls card, the spend trajectory chart, rightsizing and slack cards, and the main table for the selected tab.
Referencia de control
| Control | que hace | Opciones/predeterminado |
|---|---|---|
| Asignar por | Chooses how the chart and table are grouped and which view is shown. | Namespace (default), Workload, Pod / Container, Cluster, Team / Label, Cluster Assets, Cost By Type, Rightsizing, Network Costs, Carbon, Health |
| Clúster | Limits everything to one cluster. | All Clusters (default) or any connected cluster |
| 7D / 30D / MTD / 90D / 6M / Personalizado | Sets the time range used to scale the figures and to draw the chart. | MTD (month to date) by default. Custom shows From and To date boxes and an Apply Range button, with Reset to go back. |
| USD/EUR/GBP | Currency used to show money. | Your organisation's setting |
| Copiar enlace | Copies a link that reproduces this exact view (tab, range, cluster, label key, filters) for anyone in your organisation. | - |
| CSV | Downloads the current table as a CSV file. | - |
| Actualizar telemetría | Re-reads fresh data from CostGlass, ignoring the page's saved copy. | - |
| Tecla Agrupar por etiqueta | Only on the Team / Label tab: which Kubernetes label to group cost by. | team (default), app, env, service, component |
| Filtrar... cuadro | Free-text filter on the table rows. | Placeholder is "Filter workloads..." or "Filter namespaces..." and so on |
| Todo tipo | Solo en la pestaña Carga de trabajo: muestra solo Implementaciones, StatefulSets, DaemonSets, Jobs, etc. | Todo tipo (predeterminado) |
| Filas por página | Tamaño de página de la tabla. | 10, 15, 25, 50, 100 |
| Conmutador de tipo de gráfico | Cambia el gráfico de trayectoria. | Barras apiladas (predeterminado), Líneas, Compartir (mapa de árbol) |
| Conectar OpenCost Agent / Config | Abre la ventana de conexión con los comandos de instalación. Una vez conectado un clúster, se muestra como Config. | - |
Copia guardada y actualización
Para cargar rápidamente, la página mantiene el último resultado de cada vista en su navegador durante 15 minutos. La página también solicita resultados a la caché de todo el navegador durante hasta una hora. Actualizar telemetría omite ambos y recupera datos nuevos. La lista de clústeres conectados siempre se lee actualizada. De todos modos, los nuevos datos del clúster llegan como máximo cada 15 minutos, por lo que actualizar con más frecuencia mostrará los mismos números.
Las cuatro tarjetas KPI
| Card | Cómo se resuelve | como leerlo |
|---|---|---|
| Gasto total en Kubernetes | Sum of each cluster's monthly run-rate, scaled to the selected range. La siguiente línea muestra la cantidad de clústeres y nodos (etiquetados como Nodos EC2, Nodos AKS, Nodos GKE, etc. por proveedor). | El coste de su contenedor está bajo medición. Es una asignación y no se agrega a su gasto total en la nube. |
| Gasto asignado (solicitudes) | Total spend minus idle spend. The line below shows the percentage "guaranteed to pods". | Capacity that pods have reserved. High is good: capacity you pay for is claimed. |
| Capacidad inactiva y floja | Idle cost summed from the namespace rows, with a percentage of the total. | Capacity nobody has claimed. This is the first place to look for savings. |
| Puntuación de eficiencia del clúster | The average of each cluster's efficiency, shown in green from 80%, amber from 60%, red below. The line below shows "+£x/mo savings found", which is 65% of idle cost. | Cuanto más alto es mejor. La cifra de ahorro es una cifra de planificación: siempre debe quedar algo de margen. No aparece para los conglomerados que no tienen datos de eficiencia (una puntuación faltante se trata como 75). |
El gráfico de trayectoria del gasto
The chart title follows your tab, for example Namespace Spend Trajectory. Muestra barras diarias (o mensuales para rangos largos) divididas por la agrupación que seleccionó, extraídas del historial diario que CostGlass ha registrado. Haga clic en un elemento de la leyenda para centrarse en él y en Borrar selección para regresar. Cambie a Líneas para comparar tendencias o Compartir (mapa de árbol) para ver las proporciones de un vistazo.
Solicitud frente a uso y holgura
The right-hand card shows two bars, Compute CPU Allocation and Memory RAM Allocation, each split into three parts:
| Color | Parte | Significado |
|---|---|---|
| Verde | Utilizado | Los módulos de capacidad realmente se están utilizando. |
| Azul | Espacio libre | Pods de capacidad reservados pero no se están utilizando. La brecha entre solicitud y uso. |
| Ámbar | Flojo | Capacidad en los nodos que ningún pod tiene reservado. Esta es la acción inactiva. |
Debajo de las barras,.../mes en Cluster Slack muestra el costo inactivo, con consejos que coinciden con su nube (por ejemplo, consolidación de Karpenter o instancias Spot en AWS, Cluster Autoscaler en AKS, GKE y LKE).
The left card, Workload Rightsizing Recommendations, lists workloads whose efficiency is under 60% and whose idle cost is at least $2 a month. Cada uno muestra la carga de trabajo, el espacio de nombres, el clúster, el ahorro mensual estimado (igual a su costo de inactividad, un límite superior), el motivo y la solicitud de CPU actual. Su etiqueta de Aplicación Rápida es solo una etiqueta: CostGlass nunca cambia su clúster.
Las pestañas Asignar por
Espacio de nombres, carga de trabajo, pod/contenedor, clúster, equipo/etiqueta
These five tabs show the main table, Cost Breakdown by ..., with these columns:
| Columna | Significado |
|---|---|
| # | Rank by cost. |
| Nombre | El valor del espacio de nombres, carga de trabajo, pod, clúster o etiqueta. |
| Contexto/Clúster | Dónde vive: su clúster y, para cargas de trabajo y pods, su espacio de nombres. |
| Tipo / Réplicas | Solo pestaña Carga de trabajo: Implementación, StatefulSet, DaemonSet, Trabajo y cuántas réplicas. |
| Destino del nodo | Solo pestaña Pod: el nodo en el que se ejecuta el pod. |
| Proporción del gasto | Su porcentaje del total para esta vista, con una barra. |
| Eficiencia | Usado versus solicitado. Se muestra como insignia: Óptimo a partir del 80 %, Regular a partir del 60 %, Alerta de residuos por debajo del 60 %. |
| Coste | Su tasa de ejecución mensual (para el rango seleccionado). |
Equipo / Etiqueta grupos por una etiqueta de Kubernetes que usted elija. Las claves de etiqueta que se ofrecen son equipo, aplicación, entorno, servicio y componente. El costo bajo el valor de una etiqueta es tan bueno como su etiqueta: todo lo que no tenga la etiqueta se agrupa por separado. The exporter sends the app, env y equipo labels, so those three are the ones most likely to have data.
Activos del clúster
Shows Infrastructure Assets Breakdown: summary tiles (Total Asset Spend, Compute Nodes, Provider & Region, Cluster Efficiency) and a table withComponent Kind, Name / Identifier, Cluster, Specification / Details, State, Cost Basis and Monthly Cost. Esta es la vista donde aparecen los precios de los nodos y el plano de control. La columna Base de costo indica cómo se obtuvo cada precio, por ejemplo, una tabla de precios de lista.
Costo por tipo
Divide el costo en CPU, RAM, almacenamiento, red, balanceador de carga, GPU, compartido, externo e inactivo, agrupados por espacio de nombres, carga de trabajo o clúster (cambie en la parte superior de la tarjeta). Un cero es un cero real, no un valor faltante. Úselo para ver si el costo depende de la computación, el almacenamiento o algo inesperado, como los balanceadores de carga.
Rightsizing (ajuste de recursos)
Request vs Usage (Rightsizing) shows, per workload, CPU Request / Usage and Memory Request / Usage next to Monthly Spend, with a filter box. Usage is OpenCost's average over its measured window, so it appears only once Prometheus has collected enough history. Si una carga de trabajo no muestra nada, aún no ha informado de su uso; la página no inventa una figura. AI Rightsizing Insights solicita a CostGlass AI que revise la tabla.
Costos de red
Splits network cost into Cross-Zone, Cross-Region, Internet Egress and Other. OpenCost informa esto solo cuando la asignación de costos de red está activada en OpenCost dentro de su clúster. Esa es una configuración en su implementación de OpenCost que CostGlass no puede cambiar por usted, por lo que la pestaña puede estar vacía hasta que la habilite. El tráfico entre zonas y de salida suele ser un costo oculto: los servicios que se comunican entre zonas de disponibilidad se pueden acercar entre sí.
Carbono
Las emisiones de carbono muestran kilogramos de CO2e. It comes from OpenCost's own carbon estimates (which use Cloud Carbon Footprint coefficients for your cloud, region and instance type), not a CostGlass estimate. OpenCost informa el carbono por máquina y disco, por lo que CostGlass lo suma para cada grupo. No hay espacio de nombres ni división de pods.
- El exportador mide una ventana de una hora. El CO2e mensual proyectado es esa cifra por hora multiplicada (diario es por hora multiplicado por 24, mensual es multiplicado por 720). Es una proyección, no un total medido.
- A cluster that has never reported carbon shows not reported, never 0. Eso significa que OpenCost no tiene datos de carbono, generalmente porque la opción de carbono no estaba activada.
- El pequeño gráfico de barras Tendencia diaria de CO2e (proyectado) muestra el historial de esas proyecciones.
Salud
Cluster Health utiliza una lectura directa de la API de Kubernetes (es por eso que se necesita el RBAC opcional), porque los datos de costos no tienen nada que ver con el estado del pod. Cada grupo obtiene una puntuación sobre 100 utilizando una fórmula publicada:
| Artículo | Efecto en la puntuación |
|---|---|
| Pods fallidos (incluidos los pods atascados en CrashLoopBackOff o ImagePullBackOff) | Menos 50 veces la proporción de pods que fallan |
| Grupos pendientes | Menos 15 veces la proporción de pods que están pendientes |
| Nodos no listos | Menos 25 veces la proporción de nodos no listos |
| Reinicios recientes | Menos el número de reinicios recientes de contenedores, hasta 10 |
| Reclamaciones de almacenamiento pendientes | Menos 2 por cada uno, hasta 10 |
La puntuación general es el promedio de los conglomerados que informaron. Colores: verde a partir del 90, ámbar a partir del 70, rojo abajo. Cada línea del clúster muestra los pods en buen estado del total, fallidos, pendientes, nodos listos, reinicios recientes y reclamaciones de almacenamiento pendientes. Kubernetes solo mantiene un total acumulado de reinicios, por lo que los reinicios recientes son el aumento desde el impulso anterior (nunca negativo; un pod recreado reinicia su propio contador).
Tomando decisiones desde la página
| lo que ves | Lo que suele significar | que hacer |
|---|---|---|
| Alto porcentaje de inactividad con baja eficiencia | Los nodos son más grandes o más numerosos de lo que necesitan las vainas. | Reduzca el número o el tamaño de los nodos, utilice un escalador automático de clústeres o una herramienta de consolidación y considere la capacidad puntual o interrumpible para cargas de trabajo tolerantes. |
| Una carga de trabajo con gran espacio libre (solicitud muy por encima del uso) | Las solicitudes se formularon generosamente y nunca se ajustaron. | En la pestaña Corrector de tamaño, reduzca las solicitudes de CPU y memoria paso a paso hacia el uso real más un margen de seguridad, y esté atento a aceleraciones o reinicios por falta de memoria. |
| Eficiencia inferior al 60 % en una carga de trabajo que cuesta poco | No vale la pena dedicarle tiempo. | Ordene por costo y aborde primero el mayor costo inactivo. |
| Una carga de trabajo con una eficiencia del 10 % o menos | Posiblemente abandonado o ya no sea necesario. | Consulta con su propietario y retíralo si no es necesario. CostGlass los marca en Ahorros. |
| Muchos nodos medio vacíos | El programador no puede empaquetar pods de manera estricta (reglas de distribución, solicitudes grandes). | Mire el empaquetado en contenedores: solicitudes más pequeñas, menos restricciones de distribución o diferentes tamaños de nodos. |
| Gasto que salta entre días | Sensibilidad de la velocidad de ejecución, un evento de escalamiento o una implementación. | Compare los días en el gráfico antes de concluir; utilice Cost Explorer y la página de anomalías para cambios reales facturados. |
| Costo entre zonas o de salida | Servicios de conversación repartidos por zonas o regiones. | Colocar los servicios relacionados en la misma zona donde la confiabilidad lo permita. |
| Caída del puntaje de salud, muchos reinicios | Los pods fallan, los nodos no están listos o el almacenamiento no es vinculante. | Investigue con kubectl antes de recortar recursos: no redimensione cargas de trabajo no saludables. |
Presupuestos, Ahorros e Informes
- Presupuestos. You can create a budget for Kubernetes (OpenCost), scoped to all clusters or one cluster, and optionally one namespace. OpenCost sobrescribe sus cifras en cada envío, por lo que no hay un total del mes hasta la fecha. Por lo tanto, el presupuesto se juzga según el mes proyectado y la tarjeta dice "seguimiento según la tasa de ejecución proyectada". Ver Presupuestos.
- Ahorros. The savings page can list Kubernetes recommendations built only from OpenCost's own figures: workloads at or below 10% efficiency (saving is the whole workload cost), over-requesting workloads (saving is the reported idle cost, an upper bound), and cluster slack (an estimate that assumes half of the slack can be reclaimed, stated on the card). Los ahorros de Kubernetes se agrupan con la factura de la nube del host, por lo que el mismo dinero no se cuenta dos veces. Ver Ahorros.
- Informes.Informes can group by Kubernetes Namespace (OpenCost) and has an Include Kubernetes OpenCost Allocations switch. Esto lee solo la última instantánea, por lo que no tiene un período anterior para comparar. Los filtros guardados no se aplican a las asignaciones de espacios de nombres de Kubernetes.
Recetas trabajadas
- Open Kubernetes Costs and choose Namespace under Allocate By. Set the range to MTD.
- Consulta la pastilla de la reconciliación. If it says Reconciled to your bill, shares are scaled to what the cloud billed for the nodes. De lo contrario, son estimaciones de precios de lista.
- Tenga en cuenta que Idle no es propiedad de ningún equipo. Decide a policy: spread it in proportion to each team's share, or keep it as a platform cost.
- Haga clic en CSV y envíe la tabla a finanzas. Para obtener un informe repetible, utilice Informes con la agrupación de espacios de nombres de Kubernetes.
Recuerde que las cifras son una tasa de ejecución. Para los números de fin de mes que deben vincularse a una factura, báselos en su factura de la nube.
- Elija la pestaña Carga de trabajo y observe la columna Eficiencia. Haga clic para ver los valores más bajos.
- Abra la pestaña Corrector de tamaño para la solicitud de CPU y memoria frente al uso de esas cargas de trabajo.
- Para cada uno, compare la brecha en términos de costos utilizando la columna Gasto mensual y comience con el mayor.
- Reduzca las solicitudes de uso más un margen, vuelva a implementar y luego verifique nuevamente después de una semana.
- Elija Clúster y lea Capacidad inactiva y ociosa y la puntuación de eficiencia.
- Abra Cluster Assets para ver los nodos y el costo de cada uno.
- Si inactivo es grande y estable, elimine o cambie el tamaño de los nodos. Si sigue un patrón diario, utilice el escalado automático.
Límites honestos
- Las cifras son una tasa de ejecución mensual proyectada a partir de aproximadamente 15 minutos de medición, no del gasto mensual medido.
- Las asignaciones en vivo son una instantánea. No hay un historial por módulo dentro de CostGlass; sólo existe el nivel de espacio de nombres diario y el historial inactivo.
- Los precios de los nodos existen solo para AWS, Azure y Linode. Para Google Cloud, Oracle y otros, los nodos no tienen precio y los clústeres tienen un precio de pod (sin inactividad basada en nodos).
- Los precios de los nodos de AWS y Azure provienen de tablas aproximadas del producto, no de sus tarifas reales (las reservas, los planes de ahorro y los descuentos no se aplican a menos que se concilie el clúster).
- La conciliación con la factura se prueba para AWS; para Azure, Google Cloud, Oracle y Alibaba no se ha confirmado con respecto a las exportaciones reales, y Linode y DigitalOcean no están conciliados.
- El carbono es una proyección desde una ventana de una hora. Se informa únicamente por grupo.
- Los costos de red dependen de una configuración en su implementación de OpenCost. Las cifras de uso necesitan el historial de Prometheus.
- Health necesita el RBAC opcional de solo lectura.
- CostGlass lee e informa. Nunca cambia su clúster.