🐳 Provision a Kubernetes / CoreOS Cluster on Linode
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.
What's included
- Kubernetes 1.11.0 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):
Usage
git clone https://github.com/kahkhang/kube-linode
cd kube-linode
chmod +x kube-linode.sh
Just run ./kube-linode.sh create
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
)
If you want to destroy the cluster created by kube-linode, you can run the following command:
./kube-linode.sh destroy
A prompt will be given listing all the nodes which will be destroyed upon confirmation .
Dependencies
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
Acknowledgements
This script uses Bootkube to bootstrap the initial cluster using Linode's API.