# Setting up Kubernetes - How did we set up these Kubernetes clusters that we're using? -- - We used `kubeadm` on "fresh" EC2 instances with Ubuntu 16.04 LTS 1. Install Docker 2. Install Kubernetes packages 3. Run `kubeadm init` on the master node 4. Set up Weave (the overlay network)
(that step is just one `kubectl apply` command; discussed later) 5. Run `kubeadm join` on the other nodes (with the token produced by `kubeadm init`) 6. Copy the configuration file generated by `kubeadm init` --- ## `kubeadm` drawbacks - Doesn't set up Docker or any other container engine - Doesn't set up the overlay network - Scripting is complex
(because extracting the token requires advanced `kubectl` commands) - Doesn't set up multi-master (no high availability) -- - It's still twice as many steps as setting up a Swarm cluster 😕 --- ## Other deployment options - If you are on Google Cloud: [GKE](https://cloud.google.com/container-engine/) Empirically the best Kubernetes deployment out there - If you are on AWS: [kops](https://github.com/kubernetes/kops) ... But with AWS re:invent just around the corner, expect some changes - On a local machine: [minikube](https://kubernetes.io/docs/getting-started-guides/minikube/), [kubespawn](https://github.com/kinvolk/kube-spawn), [Docker4Mac (coming soon)](https://beta.docker.com/) - If you want something customizable: [kubicorn](https://github.com/kris-nova/kubicorn) Probably the closest to a multi-cloud/hybrid solution so far, but in development - Also, many commercial options!