Gobernanza de costos con Kubecost
La gobernanza de los costos es el proceso continuo de implementación de directivas para controlar los costos. En el contexto de Kubernetes, las organizaciones disponen de varias opciones para controlar y optimizar los costos. Entre ellas se incluyen las herramientas nativas de Kubernetes que permiten administrar y controlar el uso y el consumo de recursos, así como supervisar y optimizar de modo proactivo la infraestructura subyacente.
En esta sección se muestra cómo usar Kubecost para controlar los costos de los clústeres de Azure Kubernetes Service (AKS). Puede asignar el ámbito de la asignación de costos a una implementación, un servicio, una etiqueta, un pod o un espacio de nombres, lo que proporciona flexibilidad a la hora de establecer los gastos o mostrar los usuarios del clúster.
Instalación de Kubecost
Existen varias opciones de instalación de Kubecost. Para más información, consulte Instalación de Kubecost.
El método de instalación recomendado es el gráfico de Helm 3. Para instalar una configuración básica de Kubecost mediante Helm 3, use los siguientes comandos:
helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
helm upgrade --install kubecost kubecost/cost-analyzer --namespace kubecost --create-namespace
Tras unos minutos, asegúrese de que Kubecost está en funcionamiento:
kubectl get pods -n kubecost
# Connect to the Kubecost dashboard UI
kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090
Ahora puede abrir un explorador y hacer que apunte a http://127.0.0.1:9090
para abrir la interfaz de usuario de Kubecost. En esta interfaz de usuario, seleccione el clúster para ver la información de asignación de costos.
Configuración de Kubecost para la integración en la nube de Azure
Para completar la instalación de Kubecost, debe configurar la integración en la nube de Azure y la configuración de la tarjeta de tarifas de Azure.
Con la exportación de costes de Microsoft, puede crear una tarea periódica que exporte automáticamente los datos de Cost Management en una cuenta de almacenamiento de Azure con una periodicidad diaria. Kubecost está configurado para acceder a los datos de esta cuenta de almacenamiento, lo que le permite mostrar el costo total de los recursos de Azure en el panel, no solo los datos procedentes del clúster de AKS. Para asegurarse de que Kubecost genere paneles precisos, debe etiquetar los recursos de Azure como se describe en la documentación de Kubecost sobre etiquetado de los recursos de Azure. Algunos recursos de Azure los crea el clúster de AKS, este es el caso cuando se crea un servicio de tipo LoadBalancer
o PersistentVolume
. Para realizar un seguimiento del costo de estos recursos correctamente, puede usar anotaciones en los recursos de Kubernetes para agregar las etiquetas de Azure adecuadas, como en los ejemplos del artículo "Uso de etiquetas de Azure en Azure Kubernetes Service".
La configuración de la tarjeta de tarifas de Azure es necesaria para informar de los precios precisos en el panel. Deberá crear una entidad de servicio con un rol personalizado, tal como se explica en la página de documentación y configurar Kubecost para usar la entidad de servicio para consultar la API de tarjeta de tarifas de facturación de Azure.
Navegación en Kubecost
Kubecost divide los recursos en las siguientes categorías:
- Costo mensual del clúster
- Costo del espacio de nombres
- Costo de los recursos de implementación
- Rentabilidad
Seleccione el clúster para ver información general, como en el siguiente panel:
Seleccione Allocation (Asignación) a la izquierda para profundizar en el costo del espacio de nombres de los recursos. Allocation (Asignación) muestra el costo de la CPU, la memoria, los volúmenes persistentes y la red. Kubecost obtiene los datos de los precios de Azure, pero también puede establecer costos personalizados para los recursos.
Seleccione Savings (Ahorro) a la izquierda para profundizar en el ahorro de costos que suponen los recursos infrautilizados. En Savings (Ahorro) puede ver información sobre los nodos y los pods infrautilizados y los recursos abandonados; también se identifican las solicitudes de recursos que se sobreaprovisionan en el clúster. En la siguiente captura de pantalla se muestra información general de ejemplo de Savings (Ahorro):
Dedique un tiempo a desplazarse por las distintas vistas y características que proporciona Kubecost.