How it works Pods Kubernetes introduces a new level of abstraction to your containerized environment thanks to pods. A pod is a group of one or more containers, that are located on the same host and share the same resources, such as network, memory and storage of the node. Each pod in Kubernetes gets its own IP address that is shared with all the containers inside.
Nodes and clusters
In Kubernetes, servers that perform work are known as nodes. A node is a worker machine inside Kubernetes where pods are running on. A node may be a VM or physical machine, depending on the cluster. Each node has the services necessary to run pods and is managed by Kubernetes.
In short, Kubernetes exists of the following components:
What it means for your monitoring strategy To ensure a good performance of your business service it is critical to monitor Kubernetes itself as well as the health of your deployed applications, the containers and the dependencies between them. The new abstraction introduced by Kubernetes, requires you to rethink your monitoring strategy, especially if you are used to traditional monitoring tools and traditional hosts such as physical machines or VMs. Microservices have changed the way we think about running services on VMs, but Kubernetes has changed the way we manage and scale containers.
What does this mean for you? Monitoring Kubernetes is different than traditional monitoring in multiple ways:
- More components (between hosts and applications) to monitor
- You need monitoring capabilities that can track the dynamic behavior of containers and applications inside them
- As the amount of containers scale the number of dependencies will increase
- If a single component within a microservice , there may be no business impact, and so the severity of alerts should match this fact. The traditional monitoring approach of testing whether something is 'up' or 'down' falls short.