Widespread adoption of containers has changed the way applications are written and deployed. Container orchestration technologies such as Kubernetes are making it easier for teams to schedule, deploy, and manage their containerized applications. But challenges still exist that require teams to rethink their environment and application monitoring strategies:
- Challenge 1: Containers are ephemeral by nature. Knowing the containers or pod or node (host) where the application is currently running is not necessarily an indication of where it was running 5, 15, or 30 minutes ago when the issue occurred. Containers are deployed in dynamic, constantly evolving environments that require a modern monitoring approach.
- Challenge 2: Often, organizations are adopting containers as they break down monolithic applications into multiple microservices. This new approach introduces new complexity to the system and the sheer scale and dimensionality of containers is hard to conceptualize in an easy-to-understand format.
- Challenge 3: Delivering a differentiated end-user experience is a key initiative for all organizations, and containers are being adopted to help organizations release better software, faster. But with this tremendous opportunity also comes risk, because every time a new container is deployed, the cluster is impacted. Organizations need context into how infrastructure changes impact the application stack, and how changes to both the infrastructure and application stack affect the end-user experience. Getting all of this data in real-time in a digestible format is a significant challenge in distributed, containerized environments.
The New Relic platform offers customers both ease of use and ease of deployment for containerized Kubernetes environments. With a few clicks you have the data and confidence to move forward intelligently.
These six steps illustrate how to use the New Relic platform to manage your containers and how they are scheduled:
To get started, you'll need to deploy the latest Infrastructure agent onto a Kubernetes cluster with a DaemonSet. Leveraging DaemonSets is vital in dynamic, containerized environments, because when a new node is deployed or the cluster scales up or down, the DaemonSet ensures the New Relic agent is running on these new nodes. In addition, to build a complete picture of your Kubernetes environment, New Relic aggregates data from many resources, including Kube-state metrics. New Relic's “Kubernetes aware” approach makes it easy for Kubernetes to do its job as an orchestrator without missing a single node, cluster, or event.
Once the Kubernetes integration is installed, you can access the New Relic Kubernetes cluster explorer, which offers a differentiated, intuitive way to visualize the health and performance of Kubernetes clusters. It applies advanced capabilities to filter, sort, and search for Kubernetes entities, helping teams understand the relationships and dependencies within an environment. It's a powerful and innovative solution to the challenges associated with running Kubernetes at massive scale.
Above and beyond what the cluster explorer provides, New Relic provides out-of-the-box dashboards that allow customers to analyze performance and operating metrics of their Kubernetes environments. Key metrics include the number of containers, resource consumption, pending pods, out of memory (OOM) kills, and stuck pods. These metrics may be particularly relevant to Kubernetes administrators who require reliable, up-to-date information on resource consumption against pre-set thresholds.
Access these dashboards directly from the cluster explorer where you can first visually explore your cluster and then use filters to drive down into specific dashboards that match that filter.
One advantage of New Relic's Infrastructure agent being application-aware is that the cluster explorer is automatically aware of New Relic agents that are deployed on new applications. To fully exploit these capabilities, we recommend monitoring all existing and future containerized applications running in Kubernetes by installing the APM agent on them.
Starting again from the cluster explorer, you can dig into what's happening in your applications from the context of the Kubernetes cluster. This gives you the ability to intuitively correlate your infrastructure and applications and begin analytically troubleshooting across the stack. Cloud-native applications use many interconnected services. The cluster explorer will correlate the application and link to its distributed tracings. In complex systems the ability to trace and identify pathways and latency bottlenecks are not optional.
If you are orchestrating an end-user facing application, New Relic allows you to view the end-to-end impact your infrastructure and services have on your customer experience. We tackle end-user management in two ways:
- With Synthetics, you can track application availability and performance from a wide variety of global locations visualizing if customer experience is impacted due to geography.
- With Browser and Mobile, we recommend monitoring such KPIs as load time and availability.
Marrying end-user data with metrics and dashboards provided by the cluster explorer enables operators, administrators, app developers, and business personnel to align on common initiatives.
With dashboards, you can build custom visualizations from an end-to-end service perspective to analyze the cluster, pods, application, and end-user experience in one clean visual display. By using New Relic's dashboards, cross-organizational teams can align to share a common language and single source of truth, helping them make better decisions and drive business impact.
The top two rows of this sample dashboard visualize various aspects of a Kubernetes environment while the third row illustrates valuable information regarding the applications that are deployed to this cluster. The bottom row displays the end-user viewpoint.
- Actively, where we enable availability monitoring for one user in one location with Synthetics
- Passively, where you can analyze a macro view of all users across all geographies with Browser monitoring and Mobile monitoring.
- Bring teams together with dashboards tailored to specific business use cases and KPIs
- Kubernetes Monitoring Guide