> sudo apt install rand faketime
</syntaxhighlight>
* Set up other pre-requisites:
** Reconfigure docker runtime. Edit /etc/docker/daemon.json as follows:
<syntaxhighlight lang="bash">
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
</syntaxhighlight>
Restart docker daemon:
<syntaxhighlight lang="bash">
> mkdir -p /etc/systemd/system/docker.service.d
> systemctl daemon-reload
> systemctl restart docker
</syntaxhighlight>
** Make sure swap is off
<syntaxhighlight lang="bash">
> sudo swapoff -a
</syntaxhighlight>
Check /etc/fstab if swap is still configured there, delete if this is the case.
* Create cluster configuration scripts.
> ./make_init_config.sh
</syntaxhighlight>
This will generate the init config from the config template and store it in /home/kubernetes/clusters/ccu.
* Spin up the master node.
Use kubeadm with the generated config to initialize the control plane.
<syntaxhighlight lang="bash">
> cd /home/kubernetes/clusters/ccu
> sudo systemctl enable docker.service
> sudo kubeadm init --config kubeadm-init-config.yaml
</syntaxhighlight>
* Flannel daemonset (node communication)
* Update kubelet configuration for master node
== Authentication systems ==