2.2 KiB
Kubernetes distributions and installers
-
There are countless distributions available
-
We can't review them all
-
We're just going to explore a few options
kops
-
Deploys Kubernetes using cloud infrastructure
(supports AWS, GCE, Digital Ocean ...)
-
Leverages special cloud features when possible
(e.g. Auto Scaling Groups ...)
kubeadm
-
Provisions Kubernetes nodes on top of existing machines
-
kubeadm initto provision a single-node control plane -
kubeadm jointo join a node to the cluster -
Supports HA control plane with some extra steps
Kubespray
-
Based on Ansible
-
Works on bare metal and cloud infrastructure
(good for hybrid deployments)
-
The expert says: ultra flexible; slow; complex
RKE (Rancher Kubernetes Engine)
-
Opinionated installer with low requirements
-
Requires a set of machines with Docker + SSH access
-
Supports highly available etcd and control plane
-
The expert says: fast; maintenance can be tricky
Terraform + kubeadm
-
Sometimes it is necessary to build a custom solution
-
Example use case:
-
deploying Kubernetes on OpenStack
-
... with highly available control plane
-
... and Cloud Controller Manager integration
-
-
Solution: Terraform + kubeadm (kubeadm driven by remote-exec)
And many more ...
-
Docker Enterprise Edition
-
Pivotal Container Service (PKS)
-
Tectonic by CoreOS
-
etc.
Bottom line
-
Each distribution / installer has pros and cons
-
Before picking one, we should sort out our priorities:
-
cloud, on-premises, hybrid?
-
integration with existing network/storage architecture or equipment?
-
are we storing very sensitive data, like finance, health, military?
-
how many clusters are we deploying (and maintaining): 2, 10, 50?
-
which team will be responsible for deployment and maintenance?
(do they need training?) -
etc.
-