What is Kubernetes?
Kubernetes — also known as k8s or kube — is a container orchestration platform for scheduling and automating the deployment, management, and scaling of containerized applications.
Containers are similar to VMs, but they have relaxed isolation properties to share the Operating System (OS) among the applications. Therefore, containers are considered lightweight. Similar to a VM, a container has it's own filesystem, share of CPU, memory, process space, and more. As they are decoupled from the underlying infrastructure, they are more portable across clouds and OS distributions.
Containers have become popular because they provide extra benefits, such as:
- Agile application creation and deployment
- Continuous development, integration, and deployment
- Dev and Ops separation of concerns
- Observability
- Environmental consistency across development, testing, and production
- Cloud and OS distribution portability
- Application-centric management
- Loosely coupled, distributed, elastic, liberated micro-services
- Resource isolation: predictable application performance
- Resource utilization: high efficiency and density
Monitoring Kubernetes
This package monitors a Kubernetes Node by communicating with the Kubelet API from a ServicePilot Agent installed in a Pod. It is assumed that ServicePilot Agents are running in Pods as part of a DaemonSet within a Kubernetes cluster so that each ServicePilot Agent can report on its Node statistics.
The statistics gathered in this way include:
- Node
- CPU usage
- Memory usage
- File system usage
- Network usage
- System components
- CPU usage
- Memory usage
- File system usage
- Pod
- CPU usage
- Memory usage
- File system usage
- Network usage
- Pod volume usage