Skip to content

Demostrando que Kubernetes también es divertido para los desarrolladores

Notifications You must be signed in to change notification settings

jossemarGT/kubernetes-is-fun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kubernetes es divertido

Por alguna razón, muchos hemos llegado a pensar que Kubernetes no es divertido para desarrolladores, cuando en realidad hay muchas maneras de extenderlo en el lenguaje de programación que más nos acomode.

Exploremos como podemos extender el comportamiento de Kubernetes.

¿Dónde inicio?

Este repositorio está conformado por enunciados de ejercicios sencillos y la solución final. Si deseas ir paso a paso, puedes seguir la conversación en la grabación (PENDIENTE) o bien guiarte por el README.md en cáda directorio y explorar por tu cuenta.

El orden recomendado en base a su complejidad es el siguiente:

  • bouncer/ Extiende el API de Kubernetes creando tus propios Admission Webhooks con pepr.
  • less/ Crea un Kubernetes Controller utilizando helm y el Operator SDK.
  • legacy/ Crea un Operador para automatizar el provisionamiento de una aplicación Legacy.

Pero eres bienvenido a explorar de la manera que más te funcione 😉.

Requerimientos

Los ejercicios anteriormente mencionados están intencionalmente escritos en múltiples lenguajes, valiendose de diferentes herramientas pero como mínimo necesitarás tener instalado:

Cada solución indica que lenguaje de programación utilizaremos, pero si te quieres adelantar puedes instalar:

Levantando nuestro clúster local de pruebas

Para realizar las soluciones a los ejercicios en este repositorio no necesitas crear un clúster de Kubernetes en la nube. Si ya tienes instalado minikube solo necesitas hacer lo siguiente:

./_hack/setup.sh

Toda la configuración para conectarte al clúster local ya ha sido generada, ahora ya puedes utilizar comandos de kubectl sin problema. Como por ejemplo:

$ kubectl get nodes
NAME      STATUS   ROLES           AGE     VERSION
k8s-fun   Ready    control-plane   1h      v1.30.2

Cuando termines o desees comenzar desde cero, puedes destruir el clúster con:

../_hack/clean-up.sh

Importante: Al crear nuestro clúster, minikube seleccionará el mejor backend para tu entorno local. En algunos casos seleccionará docker, lo cual implica que necesitas correr el siguiente comando en una nueva terminal para poder acceder directamente a los endpoints de las aplicaciones de ejemplo.

minikube tunnel

En caso no sepas que backend minikube utilizó puedes verificarlo así:

$ minikube profile list
|------------|-----------|---------|--------------|------|---------|---------|-------|----------------|--------------------|
|  Profile   | VM Driver | Runtime |      IP      | Port | Version | Status  | Nodes | Active Profile | Active Kubecontext |
|------------|-----------|---------|--------------|------|---------|---------|-------|----------------|--------------------|
| k8s-is-fun | docker    | docker  | 192.168.58.2 | 8443 | v1.30.2 | Running |     1 | *              | *                  |
|------------|-----------|---------|--------------|------|---------|---------|-------|----------------|--------------------|

Quiero aprender más

Si terminaste con los ejercicios o te gustaría leer material que va a más profundidad puedes utilizar: