Kubernetes Node Components: Service Proxy, Kubelet, and cAdvisor

Jorge Acetozi
Dec 18, 2017 · 4 min read

In my last post, I discussed the roles of Kubernetes Master Components: Etcd, API Server, Controller Manager, and Scheduler. Now, let’s dive into Kubernetes Node Components.

Kubernetes Node Components

Image for post
Image for post
Figure 1: Kubernetes Components

Service Proxy

Kubelet

The main Kubelet responsibilities include:

  • Run the pods containers.
  • Report the status of the node and each pod to the API Server.
  • Run container probes.
  • Retrieve container metrics from cAdvisor, aggregate and expose them through the Kubelet Summary API for components (such as Heapster) to consume.

The last responsibility listed above will change in the future as cAdvisor will be turned off for container stats collection and replaced by the Container Runtime Interface.

The Kubelet also starts an internal HTTP server on port 10255 and exposes some endpoints (mostly for debugging, stats, and for one-off container operations such as kubectl logs or kubectl exec), such as /metrics, /metrics/cadvisor, /pods, /spec, and so on.

cAdvisor

Image for post
Image for post
Figure 2: cAdvisor Usage Metrics

You can view the cAdvisor /metrics endpoint by issuing a GET request to http://<node-ip>:4194/metrics.


If this article was helpful to you, please like and share it with your friends. Plus, follow me on LinkedIn, Medium and subscribe to jorgeacetozi.com to get notified when a new article is published!

This article was based on contents of my book Continuous Delivery for Java Apps: Build a CD Pipeline Step by Step Using Kubernetes, Docker, Vagrant, Jenkins, Spring, Maven, and Artifactory, which I invite you to download and read the free sample (110 pages) just clicking on Read Free Sample and choosing your preferred format (PDF, EPUB, MOBI, or WEB). Basically, the free sample will guide you through these subjects:

  • Unit Tests
  • Integration Tests
  • Acceptance Tests (Distributed Acceptance Tests with Selenium-Grid)
  • Performance Tests using Gatling
  • Continuous Integration
  • Continuous Delivery
  • Continuous Deployment
  • Canary Release
  • Feature Branch
  • A/B Tests
  • Feature Flags
  • Docker
  • ChatOps

Please check out my other articles:

Thank you very much for your time!


Jorge Acetozi is a software engineer who spends almost his whole day having fun with things such as AWS, Kubernetes, Docker, Terraform, Ansible, Cassandra, Redis, Elasticsearch, Graylog, New Relic, Sensu, Elastic Stack, Fluentd, RabbitMQ, Kafka, Java, Spring, and much more! He loves deploying applications in production while thousands of users are online, monitoring the infrastructure, and acting quickly when monitoring tools decide to challenge his heart’s health! Check out his books:

Image for post
Image for post

jorgeacetozi

Articles about DevOps, tools, software development…

Jorge Acetozi

Written by

Passionate Software Engineer, author of Pro Java Clustering and Scalability and Instructor. Check out my books at https://jorgeacetozi.com/books

jorgeacetozi

Articles about DevOps, tools, software development concepts, best practices, architecture, NoSQL and many other cool stuff! Visit the website: https://jorgeacetozi.com

Jorge Acetozi

Written by

Passionate Software Engineer, author of Pro Java Clustering and Scalability and Instructor. Check out my books at https://jorgeacetozi.com/books

jorgeacetozi

Articles about DevOps, tools, software development concepts, best practices, architecture, NoSQL and many other cool stuff! Visit the website: https://jorgeacetozi.com

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store