¿Cómo configurar el clúster de Kubernetes en una máquina local usando minikube?

Crear un clúster de Kubernetes en AWS, Google Cloud, etc., puede ser un poco difícil y costarle una cantidad de dinero bastante decente. Si tiene una máquina con Windows o una Mac, es fácil crear un clúster de varios contenedores usando Docker Desktop para Windows/Mac y usar Kubernetes para administrar el clúster.

Requisitos: tener algunos conocimientos básicos de Docker y Kubernetes. 

Pero para el sistema basado en Linux, debe optar por una solución basada en la nube que es costosa. Entonces podemos crear nuestro propio clúster en nuestra máquina local usando minikube . Es Kubernetes local y se centra en facilitar el aprendizaje y el desarrollo para Kubernetes. Solo necesita Docker instalado o cualquier entorno de máquina virtual. En el siguiente ejemplo, hemos utilizado la caja virtual. 

Instalación de Minikube: para instalar minikube en Linux, use el siguiente comando:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Ejemplo: para probar esto, vamos a usar una aplicación web de venta de boletos que se creó con NodeJS, ExpressJS, NextJS y usó nats-streaming para transmisión de eventos, ingress-nginx para redes y equilibrio de carga. Una imagen de ventana acoplable diferente para diferentes servicios y han usado minikube para ejecutar el clúster localmente usando minikube. 

Enlace Github de Repo: use el enlace https://github.com/afif1400/gittix-micro para bifurcar el proyecto.

Nota: Después de instalar docker o virtual box y minikube, solo tenemos que iniciar minikube y usar skaffold para ejecutar todos los contenedores o diferentes microservicios.

Entonces, después de clonar el repositorio, vaya al directorio raíz, primero inicie minikube: el controlador se usa para especificar el entorno, también puede cambiarlo a Docker. Pero hay un error en el ingreso al usar el entorno de la ventana acoplable.

minikube start --driver="virtualbox"

Ahora que minikube ha iniciado el clúster de Kubernetes en su interior, también puede configurar los recursos que utiliza consultando los documentos del sitio web oficial proporcionado en la referencia.

Necesitamos habilitar un par de complementos en minikube para ejecutar la aplicación. Primero está el tablero que es una GUI para monitorear los servicios de implementación del clúster, etc. y el segundo complemento es el ingreso

Comando para habilitar el tablero:

minikube addons enable dashboard

Comando para habilitar el ingreso:

minikube addons enable ingress

Ahora debemos exponer la implementación de ingreso-nginx para que se pueda acceder desde el mundo exterior. Use el siguiente comando para hacerlo:

kubectl expose deployment ingress-nginx-controller --target-port=80 
--type=NodePort -n kube-system

Ahora, para verificar que el servicio se está ejecutando, ejecute: y el resultado debe ser similar al que se muestra a continuación.

kubectl get services -n kube-system

A continuación, configure una variable de entorno que sea un jwt-secret , para configurar esto, ejecute el siguiente comando:

kubectl create secret generic jwt-secret --from-literal=JWT_KEY=asdf

Esto lo usaremos en nuestro servicio de autenticación para generar el token jwt

Paso para ejecutar la aplicación:

Use el siguiente comando para ejecutar la aplicación:

skaffold dev

Cuando ejecute este comando, todas las dependencias para cada uno de los servicios se instalarán y construirán la imagen, iniciando el clúster. Si skaffold falla en el medio, simplemente vuelva a ejecutar el comando anterior. 

Producción:

Detener minikube: El siguiente es el comando para detener minikube:

minikube stop

Eliminar el clúster: El siguiente es el comando para eliminar el clúster:

minikube delete

Referencias:

  • Ventana acoplable: https://docs.docker.com/get-started/overview/
  • Ingresonginx: https://kubernetes.github.io/ingress-nginx/
  • Skaffold: https://skaffold.dev/docs/
  • Minikube: https://minikube.sigs.k8s.io/docs

Publicación traducida automáticamente

Artículo escrito por afifahmed y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *