<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rodrigue Chakode</title>
    <description>The latest articles on DEV Community by Rodrigue Chakode (@rchakode).</description>
    <link>https://dev.to/rchakode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F464429%2F71d6e85b-682d-4a63-a1a3-9583481aaa26.jpeg</url>
      <title>DEV Community: Rodrigue Chakode</title>
      <link>https://dev.to/rchakode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rchakode"/>
    <language>en</language>
    <item>
      <title>Tracking the efficiency of resource requests on Kubernetes</title>
      <dc:creator>Rodrigue Chakode</dc:creator>
      <pubDate>Thu, 10 Feb 2022 08:49:39 +0000</pubDate>
      <link>https://dev.to/rchakode/tracking-the-efficiency-of-resource-requests-on-kubernetes-5h97</link>
      <guid>https://dev.to/rchakode/tracking-the-efficiency-of-resource-requests-on-kubernetes-5h97</guid>
      <description>&lt;h2&gt;
  
  
  Problem Context
&lt;/h2&gt;

&lt;p&gt;Best practices on Kubernetes recommend setting resource requests (and also limits?) on workloads. It's even possible to set cluster-level policies to reject manifests without resource requests. However, one of the problems that this raises is the ability to suitably assess and set resource requests in a way that avoids wasting resources due to unused requested (i.e. reserved) capacities.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;So, how to measure the efficiency of resource requests set on your Kubernetes workloads to avoid wasting resources due to oversized requested (i.e. reserved) capacities?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Our Original Contribution
&lt;/h2&gt;

&lt;p&gt;Thanks to &lt;a href="https://github.com/rchakode/kube-opex-analytics"&gt;kube-opex-analytics&lt;/a&gt;, an open source Kubernetes usage analytics and accounting tool (read more about it at the end of this story), we address the problem of assessing the efficiency of resource requests set on Kubernetes workloads.&lt;br&gt;
The release &lt;a href="https://github.com/rchakode/kube-opex-analytics/releases/tag/v22.02.0"&gt;v22.02.0&lt;/a&gt; introduces a new indicator called 𝐔𝐬𝐚𝐠𝐞/𝐑𝐞𝐪𝐮𝐞𝐬𝐭 𝐄𝐟𝐟𝐢𝐜𝐢𝐞𝐧𝐜𝐲. Conceptually, this indicator is defined as the ratio between the actual usage and the resource requests. The indicator is provided by namespace and, as all other kube-opex-analytics indicators, it's computed based on hourly-consolidated Kubernetes metrics.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;By tracking and visualizing the usage/request efficiency indicator over time, Kubernetes administrators do have an additional tool to take appropriate cost-optimization decisions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dnS_CPtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zp9cfq3zg2aij5nj6zw9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dnS_CPtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zp9cfq3zg2aij5nj6zw9.png" alt="kube-opex-analytics :: Usage/Request Efficiency chart" width="880" height="262"&gt;&lt;/a&gt;&lt;em&gt;kube-opex-analytics - A chart showing the usage/request efficiency for CPU (1) and memory (2) resources for a selectable period of time (4). At specific date time, a tooltip (3) provides details for each namespace. It's possible to export (5) the chart as PNG image or as CSV and JSON data file&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The next section discusses possible values of this indicator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Usage/Request Efficiency
&lt;/h2&gt;

&lt;p&gt;At a given namespace and a given time, the value of this indicator can be in one of the following ranges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A &lt;strong&gt;value equal to 1&lt;/strong&gt; means an effective match between the actual usage and requests; this is also the default value if no resource requests are set in the namespace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A &lt;strong&gt;value between 0 (excluded) and 1&lt;/strong&gt; does mean that the actual usage is lower than resource requests. A value close to zero typically means that requests are oversized, and that they need to be reviewed to avoid wasting resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A &lt;strong&gt;value greater than 1&lt;/strong&gt; means that the actual usage is greater than the requests. It's likely an ideal situation to avoid wasting resources. However, in this case it's likely necessary to have resource limits or namespace quotas set to be sure that the resource consumption will be under control.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  About kube-opex-analytics
&lt;/h2&gt;

&lt;p&gt;kube-opex-analytics (literally Kubernetes Opex Analytics) is an open source Kubernetes usage analytics tool to help organizations track the resources being consumed by their Kubernetes clusters over time (hourly, daily, monthly). Doing so, kube-opex-analytics aims to prevent overpaying by enabling each organization to understand how their Kubernetes resources are consumed over time, and hence be able to make appropriate cost optimization decisions.&lt;/p&gt;

&lt;p&gt;Some of its key features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Usage accounting and trends per namespace.&lt;/li&gt;
&lt;li&gt;Accounting of non-allocatable capacities(nodes and cluster levels).&lt;/li&gt;
&lt;li&gt;Cluster usage accounting and capacity planning.&lt;/li&gt;
&lt;li&gt;Usage/requests efficiency.&lt;/li&gt;
&lt;li&gt;Cost allocation and chargeback analytics.&lt;/li&gt;
&lt;li&gt;Insightful and extensible visualization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can get additional information on kube-opex-analytics via &lt;a href="https://github.com/rchakode/kube-opex-analytics"&gt;its GitHub page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this story we have presented an original indicator to track the efficiency of resource requests set on Kubernetes workloads. The aim of this indicator is to provide Kubernetes administrators a tool to make appropriate cost-optimization decisions.&lt;/p&gt;

&lt;p&gt;Don't hesitate to share your feedback.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>usageanalytics</category>
      <category>costoptimization</category>
      <category>capacityplanning</category>
    </item>
    <item>
      <title>A centralized approach of usage analytics for multiple managed Kubernetes (AKS, EKS, GKE)</title>
      <dc:creator>Rodrigue Chakode</dc:creator>
      <pubDate>Sun, 06 Sep 2020 11:52:08 +0000</pubDate>
      <link>https://dev.to/rchakode/a-centralized-approach-of-usage-analytics-for-multiple-managed-kubernetes-aks-eks-gke-2pm7</link>
      <guid>https://dev.to/rchakode/a-centralized-approach-of-usage-analytics-for-multiple-managed-kubernetes-aks-eks-gke-2pm7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6IzABPG8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gkmb8hvnlolqnkr96zlf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6IzABPG8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gkmb8hvnlolqnkr96zlf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article introduces a concept and a tool to address the use case to get a &lt;strong&gt;&lt;em&gt;comprehensive visualization to analyse and understand resource usage on environments with many Kubernetes clusters&lt;/em&gt;&lt;/strong&gt;. Our approach is specifically &lt;em&gt;tailored for managed Kubernetes platforms&lt;/em&gt; aiming at helping organizations to easily make cost allocation and capacity planning decisions. Beyond concepts, the result of this work is an application called &lt;a href="https://krossboard.app"&gt;Krossboard&lt;/a&gt; that will be demonstrated later in this article. In a nutshell, Krossboard is a software stack that implements a centralized cross-cluster usage analytics approach atop of &lt;a href="https://aws.amazon.com/fr/eks/"&gt;Amazon EKS&lt;/a&gt;,&lt;a href="https://cloud.google.com/kubernetes-engine"&gt; &lt;/a&gt;&lt;a href="https://azure.microsoft.com/en-us/services/kubernetes-service/"&gt;Microsoft AKS&lt;/a&gt; and &lt;a href="https://cloud.google.com/kubernetes-engine"&gt;Google GKE&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Credit:&lt;/strong&gt; The work is achieved in collaboration with &lt;a href="https://www.linkedin.com/in/christophe-camel"&gt;Christophe Camel&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Goals
&lt;/h2&gt;

&lt;p&gt;This work raises from the need to provide a mean for organizations owning multiple Kubernetes clusters to easily tackle cost management and capacity planning decisions. The aim is to bring a global and consistent approach for resource usage analysis where metrics from all managed Kubernetes clusters in a cloud environment are collected, processed, aggregated, visualized, all in one single place. The resulting analytics are intended to cover short, mid and long periods of accounting (hours, days, months, and even years), combined with fine-grained exploration capabilities.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One of &lt;strong&gt;key point of the discussed approach&lt;/strong&gt; is that we want to go beyond the traditional one consisting to deploy the analytics component inside the Kubernetes cluster itself. Indeed, this later approach consumes production resources and introduces noises on usage reports, not to mention the fact that the related tools are often mono cluster solutions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Objectives &amp;amp; benefits
&lt;/h2&gt;

&lt;p&gt;The core ambition of the current work aims to enable the following unique benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consolidated per-cluster and cross-cluster usage KPIs&lt;/strong&gt; — &lt;br&gt;
We expect analytics that are based on consolidated metrics while being cross-cluster. On the one hand, following the approach introduced by &lt;a href="https://medium.com/@rodrigue.chakode/kubernetes-resource-usage-analytics-for-cost-allocation-and-capacity-planning-416800e85d16"&gt;kube-opex-analytics&lt;/a&gt;, all analytics are based on consolidated metrics in order to be consistent and relevant for business decisions. Our standard analytics do start with a minimum of 5-minutes consolidation interval for recent highlights, the main focus being hourly, daily and monthly reports. On the other hand, analytics shall be provided at namespace scope for in-cluster perspectives and/or at cluster scope for multi-cluster perspectives.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ease cost allocation decisions&lt;/strong&gt; — We expect to provide detailed reports on resources consumed by each project (namespace) as well by each cluster during given accounting periods (e.g. hourly, daily, monthly). The intent is to help organizations to share infrastructure and operations costs among their projects or business units.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Help anticipate costs&lt;/strong&gt; — The idea is to feature dynamic analytics reports that show how resources are being consumed over time. This would help organizations to forecast resource scale up and scale down, there by anticipating the related costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enabler for cloud-cost reduction strategy&lt;/strong&gt; — Last but not the least, our intent is to provide organizations with usage KPIs that enable factual insights to make cluster consolidation decisions. For instance, such insights can be used to motivate and drive consolidation decisions for clusters that are under utilized — hence leading to infrastructure and operations cost reduction.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After having discussed the theoretical aspects of our vision, the next section presents Krossboard the result of our current implementation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bksk_zpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3700/1%2AnW7zGvXvMn9KGfrRfB5uKA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bksk_zpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3700/1%2AnW7zGvXvMn9KGfrRfB5uKA.png" alt="Krossboard — sample of screenshot showing 5-minutes recent CPU and Memory usage per GKE cluster"&gt;&lt;/a&gt;&lt;em&gt;Krossboard — sample of screenshot showing 5-minutes recent CPU and Memory usage per GKE cluster&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Krossboard in a nutshell
&lt;/h2&gt;

&lt;p&gt;Krossboard is built atop tenets that make it pretty simple to understand and also easy to deploy and get started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrated images for cloud platforms&lt;/strong&gt; — Provided as ready-to-use cloud images for popular cloud platforms (currently Amazon EKS, Microsoft AKS and Google GKE), you can set up an instance of Krossboard in a couple of minutes. As illustrated by the conceptual integration architecture diagram at the beginning of this post, the instance is designed to then seamlessly discover and track the usage of all your managed clusters in a given cloud scope (e.g. AWS region, GCP project, or Azure resource group).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistent analytics&lt;/strong&gt; — for each cluster, Krossboard computes resource usage for each individual namespace and aggregates them on an hourly basis (what we consider as a consistent and relevant cost allocation time unit). The resulting analytics are rendered with various perspectives that cover days, months, and up to a year.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Central place of visualization&lt;/strong&gt; — Beyond the advanced aggregation and consolidation capabilities that Krossboard features, it provides built-in charts for the resulting usage KPIs. The Krossboard UI actually works as a single panel of glass to quickly insights on the resources each namespace/project or cluster is spending over time (see a sample screenshot below).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bksk_zpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3700/1%2AnW7zGvXvMn9KGfrRfB5uKA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bksk_zpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3700/1%2AnW7zGvXvMn9KGfrRfB5uKA.png" alt="Krossboard — sample of screenshot showing 5-minutes recent CPU and Memory usage per GKE cluster"&gt;&lt;/a&gt;&lt;em&gt;Krossboard — sample of screenshot showing 5-minutes recent CPU and Memory usage per GKE cluster&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Integration decisions
&lt;/h2&gt;

&lt;p&gt;Krossboard is designed to specifically simplify its integration with managed Kubernetes platforms. Setup as a virtual machine automatically deployed and configured, each instance does discover and handle all managed clusters defined by a given scope.&lt;/p&gt;

&lt;p&gt;In the current implementation, the default discovery scope are the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;On Amazon Web Services (AWS)&lt;/strong&gt;, an instance of Krossboard does automatically discover and handle all your EKS clusters belonging to the same &lt;strong&gt;AWS region&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;On Microsoft Azure&lt;/strong&gt;, an instance of Krossboard does automatically discover and handle all AKS clusters belonging to the same &lt;strong&gt;Azure resource group&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;On Google Compute Platform (GCP)&lt;/strong&gt;, an instance of Krossboard does automatically discover and handle all GKE clusters belonging to the same &lt;strong&gt;GCP project&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Security notes:&lt;/strong&gt; Krossboard needs only read access to your managed clusters. On each cloud platform, suitable IAM policies are applied to the instance during the installation to ensure that it’ll be restricted to only the set of read-permissions needed for its proper operations.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Thanks to the distribution setup scripts released with Krossboard, you shall set up an instance as quick (a few minutes) than easy on the supported platforms. &lt;strong&gt;This section shows how to set it up on Google GCP, Microsoft Azure and Amazon AWS in just a couple of minutes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On Google GCP&lt;/strong&gt;, the following commands shall set up an instance of Krossboard with a &lt;code&gt;g1-small&lt;/code&gt; GCE virtual machine located in the &lt;code&gt;us-central1-a&lt;/code&gt; zone (all GCP zones are supported). The instance does handle all GKE clusters belonging to the project having the ID &lt;code&gt;my-gke-project&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;These parameters should be adapted according to your deployment environment.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export GCP_PROJECT="my-gke-project"
export GCP_ZONE="us-central1-a"
export GCP_INSTANCE_TYPE="g1-small"
curl -so krossboard_gcp_install.sh \
https://krossboard.app/artifacts/setup/krossboard_gcp_install.sh \
    &amp;amp;&amp;amp; bash ./krossboard_gcp_install.sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;On Amazon AWS&lt;/strong&gt;, the following commands shall set up an instance of Krossboard with a &lt;code&gt;t2.small&lt;/code&gt; EC2 virtual machine for the &lt;code&gt;eu-central-1&lt;/code&gt; region (see the list of &lt;a href="https://krossboard.app/docs/releases/"&gt;supported regions&lt;/a&gt;). The key pair defined by the variable &lt;code&gt;KB_AWS_KEY_PAIR&lt;/code&gt; must exist.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;These parameters should be adapted according to your deployment environment.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export KB_AWS_KEY_PAIR="MyKeyPair"
export KB_AWS_REGION="eu-central-1"
export KB_AWS_INSTANCE_TYPE="t2.small"
curl -so krossboard_aws_install.sh \
https://krossboard.app/artifacts/setup/krossboard_aws_install.sh \
    &amp;amp;&amp;amp; bash ./krossboard_aws_install.sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;On Microsoft Azure, the following commands shall set up an instance of Krossboard with a &lt;code&gt;Standard_B1m1&lt;/code&gt; Azure virtual machine located in &lt;code&gt;centralus&lt;/code&gt; (see the list of &lt;a href="https://krossboard.app/docs/releases/"&gt;supported locations&lt;/a&gt;). The instance does handle all AKS clusters belonging to the resource group set by the variable &lt;code&gt;AZURE_GROUP&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;These parameters should be adapted according to your deployment environment.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export AZURE_GROUP="YOUR_AZURE_GROUP_WITH_AKS"
export KB_AZURE_VM_SIZE="Standard_B1ms"
export KB_AZURE_LOCATION="centralus"
curl -so krossboard_azure_install.sh \https://krossboard.app/artifacts/setup/krossboard_azure_install.sh \
    &amp;amp;&amp;amp; bash ./krossboard_azure_install.sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Sample of analytics charts
&lt;/h2&gt;

&lt;p&gt;At the end of the setup script, the URL of Krossboard UI shall be displayed in the terminal. Open it in a browser to get access to the analytics web interface. &lt;strong&gt;Note:&lt;/strong&gt; You may need to wait almost 15 minutes to have the first consolidated analytics available.*&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Data Export:&lt;/strong&gt; the data backing each report can be exported in CSV format. Doing so, Krossboard leaves freedom to users to unlock additional analytics capabilities using your favorite data analysis tools (&lt;a href="https://cloud.google.com/bigquery"&gt;Google BigQuery&lt;/a&gt;, &lt;a href="https://aws.amazon.com/athena/"&gt;AWS Athena&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/en-us/services/synapse-analytics/"&gt;Azure Synapse&lt;/a&gt;, &lt;a href="https://www.tableau.com/"&gt;Tableau&lt;/a&gt;, &lt;a href="https://www.microsoft.com/en-us/microsoft-365/excel#pivot-forPersonal"&gt;Microsoft Excel&lt;/a&gt;, to list a few).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Recent consolidated usage
&lt;/h2&gt;

&lt;p&gt;For each cluster discovered and handled, this section displays pie charts showing the latest consolidated CPU and memory usage. Updated every 5 minutes, these reports highlight shares of used, available, and non-allocatable resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bksk_zpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3700/1%2AnW7zGvXvMn9KGfrRfB5uKA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bksk_zpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3700/1%2AnW7zGvXvMn9KGfrRfB5uKA.png" alt="Krossboard — sample of screenshot showing 5-minutes recent consolidated usage for CPU and memory"&gt;&lt;/a&gt;&lt;em&gt;Krossboard — sample of screenshot showing 5-minutes recent consolidated usage for CPU and memory&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Per-cluster Usage Trends &amp;amp; Accounting
&lt;/h2&gt;

&lt;p&gt;For each cluster (selected on-demand by the user), this section provides various reports showing hourly, daily and monthly usage analytics for CPU and memory resources.&lt;/p&gt;

&lt;p&gt;The backing data can be exported in CSV using the links provided at the top of the charts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xpiK4dYT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3696/1%2A4Qh_JNXoVMJs_HeLvLJH5g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xpiK4dYT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3696/1%2A4Qh_JNXoVMJs_HeLvLJH5g.png" alt="Krossboard — Sample screenshot of per-cluster usage trends &amp;amp; accounting (hourly, daily, monthly)"&gt;&lt;/a&gt;&lt;em&gt;Krossboard — Sample screenshot of per-cluster usage trends &amp;amp; accounting (hourly, daily, monthly)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Global Usage Trends &amp;amp; History
&lt;/h2&gt;

&lt;p&gt;This section provides comprehensive usage reports covering all clusters for a user-defined period of time. The intent of these reports is to provide an at-a-glance visualization to compare the usage of different clusters for any period of time.&lt;/p&gt;

&lt;p&gt;The backing data can be exported in CSV using the links provided at the top of the charts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--taTqspAr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3700/1%2AJiAARIrRLXfC5tIGmvSujA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--taTqspAr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3700/1%2AJiAARIrRLXfC5tIGmvSujA.png" alt="Krossboard — sample screenshot showing cluster-scoped global usage trends &amp;amp; history"&gt;&lt;/a&gt;&lt;em&gt;Krossboard — sample screenshot showing cluster-scoped global usage trends &amp;amp; history&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion and next steps
&lt;/h2&gt;

&lt;p&gt;We introduced in this story original concepts to deal with resource usage analytics on multi-Kubernetes environments. Especially tailored for managed Kubernetes platforms, we described architectural aspects and showed how to quickly deploy it to handle Google GKE, Amazon EKS and Microsoft AKS clusters.&lt;/p&gt;

&lt;p&gt;Krossboard is &lt;a href="https://krossboard.app/docs"&gt;available and distributed at no cost&lt;/a&gt;. Don’t hesitate to deploy it and let’s know your feedback. If you do encounter any problems or do have suggestions for enhancements, please open a request at the project’s&lt;a href="https://github.com/2-alchemists/krossboard"&gt; Github page&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>aws</category>
      <category>googlecloud</category>
      <category>azure</category>
    </item>
  </channel>
</rss>
