Kubernetes (often abbreviated to K8s) is a great solution for managing your container based environments but 3 major issues generally crop up in production – and lead to difficulties when monitoring Kubernetes.
- It’s difficult to understand how/where K8s has deployed your environment
- It’s difficult to understand how events in Kubernetes are related to the performance and availability of your services
- It’s difficult to know when K8s itself is broken
This is especially true for the teams that write the applications. They typically did not set up Kubernetes, but they depend on it for their microservice deployments. K8s automatically monitors to see if the deployment complies with the defined configuration, but it’s lacking in a few major areas that will cause you great pain if you’re using it to manage more than a few containers.
How/Where did Kubernetes deploy my environment?
One of the great things about Kubernetes is that you don’t actually define WHERE it should deploy your containers. You do tell K8s how it should deploy (for example: 5 replicas, but none on the same hosts so that there is redundancy), but Kubernetes deploys containers wherever it can to maintain compliance with the defined policy.
So, for K8s deployments, the real question becomes… “Did I actually define the configuration such that performance will be sufficient, and if so is there enough infrastructure available so that the scheduler can comply with the policies?”
Instana answers these questions by showing you the exact deployment, related performance, and a mapping of your containers, clusters, and pods. It also alerts you when K8s is unable to deploy components due to resource limitation or other issues.
What is the impact of K8s events on my application or services?
Instana collects all events generated by Kubernetes and processes them along with the data from correlated infrastructure and application components. All of this data is tracked using our Dynamic Graph which is a virtual map of every discovered application and infrastructure dependency. This allows you to navigate from application component to Kubernetes component and back right inside of the UI.
AI is applied to this dynamic data set to automatically determine if Kubernetes events are the root cause of service impact. You will finally understand the exact impact (if any) of Kubernetes generated events on your running applications and services.
Have I mentioned yet that Instana automatically collects and correlates all K8s labels whether they are system generated or user defined? These labels are critical to mapping the monitoring data to your actual Kubernetes configurations. These labels can be used to filter the Instana UI via our Dynamic Focus capability (Learn more about dynamic focus here).
Is Kubernetes broken?
K8s has multiple internal services (scheduler, controller, etcd, kubelets, etc) all working together to schedule, deploy and monitor your containers. If any of those components fail you want to be alerted and fix them right away. Instana understand the health of each of these components as alerts you to any issues.
If you’re using Kubernetes to orchestrate your containerized environments you really need to take a free trial of Instana. You’ll have it installed and providing meaningful information in minutes. Seriously it’s that quick and easy.
We've also created a brief video demonstration of Instana's Kubernetes monitoring in action.