logo

What is a Node?

A Node is a machine; a Node is where the Pods are running. But under the hood, what is a Node?

A Node could be a bare-metal machine

You need to either manually provision the bare-metal machine, or use some automation tools like Ansible, Ironic, Metal3. Then a container runtime (e.g. containerd) runs Pod/containers on the bare-metal machine.

A Node could be a virtual machine

  • could be VMs running on your own bare-metals
  • could be VMs running inside your own VMs
  • could be cloud VMs, like a AWS EC2 instance or a Google Compute Engine instance.

A Node could be a container

Yes a Node can be a container. If you use kind to create a cluster, each node is a docker container (kind = Kubernetes IN Docker). If you use minikube, you can also choose to use containers as nodes.

A nested world

If you use GKE:

  • Borg (Google's internal cluster management system) runs the backend of GKE/GCE APIs
  • GCE API creates VMs on Borg Nodes.
  • GKE API manages clusters using GCE VMs.
  • Your Pods are running on GCE VMs.

If you use kind on a Cloud VM:

  • your Pods (managed by containerd) are running in a container (managed by Docker)
  • the Docker container is running on a VM.
  • The VM is running on a Cloud provider's bare-metal machines.