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

Basically, the Kubernetes node runs the Kubelet and Service Proxy components as well as a container engine such as Docker or Rocket, which in turns run your containerized applications and makes you and your customers very happy (Lol).

Image for post
Image for post
Figure 1: Kubernetes Components

Service Proxy

The Service Proxy runs on each node and is responsible for watching the API Server for changes on services and pods definitions to maintain the entire network configuration up to date, ensuring that one pod can talk to another pod, one node can talk to another node, one container can talk to another container, and so on. Besides, it exposes Kubernetes services and manipulates iptables rules to trap access to services IPs and redirect them to the correct backends (that’s why you can access a NodePort service using any node IP; even if the node you hit is not the one you are looking for, this node will already be set up with the appropriate iptables rules to redirect your request to the correct backend). …

Let’s take a look at the following Kubernetes architecture diagram:

Image for post
Image for post
Kubernetes Components

Well, this might look complicated at first glance, but actually, it’s not so much. I’m pretty sure that by the end of this article you will have a clear understanding of how these components interact with each other.

Kubernetes Master Components

The Kubernetes master runs the Scheduler, Controller Manager, API Server and etcd components and is responsible for managing the Kubernetes cluster. Essentially, it’s the brain of the cluster! Now, let’s dive into each master component.

In production, you should set up Kubernetes with multiple masters for high availability. …


Tell me, how many consecutive years did you fail to accomplish your New Year’s promises and long-term plans for the next year? Long-term plans are just a way for human beings to feel less uncomfortable with the unknown. We kind of get the feeling we have control over stuff when we have a long-term plan.

The point is that all of the sudden, on January 15th, when you think you are in control of your life, you receive an email with a job offer paying twice more than your current job or you simply get fired.

What we don’t immediately realize is that a job offer paying twice more sometimes is not good (the job and people there are boring, they don’t care for development best practices, the environment does not encourage communication, and so on) and sometimes getting fired is not bad (your next job can be much better). This happens because human beings tend to react without thinking first. Very often we caught ourselves being thankful for something that initially we thought it would be bad. …

Image for post
Image for post

Cassandra is a NoSQL database that belongs to the Column Family NoSQL database category. It’s an Apache project and it has an Enterprise version maintained by DataStax. Cassandra is written in Java and it’s mainly used for time-series data such as metrics, IoT (Internet of Things), logs, chat messages, and so on. It is able to handle a massive amount of writes and reads and scale to thousands of nodes. Let’s list out here some important Cassandra characteristics. Basically, Cassandra…

  • mix ideas from Google’s Big Table and Amazon’s Dynamo.
  • is based on peer-to-peer architecture. Every node is equal (can perform both reads and writes), therefore there is no master or slave node, that is, there is no master single point of failure. …

Continuous Integration, Continuous Delivery or Continuous Deployment? There is always a great misunderstanding of these terms out there! Let’s clarify them in only 5 minutes.

Continuous Integration

Continuous Integration (CI) is a development practice from Extreme Programming that requires developers to integrate code into a mainline as often as possible, at least once a day, and each check-in is then verified by an automated build that compiles the code and runs the suite of automated tests against it, allowing teams to detect problems early.

In the Git context, the mainline often turns out to be the master branch and each check-in is a new commit that emerges into the remote repository. …

Image for post
Image for post
Kubernetes Logo

In this tutorial, I’m going to introduce you to Kubernetes, an open-source system for automating deployment, scaling, and management of containerized applications.

Let’s start with a question. Would you deploy an Elasticsearch cluster for your company’s production environment using Docker on a single machine with several containers in it, just like you do on your local machine when you are using or learning Docker? Of course not! Why not? Mainly because you want to keep your job, don’t you? So, what’s wrong with this approach? Let’s list out some arguments below:

  • The containers (Elasticsearch instances) would be running on a single machine. …


Jorge Acetozi

Passionate Software Engineer, author of Pro Java Clustering and Scalability and Instructor. Check out my books at

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