Files
container.training/slides/k8s/setup-selfhosted.md
2019-04-20 11:18:17 -05:00

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 init to provision a single-node control plane

  • kubeadm join to 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.