Automatically provision a scalable CoreOS/Kubernetes cluster on Linode with zero configuration.
The cluster will comprise of a single Kubernetes master host with a custom number of worker nodes.
- Self-hosted Kubernetes with Bootkube using self-hosted etcd
- Load Balancer and automatic SSL/TLS renewal using Traefik
- Distributed block storage with Rook
- Pre-configured Grafana dashboard using Kube-Prometheus with Rook and Traefik monitoring
- Basic auth protected subdomains (assuming you are using example.com):
git clone https://github.com/kahkhang/kube-linode
cd kube-linode
chmod +x kube-linode.sh
Just run ./kube-linode.sh
into your console, key in your configuration, then sit back and have a โ!
Settings are stored in settings.env
.
To increase the number of workers, modify NO_OF_WORKERS
in settings.env
as desired and run ./kube-linode.sh
again.
Use kubectl
to control the cluster (e.g. kubectl get nodes
)
You should have a Linode account, which you can get here. You should also have an API Key with a valid domain that uses Linode's DNS servers.
OSX: brew install jq openssl curl kubectl
Arch Linux: Follow the instructions here
- Convert a worker node to a master node:
kubectl label node $IP "node-role.kubernetes.io/master="
- Scale the etcd operator
This script uses Bootkube to bootstrap the initial cluster using Linode's API.