Minikube vs kind vs k3s

Existen varias alternativas para instalar nuestro propio clusters Kubernetes sin usar servicios en la nube como GCP, AWS o Azure.

Estas herramientas también nos pueden servir para hacer pruebas locales en nuestro ordenador y aprender a usar conceptos como CI/CD, autoescalado, etc...

Minikube

MinikubeKubernetesMinikubeKubernetes

Minikube es una herramienta realmente facil de usar. Para iniciar el cluster tan solo tenemos que escribir minikube start y esperar a que kubectl esté listo.

Para especificar que version de Kubernetes queremos usar, podemos utilizar la bandera --kubernetes-version

Características principales:

  • DNS
  • NodePorts
  • ConfigMaps and Secrets
  • Dashboards
  • Container Runtime: Docker, CRI-O, and containerd
  • Enabling CNI (Container Network Interface)
  • Ingress

En contra:

  • No tiene soporte multinodo
  • Se ejecuta dentro de una máquina virtual

Si eres nuevo en Kubernetes, Minikube tiene un "Dashboard" donde puedes ver todo lo que está pasando dentro de tu cluster y te ayudará a tener una visión mas completa.

kind

kind es una herramienta para ejecutar clústeres locales de Kubernetes utilizando los "nodos" del contenedor Docker.

kind fue diseñado principalmente para probar Kubernetes, pero puede usarse para desarrollo local o CI.

Comparado con Minikube, son herramientas muy similares, pero en el caso de kind y como el nombre indica, los clusters están dentro de un contenedor Docker en vez de una máquina virtual, con lo que se gana y mucho, en velocidad de arranque.

Crear un cluster en kind es muy parecido a como se hace en Minikube, kind create cluster

Para pruebas locales, en mi opinión, es una mejor opción que Minikube, ya que nos permite reutiliar nuestros contenedores Docker, además de que la velocidad de despligue de un contenedor frente a una máquina virtual es muy superior.

k3s

Si Minikube no es para nosotros y kind todavía nos resulta demasiado, podemos probar K3s que es una versión reducida de Kubernetes desarrollada por Rancher Labs. Al eliminar las funciones prescindibles (heredadas, alfa, no predeterminadas, complementos en árbol) y usar componentes livianos (por ejemplo, sqlite3 en lugar de etcd3) han logrado una reducción significativa del tamaño del binario, alrededor de 60 MB.

La aplicación está dividida en un servidor y un sercicio agente. Para una mejor organización os recomiendo poner K3s en un contenedor (por ejemplo usando rancher/k3s). Así además podemos lanzar varias instancias independientes.

Entre sus ventajas cuenta como hemos comentado que es extremadamente liviano, que permite crear multi nodos y que utiliza también contenedores Docker para el despligue de la aplicación.

Una primera decisión consiste en concretar el clima en el que se utilizará la prenda. Un criterio objetivo exige comparar las medidas con una camiseta que ya le quede bien. Una consulta como «» permite evitar que la elección dependa solo del título del resultado. Una vez elegido el modelo, conviene revisar las instrucciones de lavado y conservación.

Una primera decisión consiste en concretar el clima en el que se utilizará la prenda. Un criterio objetivo exige comparar las medidas con una camiseta que ya le quede bien. Una consulta como «camisetas de fútbol retro de manga larga» permite evitar que la elección dependa solo del título del resultado. Una vez elegido el modelo, conviene revisar las instrucciones de lavado y conservación.