Minikube en Cloud9: Crea un ambiente de pruebas para Kubernetes
Tags: kubernetes, aws, español, contenedores
Published: 2024-05-20 13:03:31

## 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/56quru149g442c2oh5wn.jpg)

- 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hoelikgyoyl2nohj84r3.jpg)

![creacion cloud9](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wbdmv70swsxgq9ha1hb4.jpg)

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

![cloud9 lista](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xk9alx7y0pgus3woaxw0.jpg)

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

![ambiente cloud9](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1st91fbuuw7dwazijvgk.jpg)

### 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2kbq1twuvowblqu1s8ft.jpg) 

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

![ebs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mia7nxyuclfff6flxqbi.jpg)

Luego, le damos click en "Modify volume"

![ebs2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s91rnz9c98spvcp0d72y.jpg)

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

![ebs-modify](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g885y505x9xwnlt7erzg.jpg)

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
```

![shell](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8dqcpomcin2d1eq6izzm.jpg)

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
```

![kubectl](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ni7ghks8k87nxvnb7ycn.jpg)

- 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
```

![Minikube](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nifn9uqbkm26gzrhx9rg.jpg)

### Lanzando nuestro primer pod

- Vamos a iniciar nuestro ambiente en Minikube con el siguiente comando

```
minikube start
```

![minikube start](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e6wbt6foy2is4hb4vw5z.jpg)

- Lanzaremos nuestro primer pod en minikube

```
kubectl run my-first-pod --image=nginx
```

- Vamos a verificar que nuestro pod se encuentre "running"

```
kubectl get pods
```

![create pod](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zm5whvt0wmfhgmqwo973.jpg)
- Finalmente podemos detener la ejecución de nuestro ambiente en minikube

```
minikube stop
```

![minikube stop](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1t6kqfgor4378usk2ujj.jpg)

### 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wao21lm0o0ic69ksqis0.jpg)

## 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mn9bego57aystju3dpfy.jpg)

- 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1wntzuljobgouqltpyev.jpg)

- 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