Bootstrap a Kubernetes cluster with custom binaries. No Kubeadm!
APACHE-2.0 License
Currently, a lot of Kubernetes bootstrappers are black boxes which don't provide a lot of flexibility on how the cluster is set up. Devkube changes that. Based off of Kelsey's KTHW, it wires together a cluster with custom binaries, complete with Flannel and CoreDNS.
kube-scheduler
, kube-api-server
, kubelet
etc).
variables.yml
file has links for the components.Provision the VMs on your favorite cloud provider
6443
port open for the api-server
.Download the required dependencies on your machine
Edit the hosts.ini
file
ssh <user>@<public-ip>
and the user has root accessk8s-node-1
) will become the master and all the other nodes will join in as workersRun the play.yml
playbook
ansible-playbook play.yml -i hosts.ini
Some of the main files are:
variables.yml
release
has 2 possible values:
latest
- this will pull in the latest artifact from kubernetes CIv1.16.0-beta.1
etc - specific version, can be anythingroot_certs.yml
certs.yml
control_plane.yml
workers.yml
Add a new node to the existing cluster
certs.yml
to generate the certs for the new node and transfer them to the serverworkers.yml
to install the binaries and get the node up.Change the flag on the api-server
kube-apiserver.service.j2
file and run the control_plane.yml
playbook.Change the kubelet binary
variables.yml
file with the new binary endpointworkers.yml
playbookAvoid downloading worker node binaries
ansible-playbook workers.yml -i hosts.ini --skip-tags "downloads"
Please file an issue if you face any problems. Better still, help fix it and make a PR!