Member-only story
Summary of the kubernetes architecture
Today, I want to dive into Kubernetes architecture. To explore this, let’s follow the flow of a kubectl command. Essentially, a kubectl command is just data sent to a server. We could achieve the same result with a simple curl request or by using a language library (such as Python, Go, or Java).
In this example, we’ll push a deployment to create a pod.
The kube-api-server
Our kubectl client is simply a client for a web server, communicating with the Kubernetes API server (APIServer). The APIServer handles authentication, authorization, and admission control for our requests, ensuring that you have permission to perform the actions you’re attempting.
If all checks pass, the APIServer stores our data in the etcd server.
ETCD database engine
Etcd is a key/value store database.
This database store all datas in the cluster :
- cluster state
- node states
- resource states
- …
But for our request, this is the desirated state. Now the cluster needs to reconcile its with the real state.