Wiki.Pilas.Guru

1. Preparar el entorno

Repositorio

Este tutorial se basa en el repositorio de Ceferino Jose II licenciado bajo MIT License.

git clone https://git.rwy.pub/pilasguru/mern-crud.git

Aplicación

La aplicación tiene tres servicios en Docker Compose:

db  -> MongoDB
api -> Express/Node.js
web -> React

Compose utiliza bind mounts para desarrollo. Kubernetes utilizará una imagen autocontenida.

Construir la imagen

Desde el directorio de la aplicación:

docker build -t mern-crud:study .

Cargar la imagen en Minikube:

minikube image load mern-crud:study

Comprobar:

minikube image ls | grep mern-crud

La imagen debe aparecer como:

docker.io/library/mern-crud:study

En los manifiestos se utiliza:

image: mern-crud:study
imagePullPolicy: IfNotPresent

Iniciar Minikube

En este laboratorio Minikube terminó funcionando con Colima, el driver docker y runtime containerd.

colima start
minikube start

Comprobar el perfil:

minikube profile list
minikube status
kubectl get nodes

El nodo debe estar en estado Ready.

Liberar recursos y volver a iniciar

Apagar únicamente Kubernetes:

minikube stop -p minikube

Apagar completamente Colima y liberar sus recursos:

colima stop

Para volver a trabajar:

colima start
minikube start -p minikube

Problema inicial del API Server

Durante el primer arranque apareció:

K8S_APISERVER_MISSING
apiserver process never appeared

Los errores de storageclass eran una consecuencia. El problema real era que el kube-apiserver no había iniciado.

Si el perfil queda en un estado fallido y no contiene trabajo importante:

minikube delete -p minikube
minikube start