Exploring the Components That Constitute the Cluster

Explore the constituents of the cluster we created in the previous lesson.

Exploring the constituents of the cluster

When kops created the VMs (EC2 instances), the first thing it did was to execute nodeup. It, in turn, installed a few packages. It makes sure that Docker, Kubelet, and Protokube are up and running.


Docker runs containers.


Kubelet is Kubernetes’ node agent. It runs on every node of a cluster, and its primary purpose is to run Pods. To be more precise, it ensures that the containers described in PodSpecs are running as long as they are healthy. It primarily gets the information about the Pods it should run through Kubernetes’ API server. As an alternative, it can get the information through files, HTTP endpoints, and HTTP servers.


Unlike Docker and Kubelet, Protokube is specific to kOps. Its primary responsibilities are to discover and mount primary disks and create manifests. Some of those manifests are used by Kubelet to create system-level Pods and to make sure that they are always running.

Besides starting the containers defined through Pods in the manifests (created by Protokube), Kubelet also tries to contact the API server, which then it eventually starts. Once the connection is established, Kubelet registers the node where it is running.

All three packages are running on all the nodes, no matter whether they are primary nodes or workers.

Get hands-on with 1200+ tech skills courses.