For many IT organizations, Kubernetes is quickly becoming a mainstay. Its popularity with DevOps and how it helps improve their CI/CD pipelines has coerced IT providers to deliver and operationalize it as their container orchestrator of choice. But with new technologies comes new constructs and methods to manage them. vRealize Operations can deliver valuable insights to IT providers across the infrastructure and into Kubernetes. No matter if you are running Tanzu Kubernetes in the public cloud or on premises, or perhaps you’re running OpenStack or another upstream Kubernetes build, vRealize Operations can help you be successful in the delivery of these platforms. vRealize Operations can also provide insights into your managed Kubernetes services such as Amazon EKS, Google GKE, and Azure AKS through their respective management packs. In this blog we’ll look at the latest capabilities with the new Management Pack for Kubernetes 1.5.1 which is available for download now!
Now available in vRealize Operations Advanced!
The first major announcement is that we’re changing the licensing requirements of the management pack. With this release, we’re happy to reveal that vRealize Operations Advanced customers can now take full advantage of this Management Pack and all its features. Whereas In previous releases you had to be running the Enterprise edition of vRealize Operations. If you are running vRealize Operations Cloud, there is no change, and you can continue to enjoy management pack.
Improved metric collection with Prometheus!
In earlier releases, we leveraged cAdvisor to provide insights into resource usage within Kubernetes and this is still fully supported. However, based on abundant customer feedback we’ve also developed integrations with Prometheus. If your organization is running Kubernetes today, then there’s a good chance your application teams and developers are already leveraging Prometheus to collect important metrics for their applications, containers, pods, namespaces, and nodes. By integrating vRealize Operations with Prometheus, you don’t have to deploy one-off services to get insights into Kubernetes. You can leverage existing metrics collection tools and get data that is consistent with what your developers and application teams are seeing. As infrastructure and platform operators, it’s important for us to be able to consume these metrics within vRealize Operations. This can dramatically decrease time to resolution by reducing friction between multiple teams and being able to see the full Kubernetes landscape without having to learn new tools. What’s more is if your Kubernetes platform is running on top of vSphere, vRealize Operations can map the relationships between vSphere objects and your Kubernetes environments. This means you can see K8s and Infrastructure metrics side by side and leverage the powerful AI driven features of vRealize Operations such as the Troubleshooting Workbench and Metric Correlation. With the Management Pack for Kubernetes 1.5.1, we’re making our integration with Prometheus even better. We’ll start with looking at how vRealize Operations and Prometheus work together in this release.
There are two important pieces of information that vRealize Operations needs to gather. The first is the inventory as this allows vRealize Operations to understand the topology of your Kubernetes Cluster from the nodes, namespaces, pods, replica sets, services, all the way to the containers. The Management Pack for Kubernetes gathers this information directly from the cluster’s control plane using the Kubernetes API. Once vRealize Operations knows about the topology of your cluster, it can then pull metrics from Prometheus for each monitored object. Connections to Prometheus can either be anonymous (this is the default for Prometheus) or can use basic authentication if a proxy such as NGINX is used.
Prometheus is very different from vRealize Operations in the way that it gathers metrics. Instead of querying objects directly using their API’s, Prometheus pulls data from exporters leveraging a common API. The exporters are responsible for the collection of metrics from the various objects and there are many exporters available for Prometheus. Some exporters can provide application level metrics, while others are focused on Kubernetes constructs like nodes and pods, and others such as Telegraf can do all the above through the use of plugins. With this release, support for the following exporters…
- Telegraf Kubernetes Input Plugin – Offers a wide range of metrics for Linux nodes as well as pods and containers. It can also collect metrics for Windows based nodes, pods, and containers but provides a limited set of the Linux based object metrics.
- cAdvisor Exporter – Provides metrics for Linux Containers and some node metrics. Note that this exporter only sends a subset of the cAdvisor metrics to Prometheus.
- cStats Exporter – Provides metrics for Windows Container some node metrics.
- Kube-State-Metrics – Provides infrastructure level metrics for Linux and Windows based nodes.
- Windows-node-exporter – Provides Windows node metrics.
- Node Exporter – Provides Linux node metrics.
What’s great about the integration between vRealize Operations and Prometheus is that all metrics that are available for each object will automatically be pulled in to vRealize Operations. That means if you or your app/dev teams decide to upgrade your exporters to introduce new metrics down the road, those will be pulled in to vRealize Operations as well. And as new objects are created such as pods, namespaces, or nodes, vRealize Operations will automatically pick these up and start collecting.
In addition to metrics, vRealize Operations will also collect labels from Prometheus. Labels can include important meta data such as the IP address of a node, an application or process name, version numbers, or perhaps identify which CPU core is represented by a metric.
Filters can be applied to ignore less important labels such as GUID’s.
Application Monitoring in Kubernetes
With this integration between vRealize Operations and Prometheus, we are building toward greater insights into your applications.
In the example above, we have a Redis message broker deployed in a pod along with a Telegraf exporter. Within vRealize Operations we can see important information such as the number of clients, how much CPU time is needed for each call, memory information, and information about the application’s backlogs. All this information is explorable within vRealize Operations and we are working to validate more application exporters.
Support for new Tanzu Mission Control API’s
In the 1.5 release of the Management Pack for Kubernetes, we introduced support for Tanzu Mission Control which gave us a way to monitor clusters deployed on AWS by Tanzu Mission Control automatically. In order to support some exciting new features, Tanzu Mission Control recently updated their API’s and the Management Pack for Kubernetes 1.5.1 includes support for these API’s. I should point out that Tanzu Mission Control recently announced support for Tanzu Kubernetes Grid on vSphere 7 and we are working to support this exciting new effort in an upcoming release.
If you’re running vRealize Operations Advanced or above or vRealize Operations Cloud, then give the new Management Pack for Kubernetes 1.5.1 a try. And be sure to check out the documentation for full details of this management pack as well as sample deployments to try for yourself.