- A collection of bash scripts that automates the installation of a Kubernetes cluster onto a single node.
kubeadm
is used to bootstrap the cluster and you are provided with an option to choosedocker
orcontainerd
as your container runtime.- Before creating the cluster, you will be asked to pick a container network interface. Below are the list of container network interfaces available in this project;
calico
,cilium
,flannel
,kube-router
,weavenet
- After bootstrapping and creating the Kubernetes cluster, there is an option to install useful tooling, such as;
helm
,kubernetes-dashboard
,kubernetes-metrics-server
,grafana
,prometheus
,weavescope
,falco
,gatekeeper
- For more information on how the bash scripts are organised, review the Architecture document.
- For minimum
kubeadm
resource requirements, refer to the officialkubeadm
installation guide.
- Required utilities to ensure that the scripts execute successfully.
bash
,pwgen
,tar
,curl
,bash-completion
,epel-release
- Tested on;
debian-10
,centos-8-stream
# clone the repository
$ git clone git@github.com:hubvu/kubeadm-single-node.git
# navigate into the directory
$ cd kubeadm-single-node/
# make 'main', 'optional' and 'teardown' into executable files
$ chmod +x main optional teardown
# run 'main' to start the Kubernetes cluster deployment
$ sudo ./main
# run 'optional' to install useful tools
$ sudo ./optional
# run 'teardown' to destroy the Kubernetes cluster deployment
$ sudo ./teardown
- Contribution guidelines for this project can be found in the Contributing document.
- Licenced under the MIT License.