Minikube en Cloud9: Crea un ambiente de pruebas para Kubernetes

Max Zeballos - May 20 - - Dev Community

Introducción

Cuando empiezas a aprender una nueva tecnología, es de mucha ayuda poder configurar ambientes de pruebas rápidamente, esto te permite realizar tus pruebas de concepto de manera ágil.

Kubernetes es la herramienta mas adoptada en la orquestación de contenedores. Por otro lado Cloud9 es el IDE en linea de AWS. Nosotros podemos realizar rápidamente nuestras pruebas de concepto de Kubernetes en cloud9 con Minikube.

En este artículo te enseñare como levantar un ambiente de pruebas con Minikube y Cloud9 para poder desplegar tu primer pod en Kubernetes.

Configuración del ambiente

1 Creación del ambiente en Cloud9

  • Vamos a ingresar a nuestra cuenta de AWS y nos vamos a dirigir al servicio de Cloud9 y le daremos click en "Create Environment" como se muestra en la siguiente imagen

Cloud9 principal

  • Colocaremos la siguiente información

Name: Minikube-environment
Environment-type: New EC2 instance
Instance type: t3.small
Platform: Ubuntu Server 22.04 LTS

A continuación le daremos click en "Create"

creacion cloud9

creacion cloud9

En la lista de ambientes aparecera el ambiente creado por nosotros.

cloud9 lista

Le damos click en open y se nos abrirá nuestro ambiente en una nueva pestaña en el navegador.

ambiente cloud9

2 Incrementar las capacidades de disco de nuestro ambiente

Vamos a ubicar la instancia EC2 donde esta nuestro ambiente de Cloud9, para ello buscamos la instancia que contiene el nombre de nuestro ambiente.

EC2 cloud9

Le damos check a la instancia, nos dirigimos a la pestaña "storage" y le damos click donde en el id del volumen

ebs

Luego, le damos click en "Modify volume"

ebs2

El valor actual debe ser 10 y lo cambiaremos por 30, luego le damos click en "Modify"

ebs-modify

Ahora regresamos a nuestro ambiente de Cloud9 y vamos a incrementar el tamaño del sistema de archivos con los siguientes comandos

sudo growpart /dev/nvme0n1 1
sudo resize2fs /dev/nvme0n1p1
Enter fullscreen mode Exit fullscreen mode

shell

Ahora nuestro sistema de archivos pasara de 10G a 30G.

3 Instalación de las herramientas necesarias

  • Lanzaremos los siguientes comandos para instalar kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
Enter fullscreen mode Exit fullscreen mode

kubectl

  • Lanzaremos los siguientes comandos para instalar Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Enter fullscreen mode Exit fullscreen mode

Minikube

Lanzando nuestro primer pod

  • Vamos a iniciar nuestro ambiente en Minikube con el siguiente comando
minikube start
Enter fullscreen mode Exit fullscreen mode

minikube start

  • Lanzaremos nuestro primer pod en minikube
kubectl run my-first-pod --image=nginx
Enter fullscreen mode Exit fullscreen mode
  • Vamos a verificar que nuestro pod se encuentre "running"
kubectl get pods
Enter fullscreen mode Exit fullscreen mode

create pod

  • Finalmente podemos detener la ejecución de nuestro ambiente en minikube
minikube stop
Enter fullscreen mode Exit fullscreen mode

minikube stop

Eliminando nuestro ambiente de cloud9

Para eliminar el ambiente vamos al servicio de cloud9, seleccionamos nuestro ambiente y le damos click en "Delete"

Cloud9 delete

Aclaraciones

  • El tamaño de instancia mínimo para correr minikube es t3.small, de colocar una instancia con menor cantidad de vCPUs tendrás el siguiente error

Error 1

  • El tamaño de disco con el que se crea un ambiente de Cloud9 son 10 Gigas, si no incrementas el tamaño del disco tendrás el siguiente error

Error 2

  • La instancia t3.small no pertenece a la capa gratuita de AWS. El precio en Oregon (us-west-2) es de $0.0208 la hora, es decir en 8 horas de pruebas habremos gastado la suma de $0.1664 ($0.0208 x 8h). Es un precio bastante bajo y razonable.

  • En caso necesites hacer pruebas con muchos contenedores ejecutándose a la vez, te recomiendo lanzar una instancia con una mayor cantidad de vCPUs, que cuente con los recursos suficientes para lanzar todos los contenedores que necesites

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .