Files
container.training/slides/k8s/setup-devel.md
2022-12-08 05:44:48 -08:00

4.0 KiB

Running a local development cluster

  • Let's review some options to run Kubernetes locally

  • There is no "best option", it depends what you value:

    • ability to run on all platforms (Linux, Mac, Windows, other?)

    • ability to run clusters with multiple nodes

    • ability to run multiple clusters side by side

    • ability to run recent (or even, unreleased) versions of Kubernetes

    • availability of plugins

    • etc.


CoLiMa

  • Container runtimes for LiMa

    (LiMa = Linux on macOS)

  • For macOS only (Intel and ARM architectures)

  • CLI-driven (no GUI like Docker/Rancher Desktop)

  • Supports containerd, Docker, Kubernetes

  • Installable with brew, nix, or ports

  • More info: https://github.com/abiosoft/colima


Docker Desktop

  • Available on Linux, Mac, and Windows

  • Free for personal use and small businesses

    (less than 250 employees and less than $10 millions in annual revenue)

  • Gives you one cluster with one node

  • Streamlined installation and user experience

  • Great integration with various network stacks and e.g. corporate VPNs

  • Ideal for Docker users who need good integration between both platforms


k3d

  • Based on K3s by Rancher Labs

  • Requires Docker

  • Runs Kubernetes nodes in Docker containers

  • Can deploy multiple clusters, with multiple nodes

  • Runs the control plane on Kubernetes nodes

  • Control plane can also run on multiple nodes


k3d in action

  • Install k3d (e.g. get the binary from https://github.com/rancher/k3d/releases)

  • Create a simple cluster:

    k3d cluster create petitcluster
    
  • Create a more complex cluster with a custom version:

    k3d cluster create groscluster \
          --image rancher/k3s:v1.18.9-k3s1 --servers 3 --agents 5
    

    (3 nodes for the control plane + 5 worker nodes)

  • Clusters are automatically added to .kube/config file


KinD

  • Kubernetes-in-Docker

  • Requires Docker (obviously!)

  • Should also work with Podman and Rootless Docker

  • Deploying a single node cluster using the latest version is simple:

    kind create cluster
    
  • More advanced scenarios require writing a short config file

    (to define multiple nodes, multiple control plane nodes, set Kubernetes versions ...)

  • Can deploy multiple clusters


MicroK8s

  • Available on Linux, and since recently, on Mac and Windows as well

  • The Linux version is installed through Snap

    (which is pre-installed on all recent versions of Ubuntu)

  • Also supports clustering (as in, multiple machines running MicroK8s)

  • DNS is not enabled by default; enable it with microk8s enable dns


Minikube

  • The "legacy" option!

    (note: this is not a bad thing, it means that it's very stable, has lots of plugins, etc.)

  • Supports many drivers

    (HyperKit, Hyper-V, KVM, VirtualBox, but also Docker and many others)

  • Can deploy a single cluster; recent versions can deploy multiple nodes

  • Great option if you want a "Kubernetes first" experience

    (i.e. if you don't already have Docker and/or don't want/need it)


Rancher Desktop

  • Available on Linux, Mac, and Windows

  • Free and open-source

  • Runs a single cluster with a single node

  • Lets you pick the Kubernetes version that you want to use

    (and change it any time you like)

  • Emphasis on ease of use (like Docker Desktop)

  • Relatively young product (first release in May 2021)

  • Based on k3s and other proven components


VM with custom install

  • Choose your own adventure!

  • Pick any Linux distribution!

  • Build your cluster from scratch or use a Kubernetes installer!

  • Discover exotic CNI plugins and container runtimes!

  • The only limit is yourself, and the time you are willing to sink in!

???

:EN:- Kubernetes options for local development :FR:- Installation de Kubernetes pour travailler en local