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.
- Kubernetes 1.9.1 with Bootkube
- 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
, or you can pass them in as key-value flags as such:
./kube-linode.sh --no_of_workers=3 --api_key=12345
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
)
Later, should you want to start over from scratch, or if you just want to stop everything, you can run
./kube-linode.sh teardown
And all your linodes - everything - will be deleted.
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
This script uses Bootkube to bootstrap the initial cluster using Linode's API.