Kubernetes
Kubernetes is a container-orchestration platform for automating deployment, scaling, and operations of applications running inside the containers across clusters of hosts. Open-sourced by Google in 2014, Kubernetes was built based on the search giant’s own experience with running containers in production. It’s now under the aegis of the Cloud Native Computing Foundation (CNCF), which reports that Kubernetes is the most popular container management tool among large enterprises, used by 83% of respondents in a recent CNCF survey (https://www.cncf.io/wp-content/uploads/2020/11/CNCF_Survey_Report_2020.pdf). And in case you’re wondering, the name “Kubernetes” is Greek for “helmsman” or “pilot.”
Kubernetes Monitoring with AppDynamics gives organizations visibility into application and business performance, providing insights into containerized applications, Kubernetes clusters, Docker containers, and underlying infrastructure metrics.
Using Docker Visibility with Kubernetes
With AppDynamics, you can gain real-time visibility into your containerized applications deployed to Kubernetes. Kubernetes is an open source container-orchestration platform for automating deployment, scaling, and management of applications running in containers.
With Container Visibility, you can enhance container-level metrics and gain visibility into CPU, packet visibility, memory, and network utilization. These metrics can then be baselined and have health rules associated along with detailed resource usage statistics about your APM-monitored container applications. By viewing and comparing APM metrics, with the underlying container and server metrics, you quickly receive deep insights into the performance of your containerized applications, along with potential impediments in your infrastructure stack. For example, specific metrics can help you identify both “bandwidth-hogging” applications and container-level network errors.
Container visibility allows you to monitor containerized applications running inside Kubernetes pods and to identify container issues that impact application performance. The agent is deployed as a Kubernetes DaemonSet in every node of a Kubernetes cluster. Deploying the Machine Agent as a DaemonSet ensures that every Kubernetes worker node runs the Machine Agent and that the agent collects critical resource metrics from both the node host and the associated Docker containers.
Container Visibility with Kubernetes
Deploy the Machine Agent in Docker-enabled mode. For more information and details on how to configure and run the Machine Agent using Docker, see Configuring Docker Visibility (https://docs.appdynamics.com/appd/21.x/21.3/en/infrastructure-visibility/monitor-containers-with-docker-visibility/configure-docker-visibility). The Machine Agent will then do the following:
• Identify the containers managed by Kubernetes.
• Determine if these containers contain App Server Agents.
• Correlate containers with App Server Agents with the APM nodes for that application.
Figure 4-40 illustrates the following deployment scenario for Container Visibility in Kubernetes:
Figure 4-40 Container Visibility in Kubernetes
• Install the Machine Agent container as a DaemonSet on each Kubernetes node.
• If you wish to collect APM metrics from any container in a pod, install the correct APM Agent in the container before deploying the pod.
• The Machine Agent collects resource usage metrics for each monitored container , as well as Machine and Server metrics for the host, and then forwards the metrics to the Controller.
• (Optional) Install the Network Agent as a DaemonSet on the node you want to monitor. The Network Agent collects the metrics for all network connections between application components being monitored and sends the metrics to the Controller.
Container visibility with Kubernetes requires the following:
• The Machine Agent must run as a DaemonSet on every Kubernetes node that you wish to monitor.
• Each node to be monitored must have a Server Visibility license.
• Docker Visibility must be enabled on the Machine Agent.
• Both App Server Agents and Machine Agents are registered by the same account and are using the same Controller.
• If you have multiple App Server agents running in the same pod, register the container ID as the host ID on both the App Server Agent and the Machine Agent.