The Node Image

NOTE: This may not completely cover the current implementation.

The “node” image is a Docker image for runningnested containers, systemd, and Kubernetes components.

This image is built on top of the “base” image.

Logic for building both can be found in pkg/build,and they can be built with kind build base-image and kind build node-image respectively.

Design

Other than the requirement that this image inherits from the “base” image, whichprovides most of the tools statically needed for a kubernetes deployment(eg systemd), variants of this image have the following properties:

  • /kind/images/ contains various *.tar files which areDocker image archives,these images will be loaded by the cluster tooling prior to running kubeadm

  • kubeadm, kubectl, kubelet are in the path

  • A systemd service is enabled for kubelet, and isconfigured to not fail on swap being enabled. (we must do the latter becauseswap is inherited from the host and we don't want to force users to disable swapbefore using kind)

  • /kind/version is a regular text file containing the gitVersion of theinstalled Kubernetes build

These properties are used by the cluster tooling to booteach “node” container with kubeadm.